menu

miércoles, enero 11, 2017

SQL_Oracle_tema_9

Práctica 9-1: Manipulación de Datos

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.
create table my_employee (
id number(4) primary key,
last_name varchar2(25),
first_name varchar2(25),
userid varchar2(8),
salary number(9,2)
);

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


describe my_employee;

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 . No introduzca aún todas las filas.

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 la adición a la tabla.

commit;

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 lab_09_06.sql .

insert into my_employee values (&identificador, '&cognon', '&nom', '&identificador_usuari', &salari);

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 (&identificador, '&cognon', '&nom', '&identificador_usuari', &salari);

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 id=2;

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.

Ejecutar script 6 con la fila id=5

17) Confirme la adición a la tabla.

commit;

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

En este punto hay que tener cuidado, si tienes autocommit en on dará error. En mi caso estoy utilizandoSQL-developer y lo tuve que poner off:
Tools > Preferences > Database > Advanced > Autocommit
savepoint A;

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 A;

22) Confirme que la nueva fila esté intacta.

select * from my-employee where id=5;

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

commit;

2 comentarios: