Академический Документы
Профессиональный Документы
Культура Документы
CONSULTA DE DATOS
curso 2008
Bases de Datos I 2
1
Sentencia SELECT
SELECT [ DISTINCT ] <lista atributos>
FROM <lista tablas>
[ WHERE condicin ]
[ GROUP BY <lista atributos grupo>
[ HAVING (condicin grupo) ] ]
[ ORDER BY <lista atributos orden> ] ;
Ejemplo
N N N 1
INVESTIGADOR trabaja PROYECTO corresponde
INSTITUTO
Bases de Datos I 4
2
Consultas de una tabla
Ej. 1:
1: Listar los identificadores y Ej. 2: Listar todos los datos de
nombres de los proyectos los Institutos
Bases de Datos I 5
Ej. 3.a: Listar los temas de los Ej. 3.b: Listar los distintos temas
proyectos de los proyectos
SELECT tema SELECT DISTINCT tema
FROM PROYECTO ; FROM PROYECTO ;
Hay repeticiones
no se eliminan filas repetidas, a menos que
se indique explcitamente con DISTINCT
Bases de Datos I 6
3
Consultas de una tabla - condiciones
Ej. 4: Listar los nombres de los Ej. 5: Listar los nombres de los
proyectos de ms de 12 meses proyectos de ms de 12 meses
de duracin de duracin cuyo tema
comience con Bases
SELECT nombre
FROM PROYECTO SELECT nombre
WHERE duracion > 12; FROM PROYECTO
WHERE duracion >= 12
AND tema LIKE Bases% ;
Bases de Datos I 7
Bases de Datos I 8
4
Consultas ordenamiento
Ej. 8: Listar id. y nombre de los proyectos de 2 aos de duracin,
ordenados por nombre
SELECT proy_id, nombre
FROM PROYECTO
WHERE duracion = 24
ORDER BY nombre;
Ej. 9: Listar los datos completos de los proyectos, ordenados por instituto
y duracin
SELECT * FROM PROYECTO
ORDER BY id_inst, duracion;
Bases de Datos I 9
N N N 1
INVESTIGADOR trabaja PROYECTO corresponde INSTITUTO
Ej. 10: Obtener los nombres de los proyectos del Instituto Inst2
SELECT PROYECTO.nombre
FROM PROYECTO, INSTITUTO
WHERE PROYECTO. id_inst = INSTITUTO. id_inst
AND INSTITUTO. nombre = Inst2;
Ej. 11: Listar los id. y nombre de los investigadores junto con el id. del
instituto en que trabajan
SELECT I.id_inv, I.nom_inv, P.id_inst
FROM INVESTIGADOR I, TRABAJA T, PROYECTO P
WHERE P.proy_id =T.proy_id AND I.id_inv=T.id_inv;
Bases de Datos I 10
5
Unin en SQL
Se requiere que ambas tablas tengan tipos de datos compatibles.
SELECT * FROM R
UNION [ALL]
SELECT * FROM S;
El operador elimina filas duplicadas, aunque se pueden conservar
usando la clusula ALL a continuacin de UNION.
Mediante la clusula CORRESPONDING, seguida por una lista de
nombres de columna, se permite unir dos tablas que no tienen
exactamente el mismo esquema Incluye solo las columnas
indicadas, como si se hiciera una proyeccin (si no se incluye la lista,
genera un resultado con solo las columnas comunes a ambas tablas)
SELECT * FROM R
UNION CORRESPONDING [ BY(col1, col2, )] [ALL]
SELECT * FROM S;
Bases de Datos I 11
Interseccin
SELECT * FROM R
INTERSECT
SELECT * FROM S;
R: A B S: A B R INTERSECT S
a1 b1 a1 b1 A B
a2 b2 a3 b1 a1 b1
R: A B S: A B R INTERSECT ALL S
a1 b1 a1 b1 A B
a2 b2 a2 b2 a1 b1
a2 b2 a2 b2 a2 b2
a3 b1 a2 b2 a2 b2
Bases de Datos I 12
6
Diferencia
Bases de Datos I 13