Você está na página 1de 8

SQL: Lenguaje de Consultas Estructurado

EJERCICIO-2
de

SQ L

STRUCTURE QUERY
LANGUAJE
Lenguaje de Consultas
Estructurado

SQL: Lenguaje de Consultas Estructurado

EJERCICIOS SEGUNDA PARTE:


Consultas AVANZADAS

Los ejercicios a realizar van a recuperar datos de dos tablas: la tabla de empleados
(TEMPLE1) y la de departamentos (TDEPAR2).

Los nombres reales y caractersticas de las columnas se muestran en la siguiente tabla:

TABLA

(Tabla de Empleados)

TEMPLE1

(Tabla de Departamentos)
TDEPAR2

NOMBRE

TIPO

LONGITUD

NUEMPL
NOMBRE
INICIAL
APELLIDO
DEPT
TLFN
FECHING
CODTRA
NIVEDUC
SEXO
FECHNAC
SALARIO

CHAR
CHAR
DATE
DECIMAL
DECIMAL
CHAR
DATE
DECIMAL

(9,2)

SI
NO
NO
NO
NO
NO
NO

NUMDEP
NOMDEP
NUMDIREC

CHAR
CHAR
CHAR

3
36
6

NO
NO
NO

CHAR
CHAR
CHAR
CHAR

6
12
1
15
3
4

NULOS

2
2
1

NO
NO
NO
NO
NO

SQL: Lenguaje de Consultas Estructurado

Contenido de las tablas:


tabla de empleados....... TEMPLE1

nuempl

nombre

apellido

dept

tlfn

feching

ctr

nv

fechnac

salario

000010
000020
000030
000050
000060
000070
000090
000100
000110
000120
000130
000140
000150
000160
000170
000180
000190
000200
000210
000220
000230
000240
000250
000260
000270
000280
000290
000300
000310
000320
000330
000340
000999

CRISTINA
MIGUEL
SALOME
JUAN
ISIDRO
EVA
ELENA
TOMAS
VICENTE
SIMON
DOLORES
HELIODORA
BRUNO
ELISA
MATEO
MARINA
JAIME
DAVID
WENCESLAO
JIMENA
JAIME
SALVADOR
DANIEL
SUSANA
MARIA
ENGRACIA
JUAN
PEDRO
MATILDE
RAMON
WILLY
JAVIER
ANGEL

I
L
A
B
F
D
W
Q
G

HERNANDEZ
TAPIA
KEMPES
GARRIDO
SUAREZ
PUENTE
HERRANZ
SOLER
LUENGO
OTERO
QUINTANA
NIETO
ALVAREZ
PINTO
YARZA
SANDOVAL
WALKER
BONDIA
JURADO
LUQUE
JIMENEZ
MARTINEZ
SIERRA
JUNQUERA
PEREZ
SANCHEZ
PALACIOS
SIERRA
SERNA
MORAN
LERMA
GIL
MALDONADO

A00
B01
C01
E01
D11
D21
E11
E21
A00
A00
C01
C01
D11
D11
D11
D11
D11
D11
D11
D11
D21
D21
D21
D21
D21
E11
E11
E11
E11
E21
E21
E21
E11

2070
2140
2080
1507
2290
2400
2230
2170
1140
2022
2140
2210
2250
1307
2050
1050
2100
2340
2310
2300
1080
2260
2357
2302
2217
2007
2192
3522
2130
7112
1132
1162
----

01.01.1965
10.10.1973
05.04.1975
17.08.1949
14.09.1973
30.09.1980
15.08.1970
19.06.1980
16.05.1958
05.12.1963
28.07.1971
15.12.1976
12.02.1971
11.10.1977
15.09.1978
07.07.1973
27.07.1974
03.03.1966
11.04.1979
29.08.1968
21.11.1966
05.12.1979
30.10.1969
11.09.1975
30.09.1980
24.03.1967
30.05.1980
19.06.1972
12.09.1964
07.07.1965
23.02.1976
05.05.1947
22.03.1988

66
61
60
58
55
56
55
54
58
58
55
56
55
54
54
53
53
55
52
55
53
55
52
52
55
54
42
48
43
52
55
54
69

18
18
20
16
16
16
16
14
19
14
16
18
16
17
16
17
16
16
17
18
14
17
15
16
15
17
12
14
12
16
14
16
20

M
H
M
H
H
M
M
H
H
H
M
M
H
M
H
M
H
H
H
M
H
H
H
M
M
M
H
H
M
H
H
H
H

14.08.1933
02.02.1948
11.05.1941
15.09.1925
07.07.1945
26.05.1953
15.05.1941
18.12.1956
05.11.1929
18.10.1942
15.09.1925
19.01.1946
17.05.1947
12.04.1955
05.01.1951
21.02.1949
25.06.1952
29.05.1941
23.02.1953
19.03.1948
30.05.1935
31.03.1954
12.11.1939
05.10.1936
23.05.1953
15.05.1941
09.07.1946
27.10.1936
21.04.1931
11.08.1932
18.07.1941
17.05.1926
12.11.1965

5275000
4125000
3825000
4017500
3225000
3617000
2945200
2615000
4650000
2925000
2380000
2842000
2528000
2225000
2468000
2134000
2045000
2774000
1827000
2984000
2218000
2876000
1918000
1725000
2738000
2598700
1380600
1775000
1574100
1995000
2537000
2384000
7500000

M
A
R
J
S
H
T
K
J
M
S
P
L
R
R
I
F
V
R
E

Tabla de departamentos....TDEPAR2

numdep

nomdep

numdirec

A00

CENTRO PROCESOS

000010

B01

PLANIFICACION

000020

C01

INFORMACION

000030

D01

DESARROLLO

D11

FABRICACION

000060

D21

ADMINISTRACION

000070

E01

SERVICIOS

000050

E11

OPERACIONES

000090

E21

SOFTWARE

000100

SQL: Lenguaje de Consultas Estructurado

SEGUNDA PARTE
1.-

Obtener una lista de todas las empleadas de los departamentos que empiecen
por D y por E. La lista anterior debe contener informacin sobre el nmero de
personal, nombre, apellido y nmero de telfono.

2.-

Obtener un listado de todos los empleados (nombre y apellido) que ganan ms


de 200000 pts. al mes y que entraron en la compaa despus del 1 de Enero de
1975. Tambin se quiere la informacin correspondiente a su cdigo de trabajo y
al nmero de personal de sus directores.

3.-

Obtener una lista con el apellido, nmero de departamento y salario mensual de


los empleados de los departamentos A00, B01, C01 y D01. La salida se
quiere en orden descendente de salario dentro de cada departamento.

4.-

Se pide una lista que recupere el salario medio de cada departamento junto con
el nmero de empleados que tiene. El resultado no debe incluir empleados que
tengan un cdigo de trabajo mayor que 54, ni departamentos con menos de tres
empleados. Se quiere ordenada por nmero de departamento.

5.-

Seleccionar todos los empleados de los departamentos D11 y E11 cuyo primer
apellido empiece por S.

SQL: Lenguaje de Consultas Estructurado

SEGUNDA PARTE
6.-

Obtener el nombre, apellido y fecha de ingreso de los directores de departamento


ordenados por nmero de personal.

7.-

Obtener un listado de las mujeres de los departamentos que empiecen por D y


por E cuyo nivel de educacin sea superior a la media; en este caso tambin
ordenados por nmero de personal.

8.-

Seleccionar todos los empleados cuyo nombre sea igual al de algunas personas
del departamento D21 y cuyo cdigo de trabajo sea diferente de todos los del
E21 (la lista debe contener el nmero de personal, nombre, apellido, departamento y cdigo de trabajo).

9.-

Listar los empleados que no sean directores (la informacin que debe aparecer
es el nmero de personal, apellido y departamento).

10.-

Seleccionar parejas de empleados (de sexo opuesto) que hayan nacido el mismo
da (con informacin acerca de apellido y fecha de nacimiento).

11.-

Obtener un listado de todo los empleados que pertenecen al mismo


departamento que Toms Soler.

SQL: Lenguaje de Consultas Estructurado

Soluciones
SEGUNDA PARTE
1.-

Obtener una lista de todas las empleadas de los departamentos cuyo cdigo
comience por 'D' y 'E'. La lista anterior debe contener informacin sobre el
nmero de personal, nombre, apellido y nmero de telfono.
SELECT NUEMPL,NOMBRE,APELLIDO,TLFN
FROM TEMPLE1
WHERE SEXO = 'M' AND (DEPT LIKE 'D%' OR DEPT LIKE 'E%')

;
2.-

Obtener un listado de todos los empleados (nombre y apellido) que ganan


ms de 200000 pts. al mes y que entraron en la compaa despus del 1 de
Enero de 1975. Tambin se quiere la informacin correspondiente a su
cdigo de trabajo y al nmero de personal de sus directores.
SELECT NOMBRE,APELLIDO,CODTRA,NIVEDUC
FROM TEMPLE1 , TDEPAR2
WHERE DEPT=NUMDEP AND SALAR / 14 > 200000 AND FECHING > '01-01-1975'

;
3.-

Obtener una lista con el apellido, nmero de departamento y salario mensual


de los empleados de los departamentos A00, B01, C01 y D01. La salida se
quiere en orden descendente de salario dentro de cada departamento.
SELECT APELLIDO, DEPT, SALAR/14
FROM TEMPLE1
WHERE DEPT IN ('A00', 'B01', 'C01', 'D01')
ORDER BY DEPT, SALAR DESC
;

SELECT APELLIDO, DEPT, SALAR/14


FROM TEMPLE1
WHERE DEPT = 'A00' OR DEPT = 'B01' OR DEPT = 'C01' OR DEPT= 'D01'
ORDER BY DEPT, SALAR DESC

SQL: Lenguaje de Consultas Estructurado


4.-

Se pide una lista que recupere el salario medio de cada departamento junto
con el nmero de empleados que tiene. El resultado no debe incluir
empleados que tengan un cdigo de trabajo mayor que 54, ni departamentos
con menos de tres empleados. Se quiere ordenada por nmero de departamento.
SELECT DEPT, AVG(SALAR) , COUNT(*)
FROM TEMPLE1
WHERE CODTRA <= 54
GROUP BY DEPT
HAVING COUNT(*) > 2
ORDER BY DEPT

;
5.-

Seleccionar todos los empleados de los departamentos D11 y E11 cuyo


primer apellido empiece por S.
SELECT NUEMPL,NOMBRE,APELLIDO
FROM TEMPLE1
WHERE (DEPT = 'D11' OR DEPT = 'E11') AND APELLIDO LIKE 'S%'

;
6.-

Obtener el nombre, apellido y fecha de ingreso de los directores de


departamento ordenados por nmero de personal.
SELECT NOMBRE,APELLIDO,FECHING
FROM TEMPLE1 , TDEPAR2
WHERE NUEMPL = NUMDIREC
ORDER BY NUEMPL
SELECT NOMBRE,APELLIDO,FECHING
FROM TEMPLE1
WHERE NUEMPL IN (SELECT NUMDIREC FROM TDEPAR2)
ORDER BY NUEMPL

7.-

Obtener un listado de las mujeres de los departamentos que comiencen por


D y E cuyo nivel de educacin sea superior a la media; en este caso tambin
ordenados por nmero de personal.
SELECT NUEMPL,NOMBRE,APELLIDO
FROM TEMPLE1
WHERE SEXO = 'M' AND (DEPT LIKE 'D%' OR DEPT LIKE 'E%')
AND NIVEDUC > (SELECT AVG(NIVEDUC) FROM TEMPLE1)
ORDER BY NUEMPL

SQL: Lenguaje de Consultas Estructurado


8.-

Seleccionar todos los empleados cuyo nombre sea igual al de algunas


personas del departamento D21 y cuyo cdigo de trabajo sea diferente de
todos los del E21 (la lista debe contener el nmero de personal, nombre,
apellido, departamento y cdigo de trabajo).
SELECT NUEMPL,NOMBRE,APELLIDO,DEPT,CODTRA
FROM TEMPLE1
WHERE NOMBRE = ANY ( SELECT NOMBRE FROM TEMPLE1
WHERE DEPT = 'D21' )
AND CODTRA <> ALL ( SELECT CODTRA FROM TEMPLE1
WHERE DEPT = 'E21' )
AND DEPT <> 'D21'

;
9.-

Listar los empleados que no sean directores (la informacin que debe
aparecer es el nmero de personal, apellido y departamento).
SELECT DEPT, NUEMPL, APELLIDO,DEPT
FROM TEMPLE1
WHERE NUEMPL <> ALL (SELECT NUMDIREC FROM TDEPAR2)
ORDER BY DEPT
SELECT DEPT, NUEMPL, APELLIDO,DEPT FROM TEMPLE1
WHERE NOT EXISTS (SELECT NUMDIREC FROM TDEPAR2
WHERE NUMDIREC = TEMPLA.NUEMPL)
ORDER BY DEPT
SELECT DEPT, NUEMPL, APELLIDO,DEPT
FROM TEMPLE1, TDEPAR2
WHERE DEPT = NUMDEP AND NUEMPL <> NUMDIREC
ORDER BY DEPT

10.-

Seleccionar parejas de empleados (de sexo opuesto) que hayan nacido el


mismo da (con informacin acerca de apellido y fecha de nacimiento).
SELECT M.NOMBRE, M.APELLIDO, M.FECHNAC, '<===>',
H.NOMBRE, H.APELLIDO, H.FECHNAC
FROM TEMPLE1 M, TEMPLE1 H
WHERE H.FECHNAC = M.FECHNAC
AND H.SEXO = 'H' AND M.SEXO = 'M'

11.-

Obtener un listado de todo los empleados que pertenecen al mismo


departamento que Toms Soler.
SELECT NUEMPL, NOMBRE, APELLIDO
FROM TEMPLE1
WHERE DEPT = ( SELECT DEPT FROM TEMPLE1
WHERE NOMBRE = 'TOMAS' AND APELLIDO = 'SOLER' )
AND ( NOMBRE <> 'TOMAS' AND APELLIDO <> 'SOLER' )

Você também pode gostar