SQL - Instrucción SELECT

Download Report

Transcript SQL - Instrucción SELECT

S.Q.L.
(Lenguaje de Consulta Estructurada)
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Consultas
 SQL tiene una instrucción básica para
obtener información de una base de
datos:
 la instrucción SELECT (seleccionar).
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 Básicamente la instrucción
consta de tres cláusulas:
 SELECT <lista de atributos>
FROM <lista de tablas>
[ WHERE <condición> ]
 [ GROUP BY <lista de atributos> ]
 [ HAVING
<lista de atributos> ]
 [ ORDER BY <lista de atributos> ]
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
<lista de atributos>
 Es la lista que contiene los
nombres de los atributos que se
quieren consultar.
 Los atributos se van a desplegar
en el orden en que aparecen en la
lista.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
<lista de atributos>
 Para desplegar cada atributo se
utiliza una atributo distinta.
 En la cabecera de la columna
aparecerá el nombre del atributo.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
<lista de atributos>
 Ejemplos:
atributo
atr1, atr2, atr3, atr4
*
nom_tabla.atributo
nom_tabla.*
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
<lista de atributos>
 Ejemplos:
 expresión:
 expresión
 constante
 operadores aritméticos
 atributo
 función
 constantes
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
<lista de tablas>
 es la lista que contiene los
nombres de las tablas que estan
vinculadas en la consulta.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
<condición>
 es una expresión condicional
(booleana).
 Las tuplas o filas que cumplan
con esta condición serán el
resultado de la consulta.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
<condición>
 Expr1 operador Expr2




atributo
Constante
Operador Lógico
Operador Relacional
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L
Instrucción Select
Básico
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 1:
Obtener los nombres de los
jugadores:
APELLIDO ‘Delgado’.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 1:
SELECT NOM
FROM JUGADORES
WHERE APE = ‘Delgado’
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 1:
NOM
Cesar
Agustin
Javier
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 2.a:
Obtener el peso y altura del
jugador de:
NOMBRE ‘Frankie’
APELLIDO ‘Oviedo’
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 2.a:
SELECT PESO, ALTURA
FROM JUGADORES
WHERE NOM = ‘Frankie’
AND APE = ‘Oviedo’
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 2.a:
PESO
94,1
ALTURA
1,99
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 3:
Obtener los nombres de todos
los jugadores cuya altura sea
menor a 1,8 mts.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 3:
SELECT NOM, APE
FROM JUGADORES
WHERE ALTURA < 1.8
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 3:
NOM
Cesar
Ronald
Lorgio
Roberto Carlos
...
APE
Delgado
Raldes
Alvarez
...
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 Si se omite la claúsula WHERE, se
despliegan todas las filas de las
tablas indicadas en la claúsula
FROM.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 4:
SELECT NOM, APE
FROM JUGADORES
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 4:
NOM
Ruberth
Carlos
Cesar
Mauricio
...
APE
Moran
Bueno
Delgado
Pinilla
...
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
*
Indica que se van a
seleccionar todos los atributos
de una tabla o de las tablas
vinculadas en la consulta.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 5:
Mostrar todos los datos de las
Selecciones.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 5:
Mostrar todos los datos de las
Selecciones.
SELECT *
FROM
SELECCIONES
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 5:
ID
1
2
3
4
...
NOM
Argentina
Bolivia
Brasil
Chile
...
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
DISTINCT
 SQL no trata a las TABLAS como
conjuntos,
puede
haber
filas
repetidas en una tabla o en el
resultado de una consulta.
 SQL no elimina las filas repetidas
por si solo, sino hay que indicarle
que lo haga.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
DISTINCT
 Para indicar que no tome en cuenta
valores de filas repetidas hay que
utilizar la instrucción DISTINCT.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
DISTINCT
 Para indicar que no tome en cuenta
valores de filas repetidas hay que
utilizar la instrucción DISTINCT.
SELECT DISTINCT ATRIBUTO
FROM NOMBRE_TABLA
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 6.a:
 Mostrar todas las alturas de los
jugadores:
SELECT ALTURA
FROM JUGADORES
 En el caso que existan dos o más
jugadores de igual altura, aparecerán
igual, en el resultado de la consulta.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 6.a:
ALTURA
1,95
1,96
1,76
1,96
...
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 6.b:
 Mostrar todas las alturas de los
jugadores:
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 6.b:
 Mostrar todas las alturas de los
jugadores:
SELECT DISTINCT ALTURA
FROM JUGADORES
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 6.b:
ALTURA
1,95
1,96
1,76
1,68
...
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
Uso de seudónimos
 Se pueden renombrar los nombres
de las cabeceras de las atributos
resultantes de la consulta.
 Se coloca el seudónimo a la derecha
de cada atributo en la claúsula
SELECT.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 2.b:
Obtener el PESO y ALTURA
del jugador de:
NOMBRE ‘Frankie’
APELLIDO ‘Oviedo’
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 2.b:
SELECT PESO PESO,
ALTURA ALTURA
FROM JUGADORES
WHERE NOM = ‘Frankie’
AND APE = ‘Oviedo’
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 2.b:
PESO
94,1
ALTURA
1,99
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
Uso de seudónimos
 Generalmente se usa para renombrar
las atributos resultantes del uso de
funciones agregadas, como ser:
 MAX (expr), máximo.
 MIN (expr), mínimo.
 SUM (expr), sumatoria.
 AVG (expr), promedio.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 Otros operadores
 atributo [NOT] IN (lista valores)
 atributo [NOT] BETWEEN
V1 AND V2
 atributo IS [NOT] NULL
 atributo [NOT] LIKE ‘Patron’
% , ?
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 7.a:
 Mostrar los nombres de los
jugadores que juegan el la posición
de ‘Arquero’ o ‘Defensa’
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 7.a:
 Mostrar los nombres de los
jugadores que juegan el la posición
de ‘Arquero’ o ‘Defensa’
SELECT NOM, APE
FROM JUGADORES
WHERE POSICION IN
(‘Arquero’, ‘Defensa’)
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 7.a:
NOM
Ruberth
Juan Pablo
Cafu
Mauricio
...
APE
Moran
Sorin
Pinilla
...
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 7.b:
 Mostrar los nombres de los
jugadores que su altura este entre
1,8m y 1,9m .
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 7.b:
 Mostrar los nombres de los
jugadores que su altura este entre
1,8m y 1,9m .
SELECT NOM, APE
FROM JUGADORES
WHERE ALTURA BETWEEN
1.8 AND 1.9
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 7.b:
NOM
Andres
Leonardo
Luis
Luis Hector
...
APE
D Alessandro
Fernandez
Ribeiro
Cristaldo
...
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 7.c:
 Mostrar los nombres de los
jugadores que su apellido comience
con los caracteres ‘Ca’
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 7.c:
 Mostrar los nombres de los
jugadores que su apellido comience
con los caracteres ‘Ca’
SELECT NOM, APE
FROM JUGADORES
WHERE APE LIKE
‘Ca%’
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 7.c:
NOM
Jose Alfredo
Miguel
...
APE
Cavallero
Castillo
Calero
Caniza
...
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L
Funciones Agregadas
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
Funciones Agregadas
Estas cinco (sum, count,
min, max, avg) funciones
trabajan sobre un grupo de
tuplas de igual tipo.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
Funciones Agregadas
Se agrupa la información
tomando en cuenta:
expr
la(s) tabla(s) en: FROM ...
la condición en: WHERE...
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
Funciones Agregadas
 Luego se ejecuta la función
sobre los grupos de tuplas o filas.
 Por último, se despliega el
resultado de la función, para el o
los grupos resultantes.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
Funciones Agregadas
 No se puede utilizar estas
funciones conjuntamente con
atributos que no pertenezcan o
que no esten relacionados con el
grupo que se está agregando.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 MAX ([DISTINCT|ALL] expr)
 Calcula el máximo valor del grupo
de expresiones expr.
 DISTINCT
 Elimina valores repetidos
 ALL
 Toma en cuenta todos los valores.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 8:
 Mostrar la máxima altura de todos
los jugadores:
SELECT
FROM
MAX ( ALTURA) Maximo
JUGADORES
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 8:
Maximo
70
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 MIN ([DISTINCT|ALL] expr)
 Calcula el valor mínimo del grupo de
expresiones expr.
 DISTINCT
 Elimina valores repetidos
 ALL
 Toma en cuenta todos los valores.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 9:
 Mostrar el menor peso de todos los
jugadores:
SELECT
FROM
MIN ( PESO) Menor Peso
JUGADORES
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 9:
Menor Peso
70
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 10:
 Mostrar la menor altura de todos los
jugadores:
SELECT MIN( ALTURA ) Altura Minima
FROM JUGADORES
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 10:
Altura Minima
1.50
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 SUM ([DISTINCT|ALL] N)
 Calcula la sumatoria del grupo de
valores N (expresión numérica).
 DISTINCT
 Elimina valores repetidos
 ALL
 Toma en cuenta todos los valores.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 11.a:
 Mostrar el total de los SUELDOS de
todos los jugadores:
SELECT
FROM
SUM ( SUELDO ) Total Sueldos
JUGADORES
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 11.a:
Total Sueldos
113894,1
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 11.b:
 Mostrar el total de los SUELDOS
DISTINTOS de todos
los
jugadores:
SELECT
FROM
SUM ( DISTINCT SUELDO )
Total Sueldos Distintos
JUGADORES
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 11.b:
Total Sueldos Distintos
9323.5
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 AVG ([DISTINCT|ALL] N)
 Calcula el promedio del grupo de
valores N (expresión numérica).
 DISTINCT
 Elimina valores repetidos
 ALL
 Toma en cuenta todos los valores.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 12:
 Mostrar el promedio de todos sueldos
de todos los jugadores:
SELECT AVG ( SUELDO )
Promedio Sueldos
FROM JUGADORES
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 12:
Promedio Sueldos
769,55
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 13:
 Mostrar el promedio de los sueldos de
los jugadores:
SELECT AVG ( DISTINCT SUELDO)
Promedio Sueldos Distintos
FROM
JUGADORES
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 13:
Promedio Sueldos Distintos
767,17
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 COUNT ({*|[DISTINCT|ALL] expr })
 Calcula el promedio del conjunto de
valores N.
*
 Count retorna la cantidad de filas de la
tabla.
 DISTINCT
 Elimina valores repetidos
 ALL
 Toma en cuenta todos los valores.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 14:
 Mostrar la cantidad de selecciones:
SELECT COUNT (ID) Cantidad
FROM SELECCIONES
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 14:
Cantidad
10
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 15:
 Mostrar la cantidad de sueldos
distintos que se pagan a los
jugadores:
SELECT COUNT ( DISTINCT SUELDO )
Sueldos Distintos
FROM JUGADORES
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 15:
Sueldos Distintos
10
 El sueldo es el mismo para todos los
jugadores de la misma selección.
 Igual a la cantidad de selecciones.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L
Instrucción Select
TIPOS de JOIN (unión)
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 Producto Cartesiano
 Por lo menos dos tablas
vinculadas en el producto.
 El resultado de la consulta es la
combinación de todas las tuplas
de las dos tablas, que cumplan con
la condición WHERE.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 16.a:
 Mostrar el nombre de todos los
jugadores conjuntamente con la
selección a la que pertenecen:
SELECT S.NOM Seleccion,
J.NOM
Nombre
FROM JUGADORES J, SELECCIONES S
WHERE SEL_ID = S.ID
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 16.a:
Seleccion
Argentina
Uruguay
Bolivia
Brasil
...
Nombre
Cristian
Alejandro
Luis
Rivaldo
...
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 16.b:
 Mostrar el nombre de todos los
jugadores de la selección Uruguay:
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 16.b:
 Mostrar el nombre de todos los
jugadores de la selección Uruguay:
SELECT J.NOM Nombre
FROM JUGADORES J, SELECCIONES S
WHERE SEL_ID = S.ID
AND NOM = ‘Uruguay’
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 16.b:
Nombre
Gustavo
Alejandro
Marcelo
Daniel
...
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 Compatibles
 Dos tablas o consultas T1 y T2
son compatibles cuando:
tienen la misma cantidad de
atributos.
se corresponden los dominios en el
mismo orden.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 Para los siguientes tipos de
consultas relacionales, las tablas
vinculadas
deben
ser
COMPATIBLES.
Unión
Intersección
Diferencia
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 Unión
 El número de filas en la consulta
va ser igual a la suma de las filas
de cada tabla o consulta.
 Las tablas deben ser compatibles.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 17:
 Mostrar el nombre de todos las
personas vinculadas a la selección
‘Uruguay’:
 Jugadores
 Director Técnico.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
CONSULTA 17:
SELECT S.NOM Seleccion, J.NOM Nombre
FROM JUGADORES J, SELECCIONES S
WHERE SEL_ID = S.ID
AND NOM = ‘Uruguay’
UNION ( SELECT S.NOM, D.NOM
FROM
DTS D, SELECCIONES S
WHERE D.SEL_ID = S.ID
AND S.NOM = ‘Uruguay’ )
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 17:
Seleccion
Uruguay
Uruguay
...
Uruguay
...
Nombre
Adrian
Alejandro
...
Jorge
...
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 Intersección
 El número 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.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 18:
 Mostrar el nombre de los jugadores
de la selección Uruguay que han
anotado algún gol.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
CONSULTA 18:
SELECT J.NOM Nombre, APE Apellido
FROM JUGADORES J, SELECCIONES S
WHERE SEL_ID = S.ID
AND S.NOM = ‘Uruguay’
AND J.ID
IN ( SELECT JUG_ID
FROM GOLES)
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 18:
Nombre
Nelson
Diego
Javier
Carlos
Adrian
Apellido
Abeijon
Forlan
Chevanton
Bueno
Romero
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 Diferencia
 El número 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.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 19:
 Mostrar el nombre de los jugadores
de la selección Uruguay que NO han
anotado ningún gol.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
CONSULTA 19:
SELECT J.NOM Nombre, APE Apellido
FROM JUGADORES J, SELECCIONES S
WHERE SEL_ID = S.ID
AND NOM = ‘Uruguay’
AND JUG_ID
NOT IN ( SELECT JUG_ID
FROM GOLES)
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 19:
Nombre
Gustavo
Alejandro
Marcelo
Alvaro
...
Apellido
Munua
Lembo
de Souza
Recoba
...
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 Subconsultas
 WHERE atributo [NOT] IN ...
Intersección [Diferencia]
 WHERE atributo
[ALL|SOME|ANY]
...
 WHERE [NOT] EXISTS ...
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
Subconsultas
WHERE atributo op_rel [ALL|SOME|ANY]
(subcosulta)
Se ejecuta la subconsulta y luego la
consulta para aquellas tuplas que
cumplan con la condición.
WHERE atributo > ALL (subconsulta)
 el valor de la atributo es mayor que
todos los valores de la subconsulta.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
CONSULTA 20:
 Mostrar el nombre y el apellido de los
Atacante de la selección Uruguay que
perciban un sueldo MAYOR que TODOS
los Atacante de las otras selecciones.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
CONSULTA 20:
SELECT J.NOM Nombre, APE Apellido
FROM JUGADORES J, SELECCIONES S
WHERE SEL_ID = S.ID
AND S.NOM = ‘Uruguay’
AND POSISICION = ‘Atacante’
AND SUELDO > ALL
( SELECT SUELDO
FROM JUGADORES, SELECCIONES S
WHERE POSICION = ‘Atacante’
AND SEL_ID = S.ID
AND S.NOM != ‘Uruguay’)
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 CONSULTA 20:
Para que esta consulta tenga
resultados se debe modificar
alguno de los sueldos de los
atacantes de la selección
uruguaya.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
Subconsultas
WHERE atributo op_rel [ALL|SOME|ANY]
(subcosulta)
 WHERE atributo > SOME (subconsulta)
 el valor de el atributo es mayor que
algunos (más de dos) de los valores
de la subconsulta.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
CONSULTA 21:
 Mostrar el nombre y el apellido de los
Atacante de la selección Uruguay que
perciban un sueldo MAYOR que
ALGUNOS de los Atacante de las otras
selecciones.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
CONSULTA 21:
SELECT S.NOM Nombre, APE Apellido
FROM JUGADORES J, SELECCIONES S
WHERE SEL_ID = S.ID
AND NOM = ‘Uruguay’
AND POSICION = ‘Atacante’
AND SUELDO > SOME
( SELECT SUELDO
FROM JUGADORES, SELECCIONES S
WHERE POSICION = ‘Atacante’
AND SEL_ID = S.ID
AND S.NOM != ‘Uruguay’)
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
Subconsultas
WHERE atributo op_rel [ALL|SOME|ANY]
(subcosulta)
 WHERE atributo > ANY (subconsulta)
 el valor de la atributo es mayor que
uno de los valores de la subconsulta.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
CONSULTA 22:
 Mostrar el nombre y el apellido de los
Atacante de la selección Uruguay que
perciban un sueldo MAYOR que ALGUNO
de los Atacante de las otras selecciones.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
CONSULTA 22:
SELECT J.NOM Nombre, APE Apellido
FROM JUGADORES J, SELECCIONES S
WHERE SEL_ID = S.ID
AND NOM = ‘Uruguay’
AND SEL_POS = ‘Atacante’
AND SUELDO > ANY
( SELECT SUELDO
FROM JUGADORES J, SELECCIONES S
WHERE POSICION = ‘Atacante’
AND SEL_ID = S.ID
AND S.NOM != ‘Uruguay’)
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 Subconsultas
 WHERE EXISTS (subconsulta)
Cuando existan tuplas resultantes
de la subconsulta.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior
S.Q.L. - Instrucción SELECT
 Subconsultas
 WHERE NOT EXISTS
(subconsulta)
Cuando no existan tuplas
resultantes de la subconsulta.
A/S Leonardo Carámbula – Base de Datos I – Instituto Tecnológico Superior