You are on page 1of 21

Sesin 6

Manipulacin de Datos

1
TECSUP
Manipulacin de Datos

 Se refiere a toda variacin en el contenido de alguna tabla


de la base de datos.
 Existen tres (3) comandos de manipulacin de datos
(DML):
INSERT.- Permite agregar registros dentro de una
tabla.
UPDATE.- Permite actualizar registros de una tabla.
DELETE.- Permite eliminar registros de una tabla.

2
TECSUP
Insercin de Registro
INSERT INTO Tabla
VALUES (Valor1, Valor2,... );

 Ejemplo:
SQL> INSERT INTO empleados
2 VALUES (1234, ENRIQUEZ, VENDEDOR, 7698, SYSDATE,
3 2000, NULL, 30) ;

3
TECSUP
Insercin de Registro

ASISTENTE
NOMBRE SALARIO
Torres 4500
Ganoza 2500

INSERT INTO asistente


VALUES (Ganoza,2500);

4
TECSUP
Insercin de Registro con Eleccin de
Columnas

INSERT INTO Tabla ( Columna1, Columna2,...)


VALUES (Valor1, Valor2,... );

 Ejemplo:
SQL> INSERT INTO empleados (cod_emp, nombre_emp, fecha_ing,
2 salario, cod_dept)
3 VALUES (S_EMP_CODEMP.NEXTVAL, LIZARRAGA, 01-JAN-92,
4 2000, 30) ;

5
TECSUP
Insercin Interactiva de Registro

INSERT INTO Tabla [( Columna1, Columna2,...)]


VALUES (&Parametro1, &Parametro2,... );

 Ejemplo:
SQL> INSERT INTO depart
2 VALUES (&COD_DEPT, &NOMBRE_DEPT, &UBICACION) ;

6
TECSUP
Insercin de Registros desde una Consulta

INSERT INTO Tabla [( Columna1, Columna2,...)]


Consulta;

 Ejemplo:

SQL> INSERT INTO empleados ( cod_emp, nombre_emp, cod_dept )


2 SELECT id, name, departament
3 FROM emp
4 WHERE departament IN (10, 20, 30, 40) ;

7
TECSUP
TRABAJADOR
CODIGO NOMBRE SALARIO CARGO
001 Merino 2000 Cajero
002 Rojas 3500 Jefe
003 Prez 1700 Asistente
004 Lpez 1250 Cajero
005 Milla 3000 Jefe
006 Rivas 2500 Guardin
007 Gmez 2500 Asistente

ASISTENTE
INSERT INTO asistente (nombre, salario) NOMBRE SALARIO
SELECT nombre, salario Torres 4500
FROM trabajador Prez 1700
WHERE cargo = Asistente;
Gmez 2500

8
TECSUP
Actualizacin de Registro
UPDATE Tabla
SET Columna1 = Valor1[, Columna2 = Valor2...]
[ WHERE Condicin ];

 Ejemplo:

SQL> UPDATE empleados


2 SET puesto = VENDEDOR, salario = salario * 1.05,
3 cod_ dept = 30
4 WHERE cod_emp = 7788 ;

9
TECSUP
Actualizacin de Registro
TRABAJADOR
CODIGO NOMBRE SALARIO CARGO
001 Merino 2000
5000 Cajero
Jefe
002 Rojas 3500 Jefe
003 Prez 1700 Asistente
004 Lpez 1250 Cajero
005 Milla 3000
5000 Jefe
Jefe
006 Rivas 2500 Guardin
007 Gmez 2500 Asistente

UPDATE trabajador
SET salario = 5000, cargo = Jefe
WHERE nombre like M%;

10
TECSUP
Eliminacin de Registro
DELETE FROM Tabla
[ WHERE Condicin ];

 Ejemplo:

SQL> DELETE FROM empleados


2 WHERE cod_emp = 1234 ;

11
TECSUP
Eliminacin de Registro
TRABAJADOR
CODIGO NOMBRE SALARIO CARGO
001 Merino 2000 Cajero
002 Rojas 3500 Jefe
003 Perez 1700 Asistente
004 Lopez 1250 Cajero
005 Milla 3000 Jefe
006 Rivas 2500 Guardin
007 Gomez 2500 Asistente

DELETE FROM trabajador


WHERE codigo > 005;

12
TECSUP
Transaccin
 Conjunto de operaciones DML contiguas COMMIT
ejecutadas desde una misma sesin y que an no
han sido almacenadas en la base de datos. INSERT

INSERT

 Durante la ejecucin de una transaccin, los DELETE


resultados de las operaciones DML nicamente INSERT

son vistos en la sesin desde la cual se ejecutaron. UPDATE

UPDATE
 Existen dos (2) formas de terminar una
transaccin: COMMIT
COMMIT.- Comando que actualiza la base de
datos con los resultados obtenidos a partir de la
transaccin.
ROLLBACK.- Comando que deshace la
transaccin.
13
TECSUP
Tipos de COMMIT

 La ejecucin del comando COMMIT actualiza la base


de datos a partir de los resultados obtenidos durante
la transaccin en curso.
 Una vez actualizada la base de datos, todas las
sesiones accedern a los resultados originados por la
transaccin.
 Existen tres (3) tipos de COMMIT:
Explcito
Implcito
Automtico

14
TECSUP
COMMIT Explcito

 Se refiere a la ejecucin explcita del comando


COMMIT con la finalidad de asegurar los resultados
obtenidos.
COMMIT;

15
TECSUP
COMMIT Implcito

 Se refiere a la ejecucin implcita del comando


COMMIT a partir de la ejecucin de otro comando.
 Prcticamente todo comando ejecuta un COMMIT
IMPLICITO, salvo los DML (insercin, modificacin,
eliminacin y consulta de datos).
ALTER
EXIT
AUDIT
GRANT
COMMENT
NOAUDIT
CONNECT
QUIT
CREATE
REVOKE
DISCONNECT
RENAME
DROP

16
TECSUP
COMMIT Automtico

 Se refiere a la activacin de una variable de entorno


desde la cual toda operacin (incluso las DML)
actualiza automticamente a la base de datos.

SET AUTOCOMMIT [ ON | OFF ];

17
TECSUP
ROLLBACK

 La ejecucin del comando ROLLBACK implica el


deshacer de la sesin los resultados generados a
partir de las operaciones contenidas en la transaccin
en curso.
 Ante una cada del sistema o una desconexin
abrupta de la sesin, el sistema ejecutar
automticamente un ROLLBACK a toda transaccin
pendiente.
ROLLBACK;

18
TECSUP
SAVEPOINT

 Ante la posibilidad de errores involuntarios por parte


del usuario durante una transaccin extensa, las
marcas o Savepoints permiten cierta personalizacin
al momento de ejecutar un Rollback.
 Un Savepoint establece un punto dentro de la
transaccin desde el cual podr iniciarse un Rollback
de manera que no elimine las operaciones anteriores
a esta marca.

19
TECSUP
Colocacin de Marca

SAVEPOINT Marca;

 Ejemplo:

SQL> SAVEPOINT B ;

20
TECSUP
Utilizacin de la Marca

ROLLBACK TO Marca;

 Ejemplo:

SQL> ROLLBACK TO B ;

21
TECSUP