0% encontró este documento útil (0 votos)
247 vistas42 páginas

SQL Avanzado

Este documento presenta una introducción al lenguaje de consultas estructuradas SQL (Structured Query Language). Explica conceptos clave como productos cartesianos, joins, uniones, intersecciones y diferencias. También cubre subconsultas utilizando operadores como IN, EXISTS y NOT EXISTS. Finalmente, incluye ejemplos de consultas SQL que ilustran estos diferentes tipos de consultas.

Cargado por

jherrera123
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
247 vistas42 páginas

SQL Avanzado

Este documento presenta una introducción al lenguaje de consultas estructuradas SQL (Structured Query Language). Explica conceptos clave como productos cartesianos, joins, uniones, intersecciones y diferencias. También cubre subconsultas utilizando operadores como IN, EXISTS y NOT EXISTS. Finalmente, incluye ejemplos de consultas SQL que ilustran estos diferentes tipos de consultas.

Cargado por

jherrera123
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 42

S.Q.L.

(Lenguaje de Consulta Estructurada) Consultas Avanzadas


Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L
Producto Cartesiano ( A x B)
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

Producto Cartesiano
Por lo menos dos tablas vinculadas en el producto. El resultado de la consulta es la combinacin de todas las tuplas de las dos tablas, que cumplan con
la condicin WHERE. WHERE
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 14.a:
Mostrar el nombre y el apellido de todas las cajeras:
SELECT nombre, apellido

FROM CAJERAS, PERSONAS

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 14.a:
Nombre Apellido ... ... Las cajeras son 10, las personas 99 El resultado de la consulta es:
10 * 99 = 990 tuplas
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L.
TIPOS de JOIN (reunin)
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

Joins (runiones)
Por lo menos dos tablas. El resultado de la consulta es la reunin de las dos tablas.
Se utilizan para obtener datos de tablas relacionadas entre si.
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 14.b:
Mostrar el nombre y el apellido de todas las cajeras:
SELECT nombre, apellido

FROM CAJERAS, PERSONAS WHERE CI_CAJ = CI


CONDICIN DE JOIN (REUNIN)
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 14.b:
Nombre Patricia Noelia Lucia Valentina ... Apellido Jentancur Tallusche Socca Mazos ...
Prof. L. Carmbula

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

S.Q.L. - Instruccin SELECT

CONSULTA 15:
Mostrar el total de cada producto:
SELECT cantidad * precio TOTAL

FROM PRODUCTOS, FACTURAN WHERE ID_PROD = ID_PROD


CONDICIN DE JOIN (UNIN)
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 15:
Mostrar el total de cada producto:
SELECT cantidad * precio TOTAL

FROM PRODUCTOS, FACTURAN WHERE ID_PROD = ID_PROD


El atributo tiene el mismo nombre en las dos tablas, hay que indicar de que tabla es cada uno
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 15:
Mostrar el total de cada producto:
SELECT cantidad * precio TOTAL

FROM PRODUCTOS, FACTURAN WHERE PRODUCTOS.ID_PROD = FACTURAN.ID_PROD


Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 15:
Mostrar el total de cada producto:
SELECT cantidad * precio TOTAL

FROM PRODUCTOS P, FACTURAN F WHERE P.ID_PROD =F.ID_PROD


Se puede utilizar un alias para las tablas
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 15:
Mostrar el total de cada producto:
SELECT cantidad * precio TOTAL

FROM PRODUCTOS P, Alias de Producto FACTURAN F WHERE P.ID_PROD =F.ID_PROD


Se puede utilizar un alias para las tablas
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 15:
Mostrar el total de cada producto:
SELECT cantidad * precio TOTAL

FROM PRODUCTOS P, FACTURAN F Alias de Facturan WHERE P.ID_PROD =F.ID_PROD


Se puede utilizar un alias para las tablas
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

Compatibles
Dos tablas o consultas A y B son compatibles cuando:
tienen la misma cantidad de columnas. se corresponden los dominios en el mismo orden.
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

Para los siguientes tipos de consultas relacionales, las tablas vinculadas deben ser COMPATIBLES. Unin Interseccin Diferencia
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

Unin
El nmero de filas en la consulta va ser igual a la suma de las filas de cada tabla o consulta. Las tablas deben ser compatibles.
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 16:
Mostrar el apellido de todas las personas, conjuntamente con el quebranto de caja o el nmero de cliente

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 16:
SELECT APELLIDO, NUMERO No/Quebranto FROM PERSONAS, CLIENTES WHERE CI = CI_CLI UNION ( SELECT APELLIDO, QUEBRANTO FROM PERSONAS, CAJERAS WHERE CI = CI_CAJ)

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

Interseccin
El nmero de filas de la consulta va ser igual a la cantidad de las filas iguales en ambas tablas o consultas. Las tablas deben ser compatibles.
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 17.a:
Mostrar el apellido y el nombre de las cajeras que han efectuado alguna venta.

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 17.a:
SELECT FROM WHERE AND APELLIDO, NOMBRE PERSONAS, CAJERAS CI = CI_CAJ CI_CAJ IN ( SELECT CI_CAJ FROM FACTURAN)

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

Diferencia
El nmero de filas de la consulta va ser igual a la cantidad de filas no incluidas en la otra tabla o consulta. Las tablas deben ser compatibles.
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 18.a:
Mostrar el apellido y el nombre de las cajeras que NO han efectuado alguna venta.

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 18.a:
SELECT FROM WHERE AND APELLIDO, NOMBRE PERSONAS, CAJERAS CI = CI_CAJ CI_CAJ NOT IN ( SELECT CI_CAJ FROM FACTURAN)

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

Subconsultas
WHERE columna [NOT] IN ...
Interseccin [Diferencia]

WHERE columna
[ALL|SOME|ANY] ...

WHERE [NOT] EXISTS ...


Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

Subconsultas
WHERE columna op_rel [ALL|SOME|ANY]
(subcosulta)

Se ejecuta la subconsulta y luego la consulta para aquellas tuplas que cumplan con la condicin.
WHERE columna > ALL (subconsulta)

el valor de la columna es mayor que todos los valores de la subconsulta.


Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 19:
Mostrar el nombre y el apellido de las cajeras que tengan un quebranto MAYOR que TODAS las otras cajeras

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 19:
SELECT APELLIDO, NOMBRE FROM PERSONAS, CAJERAS WHERE CI = CI_CAJ AND QUEBRANTO >= ALL ( SELECT QUEBRANTO FROM CAJERAS)

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

Subconsultas
WHERE columna op_rel [ALL|SOME|ANY]
(subcosulta) WHERE columna > SOME (subconsulta)

el valor de la columna es mayor que algunos (ms de dos) de los valores de la subconsulta.
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 20:
Mostrar el nombre y el apellido de las cajeras que tengan un quebranto MAYOR que ALGUNAS de las otras cajeras

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 20:
SELECT APELLIDO, NOMBRE FROM PERSONAS, CAJERAS WHERE CI = CI_CAJ AND QUEBRANTO > SOME ( SELECT QUEBRANTO FROM CAJERAS)

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

Subconsultas
WHERE columna op_rel [ALL|SOME|ANY]
(subcosulta) WHERE columna > ANY (subconsulta)

el valor de la columna es mayor que uno de los valores de la subconsulta.


Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 21:
Mostrar el nombre y el apellido de las cajeras que tengan un quebranto MAYOR que UNA de las otras cajeras

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 21:
SELECT APELLIDO, NOMBRE FROM PERSONAS, CAJERAS WHERE CI = CI_CAJ AND QUEBRANTO > ANY ( SELECT QUEBRANTO FROM CAJERAS)

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

Subconsultas
WHERE EXISTS (subconsulta)
Cuando existan tuplas resultantes de la subconsulta.

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 17.b:
Mostrar el apellido y el nombre de las cajeras que han efectuado alguna venta.

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 17.b:
SELECT FROM WHERE AND APELLIDO, NOMBRE PERSONAS, CAJERAS C CI = CI_CAJ EXISTS ( SELECT CI_CAJ FROM FACTURAN F WHERE C.CI_CAJ = F.CI_CAJ)
Prof. L. Carmbula

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

S.Q.L. - Instruccin SELECT

Subconsultas
WHERE NOT EXISTS (subconsulta)
Cuando no existan tuplas resultantes de la subconsulta.
Sistemas de Bases de Datos II - ITS EMT CETP - 2010 Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 18.b:
Mostrar el apellido y el nombre de las cajeras que NO han efectuado alguna venta.

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

Prof. L. Carmbula

S.Q.L. - Instruccin SELECT

CONSULTA 18.b:
SELECT FROM WHERE AND APELLIDO, NOMBRE PERSONAS, CAJERAS C CI = CI_CAJ NOT EXIST ( SELECT CI_CAJ FROM FACTURAN F WHERE C.CI_CAJ = F.CI_CAJ)
Prof. L. Carmbula

Sistemas de Bases de Datos II - ITS EMT CETP - 2010

También podría gustarte