Structured Query Language

Slides:



Advertisements
Presentaciones similares
Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación.
Advertisements

Unidad IV Objetivo de la Unidad:
Teórico: Structured Query Language
IBD Clase 15.
SQL.
Lenguaje SQL (Structured Query Language)
SQL Básico Prof. Nelliud D. Torres.
SQL el Structured Query Language no es mas que un lenguaje estándar de comunicación con bases de datos.
Subconsultas Avanzadas
Integrantes: Peter velazques Andres heredia Juan Mendez
John Freddy Duitama Muñoz. Facultad de Ingeniería. U. de. A.
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
Dr. Mario Rossainz López Aplicaciones WEB Primavera 2015.
COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
SQL (Structured Query Language / Lenguaje de consulta estructurado)‏
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
Programación en Visual Basic Lección #8: SQL Por Antonio F. Huertas.
CONSULTAS SENCILLAS A LA BASE DE DATOS
Vista Externa de Una Base de Datos John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
Consultas SQL (Base de Datos)
LENGUAJE SQL.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 14 Uso de Operadores de Conjuntos.
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
Expresiones algebraicas equivalentes
Más ejemplos en SQL Francisco Moreno. S sn snombre situacion ciudad S1 Salazar 20 Londres S2 Jaramillo 10 París S3 Bernal30 París S4 Caicedo 20 Londres.
Ingeniería de Sistemas y Modelamiento.
LENGUAJE ESTRUCTURADO DE CONSULTAS
Vista Externa de Una Base de Datos John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
Prof. De Bases de Datos: Lcdo. Luis Peña. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query.
Consultas SQL. SQL SQL es un lenguaje de consulta estructurado (Structured Query Languague). Se utiliza para: Eliminar Modificar Consultar La base de.
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
SQL es el lenguaje de comunicación entre el programa cliente y programa servidor; Oracle es un programa servidor, en el que está la base de datos propiamente.
AA Gerardo Morgade Donato AA Isnel Leyva Herbella.
Unidad 6. Tema 4. Lenguaje de consultas SQL
1 John Freddy Duitama M. U.de.A. Facultad de Ingeniería Structured Query Language S.Q.L. John Freddy Duitama Muñoz Facultad de Ingeniería U.de.A. S.Q.L.
SQL: DDL.
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
DLM Transact SQL Sesión II Recuperación de información.
Querys a bases de datos con MS ACCESS. DEFINAMOS LOS TERMINOS: DML=Lenguaje de manipulación de datos Las sentencias DML permiten generar consultas para.
COMANDOS SQL. ¿QUÉ ES SQL? El lenguaje de consulta estructurado es un lenguaje declarativo que permite la creación, acceso e interacción de bases de datos.
Conferencia 7. Lenguaje SQL Estándar. Ejemplos.
John Freddy Duitama Muñoz. Facultad de Ingeniería. U. de. A.
SQL: Structured Query Language
Lenguaje de manipulación de datos
MYSQL SQL: Lenguaje de consulta estructurado. Es un lenguaje de programación para trabajar con BD relacionadas, entre las cuales tenemos MYSQL, ORACLE,
Tipos de datos en MYSQL YEAR: Año. “YYYY” o “YY”
SQL: Structured Query Language
Técnicas y Herramientas de Computación
CONSULTAS SQL POSTGRES.
Structure Query Languaje
SQL 2: Structured Query Language
SQL: structured Query Language
Lenguaje Estructurado de Consultas
SQL Lenguaje de Consulta Estructurado
Lenguaje SQL Contenidos Que es SQL ? Estructura de SQL
Base de Datos - II . Unidad 1 -SQL.
Structure Query Languaje
4.- Sentencia SELECT simple
Universidad Alonso de Ojeda Facultad de Ingeniería
Normalmente emparejamos tablas que están relacionadas entre sí y una de las columnas de emparejamiento es clave principal, pues en este caso, Cuando una.
CC Bases de Datos Otoño Clase 5: El Cálculo Relacional + SQL (I)
LENGUAJES DE BASES DE DATOS: SQL
Construcción de elementos de Software 4 MSc. Oscar Mauricio Salazar Ospina MSc Juan Camilo Jaramillo Alzate 15/05/2019Programación distribuida y paralela1.
SQL.
Fundamentos de las Base de Datos. Contenido Que es una Base de Datos. La diferencia entre datos e informacion. Clasificacion de las base de datos. Importancia.
El SQL es el lenguaje estándar ANSI/ISO de definición, manipulación y control de bases de datos relacionales. La sigla que se conoce como SQL corresponde.
Transcripción de la presentación:

Structured Query Language S.Q.L. John Freddy Duitama Muñoz Facultad de Ingeniería U. de. A. Uno de los lenguajes que ha emergido a partir del desarrollo del modelo relacional. Se ha convertido en el lenguaje estándar para las bases de datos relacionales. 1

S.Q.L. Lenguaje de alto nivel para el acceso a bases de datos. Un lenguaje declarativo. Es uno de los lenguajes que ha emergido a partir del desarrollo del modelo relacional. Se ha convertido en el lenguaje estándar para las bases de datos relacionales. 1

Componentes del S.Q.L Lenguaje de Manipulación de datos (Data Manipulation Language) Ej: SELECT, INSERT, UPDATE, DELETE. Lenguaje de Definición de Datos.(Data Definition Language) Ej: create table , create view, create index, drop table,etc. Lenguaje de Control de Datos (Data Control Language) Ej: GRANT select ON empleado TO pedro Presentaremos SQL-92. Articulo de base: D.D. Chamberlin, M. M. Astraham, K. P. Escuaran, et. al. SEQUEL2: A unified Approach to Data Definition, Manipulation and Control. IBM. J. R&D. Nov-1976. El SQL es un Lenguaje de acceso a bases de datos de alto nivel. Un lenguaje declarativo. O sea, que especifica que es lo que se quiere y no como conseguirlo, por lo que una sentencia no establece explícitamente un orden de ejecución. 33

La sentencia básica S.Q.L. SELECT col1, col2, ... , coln FROM tabla1, tabla2, ... WHERE condición para las tuplas Es equivalente a : p col1,col2,...coln ( s condición-tuplas ( tabla1 x tabla2 ...) ) Columnas de una de mis tablas ? DESCRIBE empleado; Name Null? Type Cedula NOT NULL NUMBER(8) Nombre NOT NULL VARCHAR2(50) Jefe NUMBER(8) Cargo NOT NULL VARCHAR2(10) Dpto NOT NULL NUMBER(3) 34

Tablas ejemplo Empleado Clave foránea. Clave foránea. Departamento 34

La proyección en S.Q.L. Enumero los atributos en el SELECT. SELECT cedula, nombre, cargo FROM empleado; Para observar TODAS las columnas de la tabla (*) Para observar TODAS las tuplas de la tabla. (No uso WHERE) SELECT * FROM empleado; Esta operación no elimina tuplas duplicadas 35

La eliminación de duplicados. Utilizo la cláusula DISTINCT. SELECT DISTINCT cargo, dpto FROM empleado; Elimina las tuplas repetidas que retorna la consulta. Cómo renombrar una columna. SELECT cedula, nombre AS persona, cargo AS función FROM empleado; Retorna tabla con: cedula, persona, función. 36

La selección en S.Q.L. Utilizo la cláusula WHERE. SELECT cedula, nombre, cargo FROM empleado WHERE salario > 1200 and dpto = 20; Cuando una condición tiene más de una expresión, estas se combinan con los operadores lógicos AND y OR. OPERADOR EJEMPLO = .................................................. salario = 10500 != <> .............................................. dpto <> 10 > ................................................... comision > 30 < .................................................. comision < 20 36

Operadores usados en la cláusula WHERE OPERADOR EJEMPLO <= .....................................................................salario <= 2000000 >= .....................................................................salario >= 1000000 BETWEEN ... AND .... ...................................comision between 10 and 30 IN ( VALORES ) ................................................depto IN ( 10,20,30) NOT IN ( VALORES ) .......................................depto NOT IN ( 10,20,30) LIKE ....................................................................nombre LIKE ‘%MA%’ nombre LIKE ‘_MA%’ nombre LIKE ‘M_ _’ IS NULL ...............................................................comision IS NULL IS NOT NULL ........................................................comision IS NOT NULL 37

Ordenando el resultado de una consulta. Utilizo la cláusula ORDER BY. SELECT nombre, salario FROM empleado WHERE dpto = 10 ORDER BY salario; por defecto ordena ascendentemente. Puedo ordenar por una ó varias columnas. SELECT cedula, nombre, salario, dpto FROM empleado ORDER BY dpto ASC, salario DESC 38

Operando las columnas del SELECT. Puedo realizar las operaciones básicas sobre las columnas. SELECT nombre, salario * 0.10 FROM empleado; Aritmética de nulos? El resultado de una expresión aritmética es nulo si alguno de sus valores es nulo. Valores de verdad para nulos Verdadero AND desconocido = desconocido Falso AND desconocido = falso Verdadero OR desconocido = verdadero Falso OR desconocido = desconocido. Desconocido AND/OR desconocido = desconocido 39

Operando las columnas del SELECT. Puedo realizar las operaciones básicas sobre las columnas. SELECT nombre, salario * comision /100 FROM empleado; Una consulta puede retornar valores nulos en un atributo. Como operar los valores nulos? SELECT nombre, salario * nvl(comision,0) / 100 FROM empleado; La función NVL(valor1,valor2) o ISNULL (valor1,valor2) retorna: si valor1 es Nulo asume valor2; De otro modo permanece intacto valor1. 39

La Reunión Natural. Reunión natural SELECT cedula, e.nombre, d.nombre AS departamento FROM empleado e INNER JOIN departamento d ON e.dpto = d.codigo; retorna: Join Cédula e.nombre, departamento 12345 Pepe Cárdenas Ventas 20 22334 Jesús Orozco Ventas 20 98987 Pedro Soto Sistemas 30 45597 Concha Misas Gerencia 10 SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name; 40

La Reunión Natural. Self-join. SELECT e.nombre AS Empleado, j.nombre AS Jefe FROM empleado AS e JOIN empleado AS j ON e.jefe = j.cedula Retorna. Empleado Jefe e.jefe = j.cedula Pepe Cárdenas Jesús Rico 98765 = 98765. Jesús Orozco Concha Misas Pedro Soto Diana Botero Diana Botero Concha Misas 40

La Reunión Natural. Reunión de tres tablas. SELECT e.cedula, e.nombre, j.nombre, d.nombre FROM empleado e, empleado j , departamento d WHERE e.jefe = j.cedula and e.dpto = d.codigo AND e.salario > 2000; Si hay n tablas requiero n-1 condiciones de join en la cláusula WHERE. Cada condición involucra un par de tablas diferentes. 40

La Reunión externa. SELECT e.nombre, salario,d.nombre FROM empleado e RIGHT OUTER JOIN departamento d ON e.dpto = d.codigo; Retorna: e.nombre salario d.nombre Pepe Cárdenas 3500 Ventas Jesús Orozco 3400 Ventas Pedro Soto 3800 Sistemas Concha Misas 4800 Gerencia Logística Bodega Recupera tuplas del join y aquellas que no lo cumplen. SELECT column_name(s) FROM table1 LEFT OUTER JOIN table2 ON table1.column_name=table2.column_name; SELECT * FROM empleado FULL OUTER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento 40

La reunión externa Full outer join: tabla1 and tabla 2

Funciones de agregación. COUNT(*) COUNT(columna) SUM(columna) MIN(col) AVG(columna) MAX(col) SELECT COUNT(*) FROM empleado; SELECT COUNT(COMISION) SELECT COUNT(DISTINCT CARGO) Número de empleados en la B.de.D. Número de empleados con comisión. No incluye empleados con comisión NULA. Cuantos cargos diferentes hay en la empresa. 41

La cláusula GROUP BY SELECT col1, col2, ... , coln FROM empleado FROM tabla1, tabla2, ... WHERE condición para las tuplas GROUP BY factor de agrupamiento HAVING condición para el grupo SELECT dpto, SUM(salario) FROM empleado GROUP BY dpto; Nota: Unicamente los atributos que aparecen en el GROUP BY pueden aparecer no agregados en la lista del SELECT; todos los demás deben estar acompañados de alguna función de agregación. Total de salarios pagados por departamento. 42

La cláusula GROUP BY SELECT dpto,SUM(salario) FROM empleado GROUP BY dpto ORDER BY 2 DESC ; SELECT dpto, sum(salario) WHERE cargo <> ‘Gerente’ ORDER BY sum(salario) DESC; Total de salarios por depto; ordenado por total pagado. Idem consulta anterior, pero excluye a empleados con cargo de “Gerente” 43

La cláusula HAVING SELECT dpto, sum(salario) FROM empleado WHERE cargo <> ‘Gerente’ GROUP BY dpto HAVING SUM(salario) > 10000; ORDER BY 2 DESC Retorna los deptos que en total pagan salarios superiores a 10.000 sin incluir los salarios de empleados con cargo = “Gerente” Retorna iniciando con el dpto que más salarios paga. El HAVING es una condición para el grupo, no para cada tupla de la relación. 43

Subconsultas. Subconsultas que producen un valor escalar en la parte más interna. SELECT nombre, salario FROM empleado WHERE salario > ( select AVG(salario) FROM empleado WHERE dpto = 20 ); Puedo utilizar operadores para comparar escalares. Ejemplo: =, > , < , etc. Empleados que ganan más que el promedio de salarios pagados en el depto 20. 44

Subconsultas. Subconsultas que producen una tupla: SELECT nombre,salario FROM empleado WHERE (cargo, dpto ) = ( SELECT cargo,dpto FROM empleado WHERE cedula = 76854); Solo puedo utilizar operadores de tupla. Empleados con igual cargo y del mismo depto que el empleado con cédula 76854. 44

Subconsultas. Subconsultas que producen una relación: SELECT nombre,salario FROM empleado WHERE salario > ALL ( SELECT salario FROM EMPLEADO WHERE dpto = 10 ); Use igualmente > ANY , >= ALL , <= ANY , IN, etc. Puedo usar SOME o ANY con el mismo significado Empleados con salario superior a todos los salarios del depto 10. 45

Consultas correlacionadas. Empleados con salario mayor que el salario promedio del depto al que pertenecen. SELECT nombre,salario FROM empleado AS ext WHERE salario > ( SELECT AVG(salario) FROM empleado WHERE dpto = ext.dpto ); Por cada tupla de la relación externa se ejecuta una vez la consulta interna. Se identifica porque el predicado interno involucra atributos de relaciones que aparecen en la consulta externa. 45

Otras consultas. El resultado de una consulta es a su vez una nueva tabla. SELECT nombre, salario FROM ( SELECT cedula, nombre, salario, dpto FROM empleado WHERE dpto = 10 ) WHERE salario > 1000; En la clausula HAVING puedo escribir sub-consultas. SELECT dpto, avg(salario) FROM empleado GROUP BY dpto HAVING avg(salario) > ( SELECT avg(salario) FROM empleado); 44

Operador EXISTS. Departamentos con al menos un empleado. SELECT nombre FROM departamento AS d WHERE exists ( select * FROM empleado WHERE d.codigo = dpto); EXIST devuelve el valor de cierto si la subconsulta argumento no es vacía. 44

Operador NOT EXISTS Hallar los cargos comunes a todos los deptos. SELECT DISTINCT cargo FROM empleado ext WHERE NOT EXISTS (SELECT * FROM departamento (SELECT cargo FROM empleado WHERE cargo = ext.cargo and dpto = codigo ) ); No existe un empleado en cada departamento que no tenga tal cargo. 46

Operadores adicionales. SELECT col1a, col2a, col3a ..., colna FROM tabla1 [ WHERE condición ] UNION | INTERSECT | EXCEPT SELECT col1b, col2b, col3b, ..., colnb; FROM tabla2 NOTA : Debe existir compatibilidad respecto a la unión. Estas operaciones eliminan duplicados de la respuesta. EXCEPT y MINUS tienen el mismo significado. NOTA: Para conservar duplicados use: UNION ALL | INTERSECT ALL | EXCEPT ALL 46

Agregar registros a una tabla. INSERT INTO empleado( cedula,nombre, salario,depto) VALUES( 23433, “Jesus Mosquera”, 10000,30); INSERT INTO empleado VALUES (70300300,’Pepe’,1234,1500000,NULL,’Mensajero’, ’M’,20): SELECT cedula, nombre, jefe, salario,cargo,dpto FROM tabla2 WHERE condición. 47

Modificar tuplas de una tabla. UPDATE empleado SET salario = salario * 1.1, comision = nvl(comision, 0) * 1.2 WHERE depto = 30; UPDATE empleado AS ext SET salario = ( SELECT AVG(salario) FROM empleado AS int WHERE ext.dpto = int.dpto ) WHERE codigo = “34908”; 47

Eliminar tuplas de una tabla. DELETE FROM empleado WHERE salario > 10000; DELETE FROM departamento WHERE NOT EXISTS ( SELECT * FROM empleado WHERE código = dpto); 47

James R. Groff, Paul N. Weinberg. Aplique SQL. McGraw-Hill. 1991. Bibliografía. Silberschatz, Korth, Sudarshan. Fundamentos de Bases de Datos. Cuarta edición. 2002. McGraw-Hill. Jeffrey D. Ullman. and Jennifer Widom. A First Course in Database Systems. Prentice Hall. 2001. Second edition. James R. Groff, Paul N. Weinberg. Aplique SQL. McGraw-Hill. 1991. 55