Title: Universidad de Chile
1Computación II CC20A II Semestre 2007
2SQL
Consultas en SQL SQL tiene una instrucción
principal para recuperar información de una base
de datos el comando SELECT. Esta instrucción
tiene muchas opciones. La forma básica de la
instrucción SELECT es la siguiente SELECT
ltlista de atributosgt FROM ltlista de
tablasgt WHERE ltcondicióngt ltlista de
atributosgt es una lista de nombres de atributos
cuyos valores van a ser recuperados por la
consulta. ltlista de tablasgt es una lista de
nombres de relaciones requeridos para procesar la
consulta.ltcondicióngt es una expresión de
búsqueda condicional (lógica) que identifica las
tuplas que van a ser recuperadas por la consulta.
3SQL
EMPLEADO
DEPARTAMENTO
UBICACIONES_DEPTO
PROYECTO
TRABAJA_EN
CARGA
4SQL
Consulta 0 Recuperar la fecha de nacimiento y la
dirección del empleado cuyo nombre es "Juan
Pérez".
- Q0Â Â Â Â
- SELECT FNAC, DIRECCION
- FROM EMPLEADO
- WHERE NPILA "Juan" AND APPAT "Pérez"
5SQL
EMPLEADO
DEPARTAMENTO
UBICACIONES_DEPTO
PROYECTO
TRABAJA_EN
CARGA
6SQL
Consulta 1 Recuperar el nombre y la dirección de
todos los empleados que trabajan en el
departamento "Investigación".
- Q1Â Â Â Â
- SELECT NPILA, APPAT, DIRECCION
- FROM EMPLEADO, DEPARTAMENTO
- WHERE DNOMBRE "Investigación" AND DNUMERO
NDEPTO
7SQL
Consulta 2 Para todos los proyectos localizados
en "La Florida", liste el número de proyecto, el
número de departamento que lo controla, y el
nombre, dirección y fecha de nacimiento del
gerente de ese departamento".
EMPLEADO
DEPARTAMENTO
PROYECTO
UBICACIONES_DEPTO
CARGA
TRABAJA_EN
8SQL
Consulta 2 Para todos los proyectos localizados
en "La Florida", liste el número de proyecto, el
número de departamento que lo controla, y el
nombre, dirección y fecha de nacimiento del
gerente de ese departamento".
Q2Â Â Â Â SELECT PNUMERO, DNUM, NPILA, APPAT,
DIRECCION, FNAC FROM PROYECTO, DEPARTAMENTO,
EMPLEADO WHERE DNUM DNUMERO AND RUTGERENTE
RUT AND PUBICACION "La Florida"
9SQL
Consulta 3 Para cada empleado, recuperar el
nombre y primer apellido, y el nombre y primer
apellido de su supervisor inmediato".
EMPLEADO
DEPARTAMENTO
PROYECTO
UBICACIONES_DEPTO
CARGA
TRABAJA_EN
10SQL
Consulta 3 Para cada empleado, recuperar el
nombre y primer apellido, y el nombre y primer
apellido de su supervisor inmediato".
Q3Â Â Â Â SELECT E.NPILA, E.APPAT, S.NPILA,
S.APPAT FROM EMPLEADO E, EMPLEADO S WHERE
E.RUTSUPERV S.RUT
11SQL
Consulta 4 Recuperar todos los números de RUT de
los empleados.
EMPLEADO
DEPARTAMENTO
PROYECTO
UBICACIONES_DEPTO
CARGA
TRABAJA_EN
12SQL
Consulta 4 Recuperar todos los números de RUT de
los empleados.
Q4Â Â Â Â SELECT RUT FROM EMPLEADO
13SQL
Consulta 5 Recuperar todas las combinaciones de
números de RUT de los empleados y nombre de
departamentos. (Si no existe cláusula WHERE, se
toma el producto cruz).
EMPLEADO
DEPARTAMENTO
PROYECTO
UBICACIONES_DEPTO
CARGA
TRABAJA_EN
14SQL
Consulta 5 Recuperar todas las combinaciones de
números de RUT de los empleados y nombre de
departamentos. (Si no existe cláusula WHERE, se
toma el producto cruz).
Q5Â Â Â Â SELECT RUT, DNOMBRE FROM
EMPLEADO, DEPARTAMENTO
15SQL
- Consulta 6
- Recuperar los valores de todos los atributos de
EMPLEADO que trabajan en el departamento número
"5".
EMPLEADO
DEPARTAMENTO
PROYECTO
UBICACIONES_DEPTO
CARGA
TRABAJA_EN
16SQL
- Consulta 6
- Recuperar los valores de todos los atributos de
EMPLEADO que trabajan en el departamento número
"5".
Q6Â Â Â Â SELECT FROM EMPLEADO
WHERE NDEPTO 5
17SQL
- Consulta 7
- Recuperar los valores de todos los atributos de
EMPLEADO y los atributos del DEPARTAMENTO en que
el empleado trabaja, para cada empleado del
departamento de "Investigación".
EMPLEADO
DEPARTAMENTO
PROYECTO
UBICACIONES_DEPTO
CARGA
TRABAJA_EN
18SQL
- Consulta 7
- Recuperar los valores de todos los atributos de
EMPLEADO y los atributos del DEPARTAMENTO en que
el empleado trabaja, para cada empleado del
departamento de "Investigación".
- Q7Â Â Â Â SELECT
- FROM EMPLEADO, DEPARTAMENTO
- WHERE DNOMBRE "Investigación" AND
NDEPTO DNUMERO
19SQL
- Consulta 8
- Recuperar el producto cruz de las relaciones
EMPLEADO y DEPARTAMENTO.
EMPLEADO
DEPARTAMENTO
PROYECTO
UBICACIONES_DEPTO
CARGA
TRABAJA_EN
20SQL
- Consulta 8
- Recuperar el producto cruz de las relaciones
EMPLEADO y DEPARTAMENTO.
- Q8Â Â Â Â SELECT
- FROM EMPLEADO, DEPARTAMENTO
21SQL
- Consulta 9
- Recuperar el salario de cada empleado.
EMPLEADO
DEPARTAMENTO
PROYECTO
UBICACIONES_DEPTO
CARGA
TRABAJA_EN
22SQL
- Consulta 9
- Recuperar el salario de cada empleado.
- Q9Â Â Â Â SELECT SUELDO
- FROM EMPLEADO
23SQL
- Consulta 9a
- En la consulta anterior obtenemos una tabla con
la lista de salarios de todos los empleados. Sin
embargo, si dos o más empleados ganan lo mismo,
el mismo valor aparece varias veces en la tabla.
Si queremos que no se repitan los salarios,
usamos la cláusula DISTINCT
EMPLEADO
DEPARTAMENTO
PROYECTO
UBICACIONES_DEPTO
CARGA
TRABAJA_EN
24SQL
- Consulta 9a
- En la consulta anterior obtenemos una tabla con
la lista de salarios de todos los empleados. Sin
embargo, si dos o más empleados ganan lo mismo,
el mismo valor aparece varias veces en la tabla.
Si queremos que no se repitan los salarios,
usamos la cláusula DISTINCT
- Q9AÂ Â Â Â SELECT DISTINCT SUELDO
- FROM EMPLEADO
25SQL
- Consulta 10
- Regresar una lista con todos los números de
proyecto que involucran un empleado de apellido
"Pérez", ya sea como trabajador o como gerente
del departamento que controla ese proyecto.
EMPLEADO
DEPARTAMENTO
PROYECTO
UBICACIONES_DEPTO
CARGA
TRABAJA_EN
26SQL
- Consulta 10
- Regresar una lista con todos los números de
proyecto que involucran un empleado de apellido
"Pérez", ya sea como trabajador o como gerente
del departamento que controla ese proyecto.
- Q10Â Â Â Â ( SELECT PNUMERO
- FROM PROYECTO, DEPARTAMENTO,
EMPLEADO - WHERE DNUM DNUMERO AND RUTGERENTE
RUT - AND APPAT "Pérez" )
- UNIONÂ Â Â
- Â ( SELECT PNO
- FROM TRABAJA_EN, EMPLEADO
- WHERE ERUT RUT AND APPAT
"Pérez" )