M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T2-HR

De wikiserver
Dreceres ràpides: navegació, cerca

El departamento de recursos humanos necesita su ayuda para crear algunas consultas.

1) Debido a problemas presupuestarios, el departamento de recursos humanos necesita un informe que muestre el apellido y el salario de los empleados que ganan más de 12.000 dólares. Guarde la sentencia SQL como un archivo denominado lab_02_01.sql. Ejecute la consulta.

SELECT last_name, salary
FROM employees
WHERE salary > 12000;

2) Abra una hoja de trabajo de SQL nueva. Cree un informe que muestre el apellido y el número de departamento para el número de empleado 176.

SELECT last_name, department_id
FROM employees
WHERE employee_id = 176;

3) El departamento de recursos humanos necesita encontrar los empleados con salarios tanto altos como bajos. Modifique lab_02_01.sql para mostrar el apellido y el salario de todos los empleados cuyo salario no esté entre 5.000 y 12.000 dólares. Guarde la sentencia SQL como lab_02_03.sql .

SELECT last_name, salary
FROM employees
WHERE salary NOT BETWEEN 5000 AND 12000;

4) Cree un informe para mostrar el apellido, ID de cargo y fecha de contratación de los empleados cuyos apellidos sean Matos y Taylor. Ordene la consulta en orden ascendente por fecha de contratación.

SELECT last_name, job_id, hire_date
FROM employees
WHERE last_name IN ('Matos', 'Taylor')
ORDER BY hire_date;

5) Muestre el apellido y el ID de departamento de todos los empleados de los departamentos 20 o 50 en orden alfabético ascendente por nombre.

SELECT last_name, department_id
FROM employees
WHERE department_id IN (20, 50)
ORDER BY last_name ASC;

6) Modifique el archivo lab_02_03.sql para mostrar el apellido y el salario de los empleados que ganan entre 5.000 y 12.000 dólares y están en el departamento 20 o 50. Etiquete las columnas Employee y Monthly Salary, respectivamente. Vuelva a guardar lab_02_03.sql como lab_02_06.sql . Ejecute la sentencia en el archivo lab_02_06.sql .

SELECT last_name "Employee", salary "Monthly Salary"
FROM employees
WHERE salary BETWEEN 5000 AND 12000
AND department_id IN (20, 50);

7) El departamento de recursos humanos necesita un informe que muestre el apellido y la fecha de contratación de todos los empleados contratados durante el año 2004.

SELECT last_name, hire_date
FROM employees
WHERE hire_date LIKE '%04';

8) Cree un informe para mostrar el apellido y el puesto de todos los empleados que no tienen un supervisor.

SELECT last_name, job_id
FROM employees
WHERE manager_id IS NULL;

9) Cree un informe para mostrar el apellido, salario y comisión de todos los empleados que perciben comisiones. Ordene los datos en orden descendente de salario y comisiones. Utilice la posición numérica de la columna en la cláusula ORDER BY .

SELECT last_name, salary, commission_pct
FROM employees
WHERE commission_pct IS NOT NULL
ORDER BY 2 DESC, 3 DESC;

10) Los miembros del departamento de recursos humanos desean tener más flexibilidad con las consultas que está creando. Les gustaría tener un informe que muestre el apellido y el salario de los empleados que ganen más de una cantidad especificada por el usuario después de una solicitud. (Puede utilizar la consulta creada en el ejercicio práctico 1 y modificarla). Guarde esta consulta en un archivo denominado lab_02_10.sql .

SELECT last_name, salary
FROM employees
WHERE 
salary > &sal_amt;

Introduzca 12000 cuando se le solicite un valor en un cuadro de diálogo. Haga clic en OK.

Diàleg

11) El departamento de recursos humanos desea ejecutar informes basados en un supervisor. Cree una consulta que solicite al usuario un ID de supervisor y genere el ID de empleado, apellido, salario y departamento de los empleados de ese supervisor. El departamento de recursos humanos desea ordenar el informe en una columna seleccionada. Puede probar los datos con los siguientes valores:

manager _id = 103, ordenado por last_name
manager_id = 108, ordenado por salary
manager_id = 124, ordenado por employee_id
SELECT employee_id, last_name, salary, department_id
FROM employees
WHERE manager_id = &mgr_num
ORDER BY &order_col;

Si tiene tiempo, realice los siguientes ejercicios:

12) Muestre todos los apellidos de los empleados cuya tercera letra sea una "a".

SELECT last_name
FROM employees
WHERE last_name LIKE '__a%';

13) Muestre los apellidos de los empleados que tengan una "a" y una "e" en su apellido.

SELECT last_name
FROM employees
WHERE last_name LIKE '%a%'
AND last_name LIKE '%e%';

Si desea superarse a sí mismo, complete los siguientes ejercicios:

14) Muestre el apellido, cargo y salario de todos los empleados que sean vendedores u oficinistas que sean vendedores u oficinistas (SA_REP o ST_CLERK) y cuyo salario no sea igual que 2.500, 3.500 o 7.000 dólares.

SELECT last_name, job_id, salary
FROM employees
WHERE job_id IN ('SA_REP', 'ST_CLERK')
AND salary NOT IN (2500, 3500, 7000);

15) Modifique el archivo lab_02_06.sql para mostrar el apellido, salario y comisión de todos los empleados cuya comisión sea del 20%. Vuelva a guardar lab_02_06.sql como lab_02_15.sql. Vuelva a ejecutar la sentencia en el archivo lab_02_15.sql.

SELECT last_name "Employee", salary "Monthly Salary",
       commission_pct
FROM employees
WHERE commission_pct = .20;