SQL-DML
Curso: Base de Datos PRACTICA DIRIGIDA NRO 10
Mg. Bertila García Díaz
prU10_DMLselect
CONSULTAS BÁSICAS
1.- /* C1 Obtener la fecha de nacimiento y la dirección del empleado cuyo nombre es
José B. Silva */
select fechan,direccion
from empleado
where nombrep='José' and inic='B' and apellido='Silva'
Fechan Direccion
1955-01-09 [Link].000 Fresnos 731,Higueras,MX
2.- /* C9 obtener el nombre y la dirección de todos los empleados que trabajan para el
departamento de 'investigación' */
select nombrep,apellido,direccion
from empleado,departamento
where nombred='Investigación' and nd=numerod
nombrep apellido direccion
José Silva Fresnos 731,Higueras,MX
Federico Vizcarra Valle 638, Higueras,MX
Josefa Esparza Rosas 5631, Higueras,MX
Ramón Nieto Espiga 875, Heras,MX
3.- /*C7 obtener el nombre y la dirección de todos los empleados que trabajan para el
departamento de 'investigación'*/
select nombrep,apellido,direccion
from(empleado join departamento on nd=numerod)
where nombred='Investigación'
nombrep apellido direccion
José Silva Fresnos 731,Higueras,MX
Federico Vizcarra Valle 638, Higueras,MX
Josefa Esparza Rosas 5631, Higueras,MX
Ramón Nieto Espiga 875, Heras,MX
4.- /* C8 para cada proyecto ubicado en 'Santiago', listar el número del proyecto, el
número del departamento controlador y el apellido, la dirección y la fecha de
nacimiento del gerente de ese departamento*/
select numerop, numd, apellido, direccion, fechan
from ((proyecto join departamento on numd=numerod) join
empleado on nssgte=nss)
where lugarp='Santiago'
1
numerop numd apellido direccion fechan
10 4 Valdes Bravo 291, Belén,MX 1931-06-20 [Link].000
30 4 Valdes Bravo 291, Belén,MX 1931-06-20 [Link].000
MANEJO DE NOMBRES DE ATRIBUTOS AMBIGUOS Y SEUDÓNIMOS
5.- /*C3 Para cada empleado, obtener su nombre de pila y apellido y el nombre de pila y
apellido de su supervisor inmediato*/
select [Link] as nombre_empleado,[Link] as nombre_supervisor
from empleado as e, empleado as s
where [Link]=[Link]
order by [Link]
nombre_empleado nombre_supervisor
Botello Silva
Esparza Vizcarra
Jabbar Valdes
Nieto Vizcarra
Silva Vizcarra
Valdes Botello
Vizcarra Botello
Zapata Valdes
CLAUSULAS WHERE NO ESPECIFICADAS Y EMPLEO DE *
6.- /*cc1 Obtener los valores de todos los atributos de las tuplas de empleados que
pertenecen al departamento 5 */
select *
from empleado
where nd=5
nombrep Inc. Apellido nss fechan ………
José B Silva 123456789 1955-01-09 [Link].000…
Federico T Vizcarra 333445555 1945-12-08 [Link].000
Josefa A Esparza 453453453 1962-07-31 [Link].000
Ramón K Nieto 666884444 1952-09-15 [Link].000
7.- /*cc2 Obtener todos los atributos de las tuplas de empleados que pertenecen al
departamento 'Investigación'*/
select *
from empleado, departamento
where nombred='Investigación' and nd=numerod
nombrep Inc. Apellido nss fechan ………
José B Silva 123456789 1955-01-09 [Link].000…
Federico T Vizcarra 333445555 1945-12-08 [Link].000
Josefa A Esparza 453453453 1962-07-31 [Link].000
Ramón K Nieto 666884444 1952-09-15 [Link].000
TABLAS COMO CONJUNTOS EN SQL
2
8.- /*C10 Obtener el salario de todos los empleados*/
select salario
from empleado
salario
30000.00
40000.00
25000.00
38000.00
55000.00
43000.00
25000.00
25000.00
9.- /*C2 obtener salarios distintos de empleados*/
select distinct salario
from empleado
Salario
25000.00
30000.00
38000.00
40000.00
43000.00
55000.00
CONSULTAS ANIDADAS Y COMPARACIONES DE CONJUNTOS
10.- /* C4 Preparar una lista con todos los números de los proyectos en los que participa
un empleado de apellido 'Vizcarra', sea como trabajador o como Gerente del
departamento que controla el proyecto*/
select distinct numerop
from proyecto
where numerop in(select numerop
from proyecto, departamento, empleado
where numd=numerod and nssgte=nss and apellido='Vizcarra')
or
numerop in (select nump
from empleado_proyecto, empleado
where nsse=nss and apellido='Vizcarra')
Numerop
1
2
3
10
20
3
11.- /*C5 Obtener los nombres de los empleados cuyo salario es mayor que el de todos
los empleados del departamento 5*/
select apellido,nombrep
from empleado
where salario > all(select salario from empleado where nd=5)
apellido nombrep
Botello Jaime
Valdes Jazmin
12.- /* cc3 obtener el nombre de todos los empleados que tienen un dependiente con el
mismo sexo que el empleado*/
select [Link], [Link]
from empleado e
where [Link] in (select nsse
from dependiente
where nsse=[Link] and sexo=[Link])
nombrep apellido
José Silva
Federico Vizcarra
13.- /* cc4 obtener el nombre de todos los empleados que tienen un dependiente con el
mismo sexo que el empleado*/
select [Link], [Link]
from empleado e, dependiente d
where [Link] = [Link] and [Link]=[Link] and [Link]=d.nombre_dependiente
nombrep apellido
José Silva
Federico Vizcarra
La funcion EXITS
14.- /* cc5 obtener el nombre de todos los empleados que tienen un dependiente con el
mismo sexo que el empleado*/
select [Link], [Link]
from empleado e
where exists (select *
from dependiente
where nsse=[Link] and sexo=[Link])
nombrep apellido
José Silva
Federico Vizcarra
4
15.- /*cc6 Obtener los nombres de los empleados que no tienen dependientes*/
select nombrep, apellido
from empleado
where not exists (select *
from dependiente
where nss=nsse)
nombrep apellido
Josefa Esparza
Ramón Nieto
Jaime Botello
Ahmed Jabbar
Alicia Zapata
16.- /*cc7 listar los nombres de los gerentes que tienen por lo menos un dependiente*/
select nombrep, apellido
from empleado
where exists (select *
from dependiente
where nss=nsse)
and
exists (select *
from departamento
where nss=nssgte)
nombrep apellido
Federico Vizcarra
Jazmin Valdes
CONJUNTOS EXPLICITOS Y VALORES NULOS
17.- /*C12 Obtener el numero de seguro social de todos los empleados
que trabajan en los proyectos 1,2 o 3*/
select distinct nsse
from empleado_proyecto
where nump in(1,2,3)
123456789
333445555
453453453
666884444
5
CAMBIO DE NOMBRE DE LOS ATRIBUTOS
18.- /*cc8 Obtener el apellido de cada empleado y de su supervisor*/
select [Link] as NOMBRE_EMPLEADO, [Link] as NOMBRE_SUPERVISOR
from empleado as e, empleado as s
where [Link]=[Link]
NOMBRE_EMPLEADO NOMBRE_SUPERVISOR
Silva Vizcarra
Vizcarra Botello
Esparza Vizcarra
Nieto Vizcarra
Botello Silva
Valdes Botello
Jabbar Valdes
Zapata Valdes
FUNCIONES AGREGADAS Y AGRUPACIÓN
19.- /*C14 Obtener la suma de los salarios de todos los empleados, el salario máximo,
el salario mínimo y el salario medio*/
select sum(salario) as SUMA, max(salario)as MAXIMO, min(salario)AS MINIMO,
avg(salario) AS PROMEDIO
from empleado
SUMA MAXIMO MINIMO PROMEDIO
281000.00 55000.00 25000.00 35125.000000
20.- /*cc9 Obtener la suma de los salarios de todos los empleados del departamento
'Investigación' , el salario máximo, el salario mínimo y el salario medio*/
select sum(salario) as SUMA, max(salario)as MAXIMO, min(salario)AS MINIMO,
avg(salario) AS PROMEDIO
from empleado, departamento
where nd=numerod and nombred='Investigación'
SUMA MAXIMO MINIMO PROMEDIO
133000.00 40000.00 25000.00 33250.000000
21.- /*c15 Obtener el total de empleados de la CIA*/
select count(*) as TOTAL
from empleado
TOTAL
8
22.- /*C16 Obtener el número de empleados del dpto de 'Investigación'*/
6
select count(*) as TotInvest
from empleado,departamento
where nd=numerod and nombred='Investigación'
TotInvest
4
23.- /* cc10 contar el número de valores de salario distintos de la base de datos*/
select count (distinct salario) as Salarios_distintos
from empleado
Salarios_distintos
6
24.- /*cc11 obtener los nombres de todos los empleados que tienen 2 o más
dependientes*/
select apellido, nombrep
from empleado
where (select count(*)
from dependiente
where nss=nsse) >= 2
apellido nombrep
Silva José
Vizcarra Federico
25.- /*C19 para cada dpto, obtener el nro de dpto, nro de empleados deldpto
y su salario medio*/
select nd,count(*) as numero,avg(salario) as promedio
from empleado
group by nd;
nd numero promedio
1 1 55000.000000
4 3 31000.000000
5 4 33250.000000
26.- /*C20 para c/proyecto, obtener el numero y el nombre del proyecto; así como
7
el numero de empleados que trabajan en él*/
select numerop, nombrepr, count(*)as numero_empleados
from proyecto, empleado_proyecto
where numerop=nump
group by numerop,nombrepr
numerop nombrepr numero_empleados
1 ProductoX 2
2 ProductoY 3
3 ProductoZ 2
10 Automatización 3
20 Reorganización 3
30 Nuevasprestaciones 3
27.- /*C21 para cada proyecto en el que trabajan más de 2 empleados, obtener el
numero y el nombre del proyecto, así como el numero de empleados que trabajan en
el*/
select numerop, nombrepr, count(*)as numero_empleados
from proyecto, empleado_proyecto
where numerop=nump
group by numerop,nombrepr
having count(*) > 2
numerop nombrepr numero_empleados
2 ProductoY 3
10 Automatización 3
20 Reorganización 3
30 Nuevasprestaciones 3
COMPARACIONES DE SUBCADENAS, OPERADORES ARITMÉTICOS Y
ORDENACIÓN
28.- /*cc12 Obtener todos los empleados cuya dirección esté en Higueras, estado de
México*/
select nombrep, apellido
from empleado
where direccion like '%Higueras,MX%'
nombrep apellido
José Silva
Federico Vizcarra
Josefa Esparza
Jaime Botello
Ahmed Jabbar
29.- /* cc13 Encontrar todos los empleados con apellido que empiece con E */
8
select nombrep, apellido
from empleado
where apellido like 'E%'
nombrep apellido
Josefa Esparza
30.- /* cc14 Mostrar los salarios resultantes si cada empleado que trabaja en el proyecto
'Producto X' recibe un aumento del 10% */
select nombrep, apellido, 1.1*salario as '1.1*salario'
from empleado, empleado_proyecto, proyecto
where nss=nsse and nump=numerop and nombrepr='ProductoX'
nombrep apellido 1.1*salario
José Silva 33000.000
Josefa Esparza 27500.000
31.- /*cc15 obtener una lista de empleados y de los proyectos en los que trabajan,
ordenados por dpto y, dentro de cada dpto, alfabeticamente por apellido y nombre*/
select nombred, apellido, nombrep, nombrepr
from departamento, empleado, empleado_proyecto, proyecto
where numerod=nd and nss=nsse and nump=numerop
order by nombred, apellido, nombrep
nombred apellido nombrep nombrepr
Administración Jabbar Ahmed Automatización
Administración Jabbar Ahmed Nuevasprestaciones
Administración Valdes Jazmin Reorganización
Administración Valdes Jazmin Nuevasprestaciones
Administración Zapata Alicia Automatización
Administración Zapata Alicia Nuevasprestaciones
Dirección Botello Jaime Reorganización
Investigación Esparza Josefa ProductoX
Investigación Esparza Josefa ProductoY
Investigación Nieto Ramón ProductoZ
Investigación Silva José ProductoX
Investigación Silva José ProductoY
Investigación Vizcarra Federico ProductoY
Investigación Vizcarra Federico ProductoZ
Investigación Vizcarra Federico Automatización
Investigación Vizcarra Federico Reorganización
Curso: Base de Datos
Docente: Mg. Bertila García Díaz
9
PRACTICA CALIFICADA Nro 10
SQL
Resolver:
1.- Para cada proyecto obtener el número y el nombre del proyecto, así como el
promedio de sueldos de los empleados que trabajan en él.
2.-Mostrar los salarios resultantes si cada empleado que trabaja en el proyecto
“Reorganización” recibe un descuento del 10%.
3.- Obtenga los nombres de todos los empleados del departamento 4 que trabajan más
de 20 horas por semana en el proyecto ‘Automatización’
4.- Obtener el nombre de todos los empleados que tienen cónyuge.
5.- Seleccionar nombre y apellido de los Empleados que nacieron entre el 58 y 60.
6.- Obtenga los nombres de todos los empleados del departamento 5 que trabajan más
de 10 horas por semana en el proyecto 'Producto X'.
7.- Cite los nombres de todos los empleados que tienen un dependiente con el mismo
nombre de pila que ellos.
8.- Encuentre los nombres de todos los empleados supervisados directamente por
'Federico Vizcarra'.
9.- Para cada proyecto, cite el nombre del proyecto y el total de horas que trabajan todos
los empleados en ese proyecto.
10.- Obtenga los nombres de todos los empleados que trabajan en cada uno de los
proyectos.
11.- Obtenga los nombres de los empleados que no trabajan en ningún proyecto.
12.- Para cada departamento, obtenga el nombre del departamento y el salario medio de
todos los empleados que trabajan en él.
13.- Obtenga el salario medio de todos los empleados de sexo femenino.
14.- Encuentre los nombres y direcciones de todos los empleados que trabajan en, por
los menos, un proyecto situado en Higueras pero cuyo departamento no está ubicado
ahí.
15.- Prepare una lista con los apellidos de todos los gerentes de departamento que no
tienen dependientes.
16.- Seleccionar las personas cuyo apellido empiece con la letra ‘V’.
17.- Seleccionar las personas cuyo apellido tiene la 2da letra ‘a’.
10
BD MATRICULA
1. Obtener una lista de los alumnos hombres
2. Obtener el número de hombres y mujeres
3. Listar los nombre de los alumnos que nacieron entre 1970 y 1972
4. Listar los nombres de los alumnos cuyos apellidos comienzan con ‘M’
5. Muestre el nombre del Profesor que tiene el mayor sueldo.
6. Listar los nombres de los Profesores “Economistas”
7. Relación de alumnos matriculados en el curso de “Constitución”
8. El nombre del alumno más joven.
9. Obtener los nombres de los Profesores, cuyo sueldo es mayor que el de todos los
profesores Economistas.
10. Mostrar el nombre del curso y el número máximo de alumnos si admitieramos
11. un 25% más de los permitidos
12. Relación de los cursos con horas mayores a 500, junto con el nombre y apellidos
del profesor que lo imparte y las horas
13. nombre de los alumnos y puntuacion media (entre las 2 pruebas) de aquellos que
hayan sacado más de 20 puntos de media en el curso de Constitución
14. obtener el nombre de los cursos impartidos por el profesor Rafael Rengel
Quintero
15. para cada alumno matriculado, obtener su dni,nombre, apellido1 y promedio de
la prueba1, ordenados por apellido1
16. para cada alumno matriculado con promedio de prueba1 > 28, obtener su
nombre y promedio de la prueba1
17. Obtener la nota mínima, máxima, y media en las pruebas 1 y 2 obtenidas en
todos los cursos por los alumnos hombres y mujeres
11