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

De wikiserver
La revisió el 13:25, 14 des 2017 per Rsort (Discussió | contribucions) (Es crea la pàgina amb «El departamento de recursos humanos desea que cree sentencias SQL para insertar, actualizar y suprimir datos de los empleados. Como prototipo, utilizará la tabla MY_E...».)
(dif) ← Versió més antiga | Versió actual (dif) | Versió més nova → (dif)
Dreceres ràpides: navegació, cerca

El departamento de recursos humanos desea que cree sentencias SQL para insertar, actualizar y suprimir datos de los empleados. Como prototipo, utilizará la tabla MY_EMPLOYEE , antes de proporcionar las sentencias al departamento.

Nota: para todas las sentencias DML, utilice el icono Run Script (o pulse [F5]) para ejecutar la consulta. De esta forma, ve los mensajes de comentarios en la página con separadores Script Output. Para consultas SELECT , siga utilizando el icono Execute Statement o pulse [F9] para obtener la salida con formato en la página con separadores Results.


Inserte los datos en la tabla MY_EMPLOYEE .

1) Ejecute la sentencia en el script lab_09_01.sql para crear la tabla MY_EMPLOYEE utilizada en esta práctica.

a) Localice la sentencia en la carpeta DAW-2/Curs 17-18 del servidor OSIRIS.

b) Una vez abierta la sentencia en una hoja de trabajo de SQL, haga clic en el icono Run Script para ejecutar el script. Aparece un mensaje que indica que la creación de la tabla se ha realizado correctamente en la página con separadores Script Output.

2) Describa la estructura de la tabla MY_EMPLOYEE para identificar los nombres de las columnas.


Els següents apartats fan referencia a les dades de la següent taula:

ID LAST_NAME FIRST_NAME USERID SALARY
1 Patel Ralph rpatel 895
2 Dancs Betty bdancs 860
3 Biri Ben bbiri 1100
4 Newman Chad cnewman 750
5 Ropeburn Audry aropebur 1550

3) Cree una sentencia INSERT para agregar la primera fila de datos a la tabla MY_EMPLOYEE a partir de los siguientes datos de ejemplo. No muestre la lista de columnas en la cláusula INSERT.

INSERT INTO my_employee
VALUES (1, 'Patel', 'Ralph', 'rpatel', 895);

4) Rellene la tabla MY_EMPLOYEE con la segunda fila de datos de ejemplo de la lista anterior. En esta ocasión, muestre explícitamente la lista de columnas en la cláusula INSERT .

INSERT INTO my_employee (id, last_name, first_name, userid, salary)
VALUES (2, 'Dancs', 'Betty', 'bdancs', 860);

5) Confirme las adiciones a la tabla.

SELECT *
FROM my_employee;

6) Escriba una sentencia INSERT en un archivo de script reutilizable para cargar las filas restantes en la tabla MY_EMPLOYEE . El script se debe solicitar para todas las columnas ( ID , LAST_NAME , FIRST_NAME , USERID y SALARY ). Guarde este script en un archivo denominado lab_09_06.sql.

INSERT INTO my_employee
VALUES (&p_id, '&p_last_name', '&p_first_name', '&p_userid', &p_salary);

7) Rellene la tabla con las dos siguientes filas de ejemplo mostradas en el paso 3 mediante la ejecución de la sentencia INSERT en el script que ha creado.

INSERT INTO my_employee
VALUES (&p_id, '&p_last_name', '&p_first_name', '&p_userid', &p_salary);

8) Confirme las adiciones a la tabla.

SELECT *
FROM my_employee;

9) Convierta las adiciones de datos en permanentes.

COMMIT;

Actualice y suprima datos de la tabla MY_EMPLOYEE.

10) Cambie el apellido del empleado 3 a Drexler.

UPDATE my_employee
SET last_name = 'Drexler'
WHERE id = 3;

11) Cambie el salario a 1.000 dólares para todos los empleados con un salario inferior a 900.

UPDATE my_employee
SET salary = 1000
WHERE salary < 900;

12) Verifique los cambios en la tabla.

SELECT *
FROM my_employee;

13) Suprima Betty Dancs de la tabla MY_EMPLOYEE .

DELETE
FROM my_employee
WHERE last_name = 'Dancs';

14) Confirme los cambios en la tabla.

SELECT *
FROM my_employee;

15) Confirme todos los cambios pendientes.

COMMIT;

Controle la transacción de datos a la tabla MY_EMPLOYEE .

16) Rellene la tabla con la última fila de datos de ejemplo mostrada en el paso 3 mediante las sentencias del script que ha creado en el paso 6. Ejecute las sentencias en el script.

INSERT INTO my_employee
VALUES (&p_id, '&p_last_name', '&p_first_name', '&p_userid', &p_salary);

17) Confirme la adición a la tabla.

SELECT *
FROM my_employee;

18) Marque un punto intermedio en el procesamiento de la transacción.

SAVEPOINT step_17;

19) Suprima todas las filas de la tabla MY_EMPLOYEE .

DELETE
FROM my_employee;

20) Confirme que la tabla está vacía.

SELECT *
FROM my_employee;

21) Deseche la operación DELETE más reciente sin desechar la operación INSERT anterior.

ROLLBACK TO step_17;

22) Confirme que la nueva fila esté intacta.

SELECT *
FROM my_employee;

23) Convierta la adición de datos en permanente.

COMMIT;

Si tiene tiempo, realice el siguiente ejercicio:

24) Modifique el script lab_09_06.sql de forma que USERID se genere automáticamente concatenando la primera letra del primer nombre y de los primeros siete caracteres del apellido. El USERID generado debe estar en minúscula. Por lo tanto, no se debe solicitar el script para el USERID . Guarde este script en un archivo denominado lab_09_24.sql .

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

25) Ejecute el script lab_09_24.sql para insertar el siguiente registro:

ID LAST_NAME FIRST_NAME USERID SALARY
6 Anthony Mark manthony 1230

26) Confirme que se ha agregado la nueva fila con el USERID correcto.

SELECT *
FROM my_employee
WHERE ID='6';