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.

Slides:



Advertisements
Presentaciones similares
SQL Y BASES DE DATOS A TRAVÉS DE LA WEB
Advertisements

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.
Unidad IV Objetivo de la Unidad:
Teórico: Structured Query Language
SQL G r u p o
Consultas anidadas.
Lenguaje de consulta de Hibernate
IBD Clase 15.
EL LENGUAJE ESTÁNDAR SQL
Unidad 3 Lenguaje SQL Contenidos Que es SQL ? Estructura de SQL
OPERACIONES DE RECUPERACIÓN. WHERE ciudad =‘Las Palmas’; de los suministradores Obtener el código y la situación de Las Palmas SELECT sn, situacion FROM.
MySQL M.C. Pedro Bello López.
SQL.
Lenguaje SQL (Structured Query Language)
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 5 Agregando Datos Usando Funciones de Grupo.
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.
1 John Freddy Duitama U.de.A. Facultad de Ingeniería Optimización Algebraica. Profesor: John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. Profesor:
Subconsultas Avanzadas
Integrantes: Peter velazques Andres heredia Juan Mendez
Facultad de Tecnología Informática
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.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 6 Subconsultas.
Dr. Mario Rossainz López Aplicaciones WEB Primavera 2015.
COMANDOS SQL.
SQL Informática aplicada.
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.
SQL MC Beatriz Beltrán Martínez Benemérita Universidad Autónoma de Puebla.
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.
Bases de Datos Sql.
Structured Query Language (Lenguaje Estructurado de Consultas)
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
Diseño de base de datos Tema 6 : LMD.

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.
 La sentencia SELECT recupera todas las columnas o un subconjunto de ellas de una tabla. Esto afecta a todas las filas de la tabla, a menos que especifiquemos.
Consultas SQL. SQL SQL es un lenguaje de consulta estructurado (Structured Query Languague). Se utiliza para: Eliminar Modificar Consultar La base de.
JOIN EN MYSQL Bueno en esta presentación mostrare cosas acerca de los usos de la sentencia JOIN en mysql , mediante esta presentación planeo mostrar los.
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.
SQL STRUCTURED QUERY LANGUAGE
AA Gerardo Morgade Donato AA Isnel Leyva Herbella.
Unidad 6. Tema 4. Lenguaje de consultas SQL
SQL: DDL.
INTEGRACION DE LAS TECNOLOGIAS DE LA INFORMACION Y COMUNICACION Implementación de base de datos (Lenguaje de manipulación de datos) Ing. Linda Masias Morales.
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.
DML Transact SQL Sesión VI Trabajando con subconsultas.
DML Transact SQL Sesión V Consultando múltiples tablas.
Selección Condicionada de Filas Uso de la cláusula WHERE La cláusula WHERE restringe las columnas que retorna una consulta según la condición que se imponga.
Structured Query Language
CONSULTAS SQL POSTGRES.
Transcripción de la presentación:

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. John Freddy Duitama Muñoz Facultad de Ingeniería U.de.A.

2 John Freddy Duitama M. U.de.A. Facultad de Ingeniería S.Q.L. Lenguaje de acceso a bases de datos de alto nivel. 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. Lenguaje de acceso a bases de datos de alto nivel. 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.

3 John Freddy Duitama M. U.de.A. Facultad de Ingeniería 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.

4 John Freddy Duitama M. U.de.A. Facultad de Ingeniería SELECT col1, col2,..., coln FROM tabla1, tabla2,... WHERE condición para las tuplas Es equivalente a :   col1,col2,...coln (   condición-tuplas ( tabla1 x tabla2... ) ) Columnas de una de mis tablas ? DESCRIBE empleado; NameNull?Type CedulaNOT NULLNUMBER(8) NombreNOT NULLVARCHAR2(50) JefeNUMBER(8) CargoNOT NULLVARCHAR2(10) DptoNOT NULLNUMBER(3) La sentencia básica S.Q.L.

5 John Freddy Duitama M. U.de.A. Facultad de Ingeniería Tablas ejemplo Empleado Departamento Clave foránea.

6 John Freddy Duitama M. U.de.A. Facultad de Ingeniería 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

7 John Freddy Duitama M. U.de.A. Facultad de Ingeniería La eliminación de duplicados. Utilizo la cláusula DISTINCT. SELECT DISTINCT cargo, dpto FROMempleado; 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.

8 John Freddy Duitama M. U.de.A. Facultad de Ingeniería 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. OPERADOREJEMPLO = salario = != <> dpto <> 10 > comision > 30 < comision < 20

9 John Freddy Duitama M. U.de.A. Facultad de Ingeniería Operadores usados en la cláusula WHERE OPERADOREJEMPLO <= salario <= >= salario >= 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

10 John Freddy Duitama M. U.de.A. Facultad de Ingeniería 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

11 John Freddy Duitama M. U.de.A. Facultad de Ingeniería 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

12 John Freddy Duitama M. U.de.A. Facultad de Ingeniería 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.

13 John Freddy Duitama M. U.de.A. Facultad de Ingeniería La Reunión Natural. Reunión natural SELECT cedula, e.nombre, d.nombre AS departamento FROM empleado e INNER JOIN departamento d ON dpto = codigo; retorna: Join Cédula e.nombre, departamento 12345Pepe CárdenasVentas Jesús OrozcoVentas Pedro SotoSistemas Concha MisasGerencia 10

14 John Freddy Duitama M. U.de.A. Facultad de Ingeniería La Reunión Natural. Self-join. SELECT e.nombre AS Empleado, j.nombre AS Jefe FROM empleado AS e, empleado AS j WHERE e.jefe = j.cedula Retorna. EmpleadoJefee.jefe = j.cedula Pepe CárdenasJesús Rico98765 = Jesús OrozcoConcha Misas Pedro SotoDiana Botero Diana BoteroConcha Misas

15 John Freddy Duitama M. U.de.A. Facultad de Ingeniería 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.

16 John Freddy Duitama M. U.de.A. Facultad de Ingeniería La Reunión externa. SELECT e.nombre, salario,d.nombre FROM empleado e LEFT OUTER JOIN departamento d ON e.dpto = d.codigo; Retorna: e.nombresalario d.nombre Pepe Cárdenas3500 Ventas Jesús Orozco3400 Ventas Pedro Soto3800 Sistemas Concha Misas4800 Gerencia Logística Bodega Recupera tuplas del join y aquellas que no lo cumplen.

17 John Freddy Duitama M. U.de.A. Facultad de Ingeniería Funciones de agregación. COUNT(*)COUNT(columna) SUM(columna)MIN(col) AVG(columna)MAX(col) SELECT COUNT(*) FROM empleado; SELECT COUNT(COMISION) FROM empleado; SELECT COUNT(DISTINCT CARGO) FROM empleado; 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.

18 John Freddy Duitama M. U.de.A. Facultad de Ingeniería La cláusula GROUP BY SELECT col1, col2,..., coln 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.

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

20 John Freddy Duitama M. U.de.A. Facultad de Ingeniería 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 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.

21 John Freddy Duitama M. U.de.A. Facultad de Ingeniería 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.

22 John Freddy Duitama M. U.de.A. Facultad de Ingeniería 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

23 John Freddy Duitama M. U.de.A. Facultad de Ingeniería 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.

24 John Freddy Duitama M. U.de.A. Facultad de Ingeniería Consultas correlacionadas. 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. Empleados con salario mayor que el salario promedio del depto al que pertenecen.

25 John Freddy Duitama M. U.de.A. Facultad de Ingeniería 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);

26 John Freddy Duitama M. U.de.A. Facultad de Ingeniería 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.

27 John Freddy Duitama M. U.de.A. Facultad de Ingeniería Operador NOT EXISTS Hallar los cargos comunes a todos los deptos. SELECT DISTINCT cargo FROM empleado ext WHERE NOT EXISTS (SELECT * FROM departamento WHERE NOT EXISTS (SELECT cargo FROM empleado WHERE cargo = ext.cargo and dpto = codigo ) ); No existe un empleado en cada departamento que no tenga tal cargo.

28 John Freddy Duitama M. U.de.A. Facultad de Ingeniería Operadores adicionales. SELECT col1a, col2a, col3a..., colna FROM tabla1 [ WHERE condición ] UNION | INTERSECT | EXCEPT SELECT col1b, col2b, col3b,..., colnb; FROM tabla2 [ WHERE condición ] 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

29 John Freddy Duitama M. U.de.A. Facultad de Ingeniería Agregar registros a una tabla. INSERT INTO empleado( cedula,nombre, salario,depto) VALUES( 23433, “Jesus Mosquera”, 10000,30); INSERT INTO empleado VALUES ( ,’Pepe’,1234, ,NULL,’Mensajero’, ’M’,20): INSERT INTO empleado SELECT cedula, nombre, jefe, salario,cargo,dpto FROM tabla2 WHERE condición.

30 John Freddy Duitama M. U.de.A. Facultad de Ingeniería 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”;

31 John Freddy Duitama M. U.de.A. Facultad de Ingeniería Eliminar tuplas de una tabla. DELETE FROM empleado WHERE salario > 10000; DELETE FROM departamento WHERE NOT EXISTS ( SELECT * FROM empleado WHERE código = dpto);

32 John Freddy Duitama M. U.de.A. Facultad de Ingeniería Bibliografía. Silberschatz, Korth, Sudarshan. Fundamentos de Bases de Datos. Cuarta edición McGraw-Hill. Jeffrey D. Ullman. and Jennifer Widom. A First Course in Database Systems. Prentice Hall Second edition. James R. Groff, Paul N. Weinberg. Aplique SQL. McGraw-Hill