Professional Documents
Culture Documents
Practica 1 Parte 1
Pon a prueba tus conocimientos:
Verdad
Utiliza el As para cambiar a salario por sal en la tabla
empleados
5. El departamento de RR.HH. quiere una consulta para mostrar el apellido, la identificación del
trabajo, la fecha de contratación y la identificación del empleado para cada empleado, con la
identificación del empleado que aparece primero. Proporcione un alias STARTDATE para la columna
HIRE_DATE. Guarde su declaración SQL en un archivo llamado lab_01_05.sql para que pueda enviar
este archivo al departamento de Recursos Humanos.
7. El departamento de recursos humanos desea una consulta para mostrar todas las ID de trabajo únicas
de la tabla EMPLOYEES.
SELECT DISTINCT job_id
FROM employees;
SELECT last_name, salary FROM employees WHERE salary NOT BETWEEN 5000 AND 12000;
SELECT last_name, department_id FROM employees WHERE department_id IN (20, 50) ORDER
BY last_name ASC;
9. Muestre el apellido, el salario y la comisión de todos los empleados que ganan comisiones. Clasifica
los datos en orden descendente de salario y comisiones.
11. El departamento de recursos humanos desea ejecutar informes basados en un gerente. Cree una
consulta que solicite al usuario una ID de administrador y genere la ID de empleado, el apellido, el salario
y el departamento para los empleados de ese gerente. El departamento de recursos humanos desea la
capacidad de ordenar el informe en una columna seleccionada. Puede probar los datos con los siguientes
valores:
13. Muestre los apellidos de todos los empleados que tienen una "a" y una "e" en su apellido.
SELECT last_name FROM employees WHERE last_name LIKE '%a%' AND last_name LIKE
'%e%';
15. Modifique lab_02_06.sql para mostrar el apellido, el salario y la comisión de todos los empleados
cuya comisión sea del 20%. Resave lab_02_06.sql como lab_02_15.sql. Vuelva a ejecutar la instrucción
en lab_02_15.sql.
SELECT last_name "Employee", salary "Monthly Salary", commission_pct FROM employees
WHERE commission_pct = .20;
1. Escribe una consulta para mostrar la fecha actual. Etiqueta la columna Fecha.
SELECT sysdate "Date" FROM dual;
3. Ejecute su consulta en el archivo lab_03_02.sql.
SELECT employee_id, last_name, salary, ROUND(salary * 1.155, 0) "New Salary" FROM
employees;
5. Escriba una consulta que muestre el apellido (con la primera letra en mayúscula y todas las demás
letras en minúscula) y la longitud del apellido de todos los empleados cuyo nombre comience con las
letras J, A o M. Dé a cada columna un nombre apropiado etiqueta. Ordene los resultados por los apellidos
de los empleados.
SELECT INITCAP(last_name) "Name", LENGTH(last_name) "Length" FROM employees
WHERE last_name LIKE 'J%' OR last_name LIKE 'M%' OR last_name LIKE 'A%' ORDER BY
last_name ;
Vuelva a escribir la consulta para que se le solicite al usuario que ingrese una letra que inicie el apellido.
Por ejemplo, si el usuario ingresa H cuando se le solicita una letra, la salida debe mostrar a todos los
empleados cuyo apellido comienza con la letra H.
SELECT INITCAP(last_name) "Name", LENGTH(last_name) "Length" FROM employees
WHERE last_name LIKE '&start_letter%' ORDER BY last_name;
7. Cree un informe que produzca lo siguiente para cada empleado: <apellido del empleado> gana
<salario> mensualmente pero quiere <3 veces salario>.
SELECT last_name || ' earns ' || TO_CHAR(salary, 'fm$99,999.00') || ' monthly but wants '
|| TO_CHAR(salary * 3, 'fm$99,999.00') || '.' "Dream Salaries" FROM employees;
9. Muestre el apellido, la fecha de contratación y la fecha de revisión salarial de cada empleado, que es el
primer lunes después de seis meses de servicio. Etiqueta la columna REVIEW. Formatee las fechas para
que aparezcan en el formato similar a "Lunes, el 31 de julio de 2000".
SELECT last_name, hire_date, TO_CHAR(NEXT_DAY(ADD_MONTHS(hire_date,
6),'MONDAY'), 'fmDay, "the" Ddspth "of" Month, YYYY') REVIEW FROM employees;
11. Create a query that displays the employees’ last names and commission amounts. If an employee does
not earn commission, show “No Commission.” Label the column COMM.
SELECT last_name, NVL(TO_CHAR(commission_pct), 'No Commission') COMM FROM
employees;
13. Utilizando la función DECODE, escriba una consulta que muestre el grado de todos los empleados en
función del valor de la columna JOB_ID, utilizando los siguientes datos: Grado de trabajo AD_PRES A
ST_MAN B IT_PROG C SA_REP D ST_CLERK E Ninguno de los anteriores 0
SELECT job_id, decode (job_id, 'ST_CLERK', 'E', 'SA_REP', 'D',
'IT_PROG', 'C', 'ST_MAN', 'B', 'AD_PRES', 'A',
'0')GRADE FROM employees;
PRACTICA 4 Solucion
1. Las funciones grupales funcionan en muchas filas para producir un resultado por grupo.
Verdadero / Falso
3. La cláusula WHERE restringe las filas antes de la inclusión en un cálculo grupal.
Verdadero / Falso
5. Modifique la consulta en lab_04_04.sql para mostrar el salario mínimo, máximo, suma y promedio
para cada tipo de trabajo. Resave lab_04_04.sql como lab_04_05.sql. Ejecute la instrucción en
lab_04_05.sql
SELECT job_id, ROUND(MAX(salary),0) "Maximum", ROUND(MIN(salary),0) "Minimum",
ROUND(SUM(salary),0) "Sum", ROUND(AVG(salary),0) "Average" FROM employees
GROUP BY job_id;
9. Cree un informe para mostrar el número de administrador y el salario del empleado con el salario más
bajo para ese gerente. Excluya a cualquier persona cuyo gerente no sea conocido. Excluya cualquier
grupo donde el salario mínimo sea de $ 6,000 o menos. Ordenar el resultado en orden descendente de
salario
SELECT manager_id, MIN(salary) FROM employees WHERE manager_id IS NOT NULL GROUP
BY manager_id HAVING MIN(salary) > 6000 ORDER BY MIN(salary) DESC;
11. Cree una consulta matricial para mostrar el trabajo, el salario de ese trabajo en función del número de
departamento y el salario total para ese trabajo, para los departamentos 20, 50, 80 y 90, dando a cada
columna un título apropiado.
PRACTICA 5 Solucion
1. Escriba una consulta para el departamento de recursos humanos para generar las direcciones de todos
los departamentos. Use las tablas LOCATIONS y COUNTRIES. Muestre la ID de ubicación, la dirección
de la calle, la ciudad, el estado o la provincia y el país en la salida. Use una UNIÓN NATURAL para
producir los resultados.
9. El departamento de recursos humanos necesita encontrar los nombres y las fechas de contratación de
todos los empleados que fueron contratados antes que sus gerentes, junto con los nombres de sus gerentes
y las fechas de contratación. Guarde el script en un archivo llamado lab_05_09.sql.
PRACTICA 6 Solucion
1. El departamento de recursos humanos necesita una consulta que solicite al usuario el apellido de un
empleado. La consulta muestra el apellido y la fecha de contratación de cualquier empleado en el mismo
departamento que el empleado cuyo nombre suministra el usuario (excluyendo a ese empleado). Por
ejemplo, si el usuario ingresa Zlotkey, encuentre todos los empleados que trabajen con Zlotkey
(excluyendo Zlotkey).
UNDEFINE Enter_name
3. Escriba una consulta que muestre el número de empleado y el apellido de todos los empleados que
trabajan en un departamento con cualquier empleado cuyo apellido contenga un u. Coloque su instrucción
SQL en un archivo de texto llamado lab_06_03.sql. Ejecute su consulta.
5. Cree un informe para el departamento de Recursos Humanos que muestre el apellido y el salario de
cada empleado que se reporte a King.
3. Produzca una lista de trabajos para los departamentos 10, 50 y 20, en ese orden. Visualice la
identificación del trabajo y la ID del departamento usando los operadores establecidos.
COLUMN dummy NOPRINT SELECT job_id, department_id, 'x' dummy FROM employees WHERE
department_id = 10 UNION SELECT job_id, department_id, 'y' dummy FROM employees WHERE
department_id = 50 UNION SELECT job_id, department_id, 'z' dummy FROM employees WHERE
department_id = 20 ORDER BY dummy; COLUMN dummy PRINT
PRACTICA 8 Solucion
El departamento de recursos humanos desea que cree declaraciones SQL para insertar,
actualizar y eliminar datos de los empleados. Como prototipo, utiliza la tabla MY_EMPLOYEE
antes de enviar las declaraciones al departamento de recursos humanos. Inserta datos en la
tabla MY_EMPLOYEE
3. Cree una instrucción INSERT para agregar la primera fila de datos a la tabla MY_EMPLOYEE de los
siguientes datos de muestra. No liste las columnas en la cláusula INSERTAR.
7. Llene la tabla con las dos filas siguientes de datos de muestra enumerados en el paso 3 ejecutando la
instrucción INSERT en el script que creó.
SET ECHO OFF SET VERIFY OFF INSERT INTO my_employee VALUES (&p_id, '&&p_last_name',
'&&p_first_name', lower(substr('&p_first_name', 1, 1) || substr('&p_last_name', 1, 7)),
&p_salary); SET VERIFY ON SET ECHO ON UNDEFINE p_first_name UNDEFINE p_last_name
COMMIT;
11. Cambie el salario a $ 1,000 para todos los empleados con un salario de menos de $ 900.
UPDATE my_employee SET salary = 1000 WHERE salary < 900;