0% encontró este documento útil (0 votos)
784 vistas9 páginas

Ejercicios Resueltos

El documento contiene 40 consultas SQL sobre una base de datos de empleados. Las consultas realizan selecciones de datos de las tablas EMPLE y DEPART usando condiciones, ordenamientos, funciones y operadores. Se utilizan cláusulas como SELECT, FROM, WHERE, ORDER BY, BETWEEN, LIKE, IN, NOT IN y NULL para filtrar y organizar los resultados.

Cargado por

Raul Mayor
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
784 vistas9 páginas

Ejercicios Resueltos

El documento contiene 40 consultas SQL sobre una base de datos de empleados. Las consultas realizan selecciones de datos de las tablas EMPLE y DEPART usando condiciones, ordenamientos, funciones y operadores. Se utilizan cláusulas como SELECT, FROM, WHERE, ORDER BY, BETWEEN, LIKE, IN, NOT IN y NULL para filtrar y organizar los resultados.

Cargado por

Raul Mayor
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

1.

Mostrar el apellido, oficio y número de departamento


-- 1) 

de cada empleado.

SELECT apellido, oficio, dept_no


FROM emple;

2. Mostrar el número, nombre y localización de cada


-- 2) 

departamento.

SELECT dept_no, dnombre, loc


FROM depart;

3. Mostrar todos los datos de todos los empleados.


-- 3) 

SELECT *
FROM emple;

4. Datos de los empleados ordenados por apellidos.


-- 4) 

SELECT *
FROM emple
ORDER BY apellido;

5. Datos de los empleados ordenados por número de


-- 5) 

departamento descendentemente.

SELECT *
FROM emple
ORDER BY dept_no DESC;

6. Datos de los empleados ordenados por número de


-- 6) 

departamento descendentemente y dentro de cada


departamento ordenados por apellido
ascendentemente.

SELECT *
FROM emple
ORDER BY dept_no DESC, apellido;
7. Mostrar el departamento y el apellido de los empleados
-- 7) 

ordenados por departamento descendentemente y por


apellido ascendentemente

SELECT dept_no, apellido


FROM emple
ORDER BY dept_no DESC, apellido;

8. Mostrar los datos de los empleados cuyo salario sea


-- 8) 

mayor que 2000.

SELECT *
FROM emple
WHERE salario > 2000;

9. Mostrar los datos de los empleados cuyo oficio sea


-- 9) 

'ANALISTA'.

SELECT *
FROM emple
WHERE oficio = 'ANALISTA';

10. Seleccionar el apellido y oficio de los empleados del


-- 10) 

departamento número 20.

SELECT apellido, oficio


FROM emple
WHERE dept_no = 20;

11. Mostrar todos los datos de los empleados


-- 11) 

ordenados por apellido.

SELECT *
FROM emple
ORDER BY apellido;

12. Seleccionar los empleados cuyo oficio sea


-- 12) 

'VENDEDOR'. Mostrar los datos ordenados por apellido.


SELECT *
FROM emple
WHERE oficio = 'VENDEDOR'
ORDER BY apellido;

13. Mostrar los empleados cuyo departamento sea 20 y


-- 13) 

cuyo oficio sea 'EMPLEADO'. Ordenar el resultado por


apellido.

SELECT *
FROM emple
WHERE dept_no = 20 AND oficio = 'EMPLEADO'
ORDER BY apellido;

14. Mostrar los empleados que tengan un salario mayor


-- 14) 

que 2000 o que pertenezcan al departamento número


20.

SELECT *
FROM emple
WHERE salario > 2000 OR dept_no = 20;

15. Ordenar los empleados por oficio, y dentro de oficio


-- 15) 

por nombre.

SELECT *
FROM emple
ORDER BY oficio, apellido;

16. Seleccionar de la tabla EMPLE los empleados cuyo


-- 16) 

apellido empiece por 'A'.

SELECT *
FROM emple
WHERE apellido LIKE 'A%';

17. Seleccionar de la tabla EMPLE los empleados cuyo


-- 17) 

apellido termine por 'Z'.


SELECT *
FROM emple
WHERE apellido LIKE '%Z';

18. Seleccionar de la tabla EMPLE aquellas filas cuyo


-- 18) 

APELLIDO empiece por 'A' y el OFICIO tenga una 'E' en


cualquier posición.

SELECT *
FROM emple
WHERE apellido LIKE 'A%' AND oficio LIKE '%E%';

19. Seleccionar los empleados cuyo salario esté entre


-- 19) 

1000 y 2000. Utilizar el operador BETWEEN.

SELECT *
FROM emple
WHERE salario BETWEEN 1000 AND 2000;

20. Obtener los empleados cuyo oficio sea 'VENDEDOR'


-- 20) 

y tengan una comisión superior a 1000.

SELECT *
FROM emple
WHERE oficio = 'VENDEDOR' AND comision > 1000;

21. Seleccionar los datos de los empleados ordenados


-- 21) 

por número de departamento, y dentro de cada


departamento ordenados por apellido.

SELECT *
FROM emple
ORDER BY dept_no, apellido;

22. Número y apellidos de los empleados cuyo apellido


-- 22) 

termine por 'Z' y tengan un salario superior a 2000.


SELECT emp_no, apellido
FROM emple
WHERE apellido LIKE '%Z' AND salario > 2000;

23. Datos de los departamentos cuya localización


-- 23) 

empiece por 'B'.

SELECT *
FROM depart
WHERE loc LIKE 'B%';

24. Datos de los empleados cuyo oficio sea


-- 24) 

'EMPLEADO', tengan un salario superior a 1100 y


pertenezcan al departamento número 10.

SELECT *
FROM emple
WHERE oficio = 'EMPLEADO' AND salario > 1100 AND dept_no =
10;

25. Mostrar los apellidos de los empleados que no


-- 25) 

tengan comisión.

SELECT apellido
FROM emple
WHERE comision IS NULL;

SELECT apellido, comision


FROM emple
WHERE comision IS NULL OR comision = 0;

26. Mostrar los apellidos de los empleados que no


-- 26) 

tengan comisión y cuyo apellido empiece por 'J'.


SELECT apellido
FROM emple
WHERE comision IS NULL AND apellido LIKE 'J%';

27. Mostrar los apellidos de los empleados cuyo oficio


-- 27) 

sea 'VENDEDOR', 'ANALISTA' o 'EMPLEADO'.

SELECT apellido
FROM emple
WHERE oficio IN ('VENDEDOR', 'ANALISTA', 'EMPLEADO');

28. Mostrar los apellidos de los empleados cuyo oficio


-- 28) 

no sea ni 'ANALISTA' ni 'EMPLEADO', y además tengan


un salario mayor de 2000.

SELECT apellido, oficio, salario


FROM emple
WHERE oficio NOT IN ('ANALISTA', 'EMPLEADO') AND salario >
2000;

SELECT apellido, oficio, salario


FROM emple
WHERE oficio <> 'ANALISTA'
AND oficio <> 'EMPLEADO'
AND salario > 2000;

29. Seleccionar de la tabla EMPLE los empleados cuyo


-- 29) 

salario esté entre 2000 y 3000 (utilizar BETWEEN).

SELECT *
FROM emple
WHERE salario BETWEEN 2000 AND 3000;

30. Seleccionar el apellido, salario y número de


-- 30) 

departamento de los empleados cuyo salario sea mayor


que 2000 en los departamentos 10 ó 30.
SELECT apellido, salario, dept_no
FROM emple
WHERE salario > 2000 AND (dept_no = 10 OR dept_no = 30);

SELECT apellido, salario, dept_no


FROM emple
WHERE salario > 2000 AND dept_no IN (10, 30);

31. Mostrar el apellido y número de los empleados cuyo


-- 31) 

salario no esté entre 1000 y 2000 (utilizar BETWEEN).

SELECT apellido, emp_no


FROM emple
WHERE salario NOT BETWEEN 1000 AND 2000;

32. Obtener el apellidos de todos los empleados en


-- 32) 

minúscula

SELECT lower(apellido)
FROM emple;

33. En una consulta concatena el apellido de cada


-- 33) 

empleado con su oficio.

34. SELECT concat(apellido, ' ', oficio) empleado_oficio


FROM emple

ORDER BY 1;

35. Mostrar el apellido y la longitud del apellido


-- 34) 

(función LENGTH) de todos los empleados, ordenados


por la longitud de los apellidos de los empleados
descendentemente.

SELECT apellido, length(apellido)


FROM emple
ORDER BY length(apellido) DESC;
SELECT apellido, length(apellido) largo
FROM emple
ORDER BY 2 DESC;

36. Obtener el año de contratación de todos los


-- 35) 

empleados (función YEAR).

SELECT DISTINCT year(fecha_alt) año


FROM emple;

37. Mostrar los datos de los empleados que hayan sido


-- 36) 

contratados en el año 1992.

SELECT *
FROM emple
WHERE year(fecha_alt) = 1992;

38. Mostrar los datos de los empleados que hayan sido


-- 37) 

contratados en el mes de febrero de cualquier año


(función MONTHNAME).

SELECT *
FROM emple
WHERE monthname(fecha_alt) = 'February';

SELECT apellido, fecha_alt


FROM emple
WHERE month(fecha_alt) = 2;

39. Para cada empleado mostrar el apellido y el mayor


-- 38) 

valor del salario y la comisión que tienen (funciones


GREATEST y COALESCE)

SELECT apellido, greatest(salario, coalesce(comision, 0))


FROM emple;
40. Mostrar los datos de los empleados cuyo apellido
-- 39) 

empiece por 'A' y hayan sido contratados en el año


1990.

SELECT apellido
FROM emple
WHERE apellido LIKE 'A%' AND year(fecha_alt) = 1990;

41. Mostrar los datos de los empleados del


-- 40) 

departamento 10 que no tengan comisión.

SELECT *
FROM emple
WHERE dept_no = 10 AND comision IS NULL;

1.
-- 1) Mostrar el apellido, oficio y número de departamento 
de cada empleado.
SELECT apellido, oficio, dept_no 
FROM emple
7.
-- 7) Mostrar el departamento y el apellido de los empleados
ordenados por departamento descendentemente y por 
apellido a
SELECT * 
FROM emple 
WHERE oficio = 'VENDEDOR' 
ORDER BY apellido;
13.
-- 13) Mostrar los empleados cuyo departamento sea 20
SELECT * 
FROM emple 
WHERE apellido LIKE '%Z';
18.
-- 18) Seleccionar de la tabla EMPLE aquellas filas cuyo 
APELLIDO empiec
SELECT emp_no, apellido 
FROM emple 
WHERE apellido LIKE '%Z' AND salario > 2000;
23.
-- 23) Datos de los departamentos cuya
SELECT apellido 
FROM emple 
WHERE comision IS NULL AND apellido LIKE 'J%';
27.
-- 27) Mostrar los apellidos de los empleados
SELECT apellido, salario, dept_no 
FROM emple 
WHERE salario > 2000 AND (dept_no = 10 OR dept_no = 30);
SELECT apellido, sala
SELECT apellido, length(apellido) largo
FROM emple
ORDER BY 2 DESC;
36.
-- 35) Obtener el año de contratación de todos los 
e
40.
-- 39) Mostrar los datos de los empleados cuyo apellido 
empiece por 'A' y hayan sido contratados en el año 
1990.
SELECT

También podría gustarte