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

De wikiserver
La revisió el 13:16, 5 des 2017 per Rsort (Discussió | contribucions) (Es crea la pàgina amb «1) El personal del departamento de recursos humanos desea ocultar algunos de los datos de la tabla EMPLOYEES. Cree una vista denominada EMPLOYEES_VU basada en los núm...».)
(dif) ← Versió més antiga | Versió actual (dif) | Versió més nova → (dif)
Dreceres ràpides: navegació, cerca

1) El personal del departamento de recursos humanos desea ocultar algunos de los datos de la tabla EMPLOYEES. Cree una vista denominada EMPLOYEES_VU basada en los números y los apellidos de los empleados y en los números de departamento de la tabla EMPLOYEES. La cabecera del nombre de empleado debe ser EMPLOYEE. CREATE OR REPLACE VIEW employees_vu AS SELECT employee_id, last_name employee, department_id FROM employees; 2) Confirme que la vista funciona. Visualice el contenido de la vista EMPLOYEES_VU . SELECT FROM

employees_vu; 3) Con la vista EMPLOYEES_VU , escriba una consulta para el departamento de recursos humanos para visualizar todos los nombres de empleados y números de departamento. SELECT FROM employee, department_id employees_vu; 4) El departamento 50 necesita acceso a los datos de los empleados. Cree una vista con el nombre DEPT50 que contenga los números y apellidos de los empleados y los números de departamento de todos los empleados del departamento 50. Se le ha solicitado que etiquete las columnas de la vista como EMPNO , EMPLOYEE y DEPTNO . Por motivos de seguridad, no permita la reasignación de un empleado a otro departamento a través de la vista.

CREATE VIEW dept50 AS SELECT employee_id empno, last_name employee, department_id deptno FROM employees WHERE department_id = 50 WITH CHECK OPTION CONSTRAINT emp_dept_50;

5) Visualice la estructura y el contenido de la vista DEPT50 . DESCRIBE dept50 SELECT FROM

dept50; 6) Pruebe la vista. Intente reasignar Matos al departamento 80. UPDATE SET WHERE

ra dept50 deptno = 80 employee = 'Matos'; El error se debe a que la vista DEPT50 se ha creado con la restricción WITH CHECK OPTION . De esta forma, se garantiza que la columna DEPTNO de la vista esté protegida contra cambios.

7) Necesita una secuencia que se pueda utilizar con la columna de clave primaria de la tabla DEPT . La secuencia debe empezar en 200 y tener un valor máximo de 1.000. Aplique incrementos de 10 a la secuencia. Asigne a la secuencia el nombre DEPT_ID_SEQ . CREATE SEQUENCE dept_id_seq START WITH 200 INCREMENT BY 10 MAXVALUE 1000; 8) Para probar la secuencia, escriba un script para insertar dos filas en la tabla DEPT . Asigne al script el nombre lab_11_08.sql . Asegúrese de utilizar la secuencia que ha creado para la columna ID. Agregue dos departamentos: Education y Administration. Confirme las adiciones. Ejecute los comandos del script. INSERT INTO dept VALUES (dept_id_seq.nextval, 'Education'); INSERT INTO dept VALUES (dept_id_seq.nextval, 'Administration');

9) Cree un índice no único en la columna NAME de la tabla DEPT .

CREATE INDEX dept_name_idx ON dept (name); 10) Cree un sinónimo para la tabla EMPLOYEES . Llámelo EMP . CREATE SYNONYM emp FOR EMPLOYEES;