menu

miércoles, diciembre 28, 2016

SQL_Oracle_tema_2

Práctica 2-1: Restricción y Ordenación de Datos

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. Ejecute la consulta.

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 cualquier empleado 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; 
La segunda parte se puede hacer  WHERE salary >12000 OR salary<5000;

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;
La segunda alternativa WHERE last_name = 'Matos' OR 'Taylor

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 between 20 and 50 order by last_name;

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 as "Employee", salary as "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 salary desc, commission_pct 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. Guarde esta consulta en un archivo denominado lab_02_10.sql . Si introduce 12000 cuando se le solicite, el informe mostrará los
siguientes resultados:

select last_name, salary from employees where salary >&salary;

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 =& manager order by &columna;

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%');
alternativa
select last_name from employees where regexp_like (last_name, 'a') and regexp_like (last_name, 'e');

14) Muestre el apellido, cargo y salario de todos los empleados que sean vendedores u oficinistas en el departamento de stock y cuyos salarios no sean iguales que 2.500, 3.500 ó 7.000 dólares.

select last_name,job_id,salary from employees where salary  not in (2500,3500,7000) and job_id in ('SA_REP','ST_CLERK');

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 as "Employee", salary as "Monthly Salary", commission_pct from employees where commission_pct = 0.2;

No hay comentarios:

Publicar un comentario