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.

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

Repaso DBD!!! (Es ahora o nunca)
09/02/2014Curso Bases de Datos1 Ejemplos Álgebra Relacional.
Maestría en Bioinformática Bases de Datos y Sistemas de Información SQL: SELECT Ing. Alfonso Vicente, PMP
Consultas anidadas.
Maestría en Bioinformática Bases de Datos y Sistemas de Información Fundamentos de Matemática Ing. Alfonso Vicente, PMP
Lenguaje de consulta de Hibernate
IBD Clase 15.
S.Q.L. (Lenguaje de Consulta Estructurada)
Características Objeto Relacionales en Oracle
E.1 Obtener los detalles completos de todos los proyectos.
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.
PL/SQL Francisco Moreno Universidad Nacional.
Características Objeto Relacionales en Oracle Francisco Moreno Universidad Nacional.
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.
“Optimización de sentencias MySQL” jueves 26 de septiembre de 2013.
Lenguajes Formales de Consulta
SQL el Structured Query Language no es mas que un lenguaje estándar de comunicación con bases de datos.
Subconsultas Avanzadas
Facultad de Tecnología Informática
6 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados. Visualización de Datos de Varias Tablas Utilizando Uniones.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 6 Subconsultas.
Dr. Mario Rossainz López Aplicaciones WEB Primavera 2015.
COMANDOS SQL.
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
SELECT [DISTINCT] { * | tabla.col [, tabla.col ] } FROM tabla [, tabla ] [ WHERE condición_búsqueda ] [GROUP BY tabla.col [, tabla.col ] [HAVING condición_para_el_grupo.
CAPITULO 4 Despliegue de Datos Desde Múltiples Tablas
Programación en Visual Basic Lección #8: SQL Por Antonio F. Huertas.
CONSULTAS SENCILLAS A LA BASE DE DATOS
Consultas SQL (Base de Datos)
LENGUAJE SQL.
Bases de Datos Sql.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 14 Uso de Operadores de Conjuntos.
Expresiones algebraicas equivalentes
Ingeniería de Sistemas y Modelamiento.
Uso de los JOINS en MYSQL
4.1 ACTUALIZACIÓN DE UN ÚNICO REGISTRO. UPDATE p SET color = ‘amarillo’ peso = peso + 5 ciudad = NULL WHERE pn = ‘P2’; Cambiar el color de la parte ‘P2’
Diseño de base de datos Tema 6 : LMD.
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,
 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.
HINTS ¿Cómo afectar el plan de ejecución? Por defecto, el SGBD tomará en cuenta el camino de ejecución (Execution Path) determinado por el optimizador.
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.
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Diseño de Bases de Datos Tema 4: Integridad.
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Diseño de Bases de Datos Tema 4: Integridad.
Copyright  Oracle Corporation, All rights reserved. 1 Escritura de sentencias SQL SELECT básicas.
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.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
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.
DML Transact SQL Sesión III Agrupando y resumiendo información.
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.
Conferencia 7. Lenguaje SQL Estándar. Ejemplos.
SQL: Structured Query Language
CONSULTAS SQL POSTGRES.
SQL 2: Structured Query Language
Ejemplos Cálculo Relacional
LENGUAJES DE BASES DE DATOS: SQL
Transcripción de la presentación:

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 S5 Aldana 30 AtenasP pn pnombre color peso ciudad P1 Tuerca Rojo 12 Londres P2 PernoVerde 17 París P3 Tornillo Azul 17 Roma P4 Tornillo Rojo 14 Londres P5 Leva Azul 12 París P6 Rueda Rojo 19 Londres CP

SP SP sn pn cantidad S1 P1 300 S1 P2 200 S1 P3 400 S1 P4 200 S1 P5 100 S1 P6 100 S2 P1 300 S2 P2 400 S3 P3 200 S4 P2 200 S4 P4 300 S4 P5 400 CP CF hacia S CF hacia P

Nótese que en estos ejemplos, se cambió el nombre del atributo s# por sn y del atributo p# por pn, ya que el carácter # está reservado en SQL (aunque en algunos SGBD funciona). Obtener todos los datos de los proveedores de París que tengan una situación mayor a 10 SELECT * FROM s WHERE ciudad = 'París' AND situacion > 10;

soloObtener solo los códigos de los proveedores de Londres SELECT sn FROM s WHERE ciudad = 'Londres'; Imprimir todos los datos de los productos que no tienen color asignado (color es nulo) SELECT * FROM p WHERE color IS NULL; Nota: La comparación color = NULL, no devuelve verdadero aunque color esté en NULL También, existe el operador IS NOT NULL. Éste es uno de los errores más comunes que se cometen en SQL

Imprimir todos los datos de los proveedores que suministran el producto P2. Veamos tres soluciones: a) SELECT s.* FROM sp, s WHERE sp.sn = s.sn AND pn = 'P2'; b) SELECT * FROM s WHERE EXISTS(SELECT * FROM sp WHERE sp.sn = s.sn AND sp.pn = 'P2'); Correlación

c) SELECT * FROM s WHERE sn IN (SELECT sn FROM sp WHERE pn = 'P2');

Imprimir todos los datos de los proveedores que NO suministran el producto P2 a) SELECT * FROM s WHERE NOT EXISTS (SELECT * FROM SP WHERE sp.sn = s.sn AND sp.pn = 'P2'); b) SELECT * FROM s WHERE sn NOT IN (SELECT sn FROM SP WHERE pn = 'P2');

Obtener todos los datos de los proveedores que suministran todos los productos a) Una solución basada en cálculo usando doble NOT EXISTS: SELECT * FROM s WHERE NOT EXISTS(SELECT * FROM p WHERE NOT EXISTS (SELECT * FROM sp WHERE sp.pn = p.pn AND sp.sn = s.sn ) );

b) Una solución alternativa usando agregados: SELECT * FROM s WHERE (SELECT COUNT(*) FROM sp WHERE s.sn = sp.sn) = (SELECT COUNT(*) FROM p); Es decir, imprimir los proveedores si su conteo de productos en la tabla sp es igual al conteo de productos que hay en la tabla p.

c) Otra variante: SELECT * FROM s WHERE sn IN (SELECT sn FROM sp GROUP BY sn HAVING COUNT(*) = (SELECT COUNT(*) FROM p) );

Obtener los nombres de los proveedores que suministran por lo menos un producto rojo a) Mediante subconsultas: SELECT * FROM s WHERE sn IN (SELECT sn FROM sp WHERE pn IN (SELECT pn FROM p WHERE color = 'Rojo' ) );

b) Mediante reuniones (joins): SELECT DISTINCT s.* FROM s, sp, p WHERE s.sn = sp.sn AND p.pn = sp.pn AND color = 'Rojo'; Nótese la cláusula DISTINCT para evitar tuplas duplicadas en la salida

Imprimir los códigos de las parejas de proveedores que están situados en la misma ciudad SELECT s1.sn, s2.sn FROM s AS s1, s AS s2 WHERE s1.ciudad = s2.ciudad AND s1.sn < s2.sn; -Nótese la condición s1.sn < s2.sn para evitar que salga cada proveedor consigo mismo y evitar además las parejas “contrarias”. -Recordar: en el SQL estándar para renombrar se requiere AS, en algunos SGBD no es correcto.

Obtener el código y el número de productos que suministra cada proveedor SELECT sn, COUNT(*) FROM sp GROUP BY sn; La misma consulta anterior pero solo para aquellos proveedores con más de dos productos. Imprimir en orden por el conteo. SELECT sn, COUNT(*) AS conteo FROM sp GROUP BY sn HAVING COUNT(*) > 2 ORDER BY 2; Nótese el renombrado para la función COUNT. Significa que ordene por la segunda columna del SELECT, aquí, conteo.

Obtener los códigos de los proveedores que están ubicados en Londres o que suministran el producto P2 SELECT sn FROM s WHERE ciudad = 'Londres'UNION SELECT sn FROM sp WHERE pn = 'P2'; Nota: El operador UNION elimina tuplas duplicadas; si se desean duplicados usar el operador UNION ALL.

Obtener los códigos de los proveedores que son de Londres pero que NO suministran el producto P2 SELECT sn FROM s WHERE ciudad ='Londres'EXCEPT SELECT sn FROM sp WHERE pn = 'P2'; En algunos SGBD se usa la palabra MINUSEXCEPT MINUS en vez de EXCEPT

Obtener los códigos de los proveedores que son de Londres y que suministran también el producto P2 SELECT sn FROM s WHERE ciudad = 'Londres'INTERSECT SELECT sn FROM sp WHERE pn = 'P2';

Manejo de joins: Imprimir el nombre de cada proveedor y el nombre de cada producto que suministra a) SELECT s.snombre, p.pnombre FROM s, sp, p WHERE s.sn = sp.sn AND p.pn = sp.pn;

b) SELECT s.snombre, p.pnombre FROM (s INNER JOIN sp ON (s.sn = sp.sn)) INNER JOIN p ON (p.pn = sp.pn); c) SELECT snom, pnombre FROM (SELECT s.snombre AS snom, sp.pn AS pn FROM (s NATURAL JOIN sp)) NATURAL JOIN p; Inline view

soloNótese que en la última consulta se evita el atributo ciudad de las tablas s y p, para hacer el NATURAL JOIN solo por el atributo pn con la relación P. Usar inline views solo cuando sea necesario: SELECT sn FROM (SELECT * FROM s); Recuerde, aunque funciona ¡esto es simplemente!: SELECT sn FROM s;