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

De wikiserver
Dreceres ràpides: navegació, cerca

Inserte los datos en la tabla MY_EMPLOYEE .

1) Ejecute la sentencia aiguiente para crear la tabla MY_EMPLOYEE utilizada en esta práctica.

CREATE TABLE MY_EMPLOYEE (
ID NUMBER(6) PRIMARY KEY,
LAST_NAME VARCHAR2(25),
FIRST_NAME VARCHAR2(20),
USERID VARCHAR2(10),
SALARY NUMBER(8,2));

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

DESCRIBE my_employee

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.

COMMIT;

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) Visualize todos los empleados y comprueba que se han introducido correctamente.

SELECT *
FROM my_employee;

9) Confirme los cambios en la tabla.

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) Visualiza todos los empleados y compruebe que los cambios se ha realizado correctamente.

SELECT *
FROM my_employee;

13) Suprima Betty Dancs de la tabla MY_EMPLOYEE .

DELETE
FROM my_employee
WHERE FIRST_NAME = 'Betty' AND LAST_NAME = 'Dancs';

14) Visualize todos los empleados y compruebe que los cambios se ha realicado correctamente.

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) Compruebe que los datos se han introducido correctamente.

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) Verifique 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) Compruebe que la nueva fila esté intacta.

SELECT *
FROM my_employee;

23) Confirme los cambios.

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) Compruebe que se ha agregado la nueva fila con el USERID correcto.

SELECT *
FROM my_employee
WHERE ID='6';