SQL - Ejercicio de SQL I Empleados C_SOLUC
SQL - Ejercicio de SQL I Empleados C_SOLUC
SQL - Ejercicio de SQL I Empleados C_SOLUC
Tablas
Se disponen de la siguientes tablas con los siguientes datos.
Tabla emple
emp_no apellido oficio dir fecha_alt salario comision
1990-
7369 SÁNCHEZ EMPLEADO 7902 1040
12-17
1990-
7499 ARROYO VENDEDOR 7698 1500 390
02-20
1991-
7521 SALA VENDEDOR 7698 1625 650
02-22
1991-
7566 JIMÉNEZ DIRECTOR 7839 2900
04-02
1991-
7654 MARTÍN VENDEDOR 7698 1600 1020
09-29
1991-
7698 NEGRO DIRECTOR 7839 3005
05-01
1991-
7782 CEREZO DIRECTOR 7839 2885
06-09
1991-
7788 GIL ANALISTA 7566 3000
11-09
1991-
7839 REY PRESIDENTE 4100
11-17
1991-
7844 TOVAR VENDEDOR 7698 1350 0
09-08
1991-
7876 ALONSO EMPLEADO 7788 1430
09-23
1991-
7900 JIMENO EMPLEADO 7698 1335
12-03
1991-
7902 FERNÁNDEZ ANALISTA 7566 3000
12-03
1992-
7934 MUÑOZ EMPLEADO 7782 1690
01-23
https://www.proinf.net/clases/SQL/sql2011/ejercs/ejercs_sql01.html 1/9
21/5/2018 Ejercicio de SQL I
Tabla depart
dept_no dnombre loc
10 CONTABILIDAD SEVILLA
20 INVESTIGACIÓN MADRID
30 VENTAS BARCELONA
40 PRODUCCIÓN BILBAO
SELECT *
FROM emple;
SELECT *
FROM emple
ORDER BY apellido;
https://www.proinf.net/clases/SQL/sql2011/ejercs/ejercs_sql01.html 2/9
21/5/2018 Ejercicio de SQL I
SELECT *
FROM emple
ORDER BY dept_no DESC;
SELECT *
FROM emple
ORDER BY dept_no DESC, apellido;
8. Mostrar los datos de los empleados cuyo salario sea mayor que 2000.
SELECT *
FROM emple
WHERE salario > 2000;
SELECT *
FROM emple
WHERE oficio = 'ANALISTA';
11. Mostrar todos los datos de los empleados ordenados por apellido.
https://www.proinf.net/clases/SQL/sql2011/ejercs/ejercs_sql01.html 3/9
21/5/2018 Ejercicio de SQL I
SELECT *
FROM emple
ORDER BY apellido;
12. Seleccionar los empleados cuyo oficio sea '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 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 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 por nombre.
SELECT *
FROM emple
ORDER BY oficio, apellido;
SELECT *
FROM emple
WHERE apellido LIKE 'A%';
SELECT *
FROM emple
WHERE apellido LIKE '%Z';
SELECT *
FROM emple
WHERE apellido LIKE 'A%' AND oficio LIKE '%E%';
19. Seleccionar los empleados cuyo salario esté entre 1000 y 2000.
Utilizar el operador BETWEEN.
SELECT *
FROM emple
WHERE salario BETWEEN 1000 AND 2000;
20. Obtener los empleados cuyo oficio sea 'VENDEDOR' y tengan una
comisión superior a 1000.
SELECT *
FROM emple
WHERE oficio = 'VENDEDOR' AND comision > 1000;
SELECT *
FROM emple
ORDER BY dept_no, apellido;
22. Número y apellidos de los empleados cuyo apellido termine por 'Z' y
tengan un salario superior a 2000.
https://www.proinf.net/clases/SQL/sql2011/ejercs/ejercs_sql01.html 5/9
21/5/2018 Ejercicio de SQL I
SELECT *
FROM depart
WHERE loc LIKE 'B%';
SELECT *
FROM emple
WHERE oficio = 'EMPLEADO' AND salario > 1100 AND dept_no = 10;
SELECT apellido
FROM emple
WHERE comision IS NULL;
SELECT apellido
FROM emple
WHERE comision IS NULL AND apellido LIKE 'J%';
27. Mostrar los apellidos de los empleados cuyo oficio sea 'VENDEDOR',
'ANALISTA' o 'EMPLEADO'.
SELECT apellido
FROM emple
WHERE oficio IN ('VENDEDOR', 'ANALISTA', 'EMPLEADO');
https://www.proinf.net/clases/SQL/sql2011/ejercs/ejercs_sql01.html 6/9
21/5/2018 Ejercicio de SQL I
29. Seleccionar de la tabla EMPLE los empleados cuyo salario esté entre
2000 y 3000 (utilizar BETWEEN).
SELECT *
FROM emple
WHERE salario BETWEEN 2000 AND 3000;
SELECT lower(apellido)
FROM emple;
https://www.proinf.net/clases/SQL/sql2011/ejercs/ejercs_sql01.html 7/9
21/5/2018 Ejercicio de SQL I
36. Mostrar los datos de los empleados que hayan sido contratados en el
año 1992.
SELECT *
FROM emple
WHERE year(fecha_alt) = 1992;
37. Mostrar los datos de los empleados que hayan sido contratados en el
mes de febrero de cualquier año (función MONTHNAME).
SELECT *
FROM emple
WHERE monthname(fecha_alt) = 'February';
https://www.proinf.net/clases/SQL/sql2011/ejercs/ejercs_sql01.html 8/9
21/5/2018 Ejercicio de SQL I
38. Para cada empleado mostrar el apellido y el mayor valor del salario y
la comisión que tienen (funciones GREATEST y COALESCE)
39. Mostrar los datos de los empleados cuyo apellido 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;
SELECT *
FROM emple
WHERE dept_no = 10 AND comision IS NULL;
ProInf.net ©2012
https://www.proinf.net/clases/SQL/sql2011/ejercs/ejercs_sql01.html 9/9