Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T2-HR»

De wikiserver
Dreceres ràpides: navegació, cerca
(Es crea la pàgina amb «El departamento de recursos humanos necesita su ayuda para crear algunas consultas. 1) Debido a problemas presupuestarios, el departamento de recursos humanos necesit...».)
 
Línia 52: Línia 52:
 
FROM employees
 
FROM employees
 
WHERE hire_date LIKE '%94';
 
WHERE hire_date LIKE '%94';
 +
</pre>
  
 
8) Cree un informe para mostrar el apellido y el puesto de todos los empleados que no tienen un supervisor.
 
8) Cree un informe para mostrar el apellido y el puesto de todos los empleados que no tienen un supervisor.
 
<pre>
 
<pre>
SELECT
+
SELECT last_name, job_id
FROM
+
FROM employees
WHERE
+
WHERE manager_id IS NULL;
last_name, job_id
 
employees
 
manager_id IS NULL;
 
 
</pre>
 
</pre>
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
+
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 .
comisiones. Utilice la posición numérica de la columna en la cláusula ORDER BY .
 
 
<pre>
 
<pre>
SELECT
+
SELECT last_name, salary, commission_pct
FROM
+
FROM employees
WHERE
+
WHERE commission_pct IS NOT NULL
ORDER BY
+
ORDER BY 2 DESC, 3 DESC;
last_name, salary, commission_pct
 
employees
 
commission_pct IS NOT NULL
 
2 DESC, 3 DESC;
 
 
</pre>
 
</pre>
  
10) Los miembros del departamento de recursos humanos desean tener más flexibilidad
+
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 .
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 .
 
 
<pre>
 
<pre>
SELECT
+
SELECT last_name, salary
FROM
+
FROM employees
WHERE
+
WHERE
last_name, salary
 
employees
 
 
salary > &sal_amt;
 
salary > &sal_amt;
 
</pre>
 
</pre>
Introduzca 12000 cuando se le solicite un valor en un cuadro de diálogo. Haga clic
 
en OK.
 
  
11) El departamento de recursos humanos desea ejecutar informes basados en un
+
Introduzca 12000 cuando se le solicite un valor en un cuadro de diálogo. Haga clic en OK.
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
+
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 = 201, ordenado por salary
+
 
manager_id = 124, ordenado por employee_id
+
:manager _id = 103, ordenado por last_name
 +
:manager_id = 201, ordenado por salary
 +
:manager_id = 124, ordenado por employee_id
 
<pre>
 
<pre>
 
SELECT employee_id, last_name, salary, department_id
 
SELECT employee_id, last_name, salary, department_id
Línia 108: Línia 90:
 
ORDER BY &order_col;
 
ORDER BY &order_col;
 
</pre>
 
</pre>
 +
 
Si tiene tiempo, realice los siguientes ejercicios:
 
Si tiene tiempo, realice los siguientes ejercicios:
 +
 
12) Muestre todos los apellidos de los empleados cuya tercera letra sea una "a".
 
12) Muestre todos los apellidos de los empleados cuya tercera letra sea una "a".
 
<pre>
 
<pre>
SELECT
+
SELECT last_name
FROM
+
FROM employees
WHERE
+
WHERE last_name LIKE '__a%';
last_name
 
employees
 
last_name LIKE '__a%';
 
 
</pre>
 
</pre>
 +
 
13) Muestre los apellidos de los empleados que tengan una "a" y una "e" en su apellido.
 
13) Muestre los apellidos de los empleados que tengan una "a" y una "e" en su apellido.
 
<pre>
 
<pre>
SELECT
+
SELECT last_name
FROM
+
FROM employees
WHERE
+
WHERE last_name LIKE '%a%'
AND
+
AND last_name LIKE '%e%';
last_name
 
employees
 
last_name LIKE '%a%'
 
last_name LIKE '%e%';
 
 
</pre>
 
</pre>
 +
 
Si desea superarse a sí mismo, complete los siguientes ejercicios:
 
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
+
14) Muestre el apellido, cargo y salario de todos los empleados que sean vendedores u oficinistas en el departamento de stock y cuyo salario no sea igual que 2.500, 3.500 o 7.000 dólares.
oficinistas en el departamento de stock y cuyo salario no sea igual que 2.500, 3.500 o
 
7.000 dólares.
 
 
<pre>
 
<pre>
SELECT
+
SELECT last_name, job_id, salary
FROM
+
FROM employees
WHERE
+
WHERE job_id IN ('SA_REP', 'ST_CLERK')
AND
+
AND salary NOT IN (2500, 3500, 7000);
last_name, job_id, salary
 
employees
 
job_id IN ('SA_REP', 'ST_CLERK')
 
salary NOT IN (2500, 3500, 7000);
 
 
</pre>
 
</pre>
  
15) Modifique el archivo lab_02_06.sql para mostrar el apellido, salario y comisión
+
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
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.
lab_02_06.sql como lab_02_15.sql. Vuelva a ejecutar la sentencia en el
 
archivo lab_02_15.sql.
 
 
<pre>
 
<pre>
SELECT
+
SELECT last_name "Employee", salary "Monthly Salary",
last_name "Employee", salary "Monthly Salary",
+
      commission_pct
commission_pct
+
FROM employees
employees
+
WHERE commission_pct = .20;
commission_pct = .20;
 
FROM
 
WHERE
 
 
</pre>
 
</pre>

Revisió del 11:44, 6 nov 2017

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 1994.

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

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.

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 = 201, 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 en el departamento de stock 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;