manipulacion de datos sql cap10

Post on 26-May-2015

3.525 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

manipulacion de datos, SQL capitulo 10 Oracle Fundamentals I, z0-051

TRANSCRIPT

UPDATE, DELETE, INSERT, TRANSACTION

Oracle Fundamentals I

Lenguaje de Manipulacion de datos DML Select Insert Update Delete Merge

INSERT

Inserta tuplas dentro de una tabla

La insercion debe respetar reglas definidas, las cuales se denominan CONSTRAINT

UPDATE

Se utiliza para modificar tuplas dentro de una tabla, las tuplas YA EXISTEN EN LA TABLA

DELETE

Elimina tuplas de una tabla. Luego de la eliminacion, en la

tabla se disparan desencadenantes de integridad referencial hacia otras tablas

MERGE

Existe a partir del SQL 2003, oracle 10g hacia adelante.

Toma un conjunto de tuplas origen, si una fila en el origen coincide con el destino hace UPDATE, de otro modo hace INSERT

TRUNCATE

Desde el punto de vista del usuario, equivale a utilizar Delete sin la clausula Where.

La diferencia es que es muy eficiente y elimina todas las tuplas de forma instantánea.

Insertando filas

Insert into hr.regions values(‘10’, ‘Great Britain’);

Insert into hr.regions( region_name,region_id) values (‘Australasia’, 11);

Insert into regions_copy select * from regions;

Ejercicio

Select * from regions; Insert into regions values(101, ‘Great

Britain’); Insert into regions values(&Region_id,

‘&regionName’); Insert into regions values(( select

max(region_id)+1 from regions),’Oceania’);

Commit;

UPDATE

UPDATE tabla SET columna1= valor, columna2=valor2 … WHERE condicion;

Update employees set salary= (select salary from employees where employee_id=206);

Update employees set salary=3000 where employee_id=206

Ejercicio

Update regions set region_name = ‘Scandinavia’ where region_id=101;

Update regions set region_name = ‘Iberia’ where region_id>100;

Select * from regions; Commit;

DELETE

DELETE FROM tabla WHERE condicion;

Delete from employees where employee_id=206;

Delete from employees where department_id is null;

Ejercicio

Delete from regions where region_id = 204;

Delete from regions; Delete from regions where

region_id in (select region_id from regions where region_name= ‘Iberia’);

Select * from regions; Commit;

TRUNCATE

TRUNCATE TABLE tabla1;

TRANSACCIONES

Una transaccion es una o mas instrucciones DML, seguidas del comando ROLLBACK o COMMIT

SAVEPOINT sirve para crear puntos de transaccion

PRUEBA ACIDA

Toda base de datos relacional debe complir con: Atomicidad Consistencia Isolation (aislamiento) Durabilidad

ATOMICIDAD

El principio de atomicidad expresa que todas las partes de una transaccion deben completarse o no hacer ninguna

Ej. Una transferencia bancaria entre una cuenta y otra.

CONSISTENCIA

Expresa que el estado que resulta de una consulta debe ser consistente con el stado de la base de datos en cualquier tiempo que la consulta se ejecute.

AISLAMIENTO

Establece que una transaccion incompleta debe ser invisible para el resto del mundo

DURABLE

Una vez que una transaccion se ha completado, debe ser imposible que los datos se pierdan en la base de datos.

INICIO Y FIN DE UNA TRANSACCION Una sesion inicia una

transaccion para cualquier instrucción INSERT, update, select o delete (NO para truncate, pues es no es DML)

No se puede iniciar una transaccion nueva sin terminar la primera. Standard SQL

Si ejecutamos una instrucción DDL (create, alter o Drop) o una DCL (Grant o Revoke) en la transaccion actual se realizara un COMMIT

Debido a que ellas hacen modificaciones que requieren actualizacion inmediata

Controlando una transacción Una transaccion inicia de forma

implicita con una instrucción DML

COMMIT; confirma una transaccion.

Hasta que una transaccion en completada, se mantiene invisible para otras sesiones.

ROLLBACK

ROLLBACK [TO SAVEPOINT save];

Revierte una transaccion, utilizando puntos de guardado si asi se desea.

SAVEPOINT

El comando SAVEPOINT se puede utilizar para establecer marcas que pondrá utilizar en un ROLLBACK, pero sigue siendo la misma transacción en curso, independientemente de la utilización de SAVEPOINT.

SAVEPOINT savepoint1;

Ejercicio

Ejercicio mental

•Filas usuario actual= O

•Filas otras sesiones= O

Truncate table tab;

•Filas usuario actual = 1

•Filas otras sesiones= O

Insert into tab values(1);

•Filas usuario actual = 1

•Filas otras sesiones= O

Savepoint uno;

•Filas usuario actual = 2

•Filas otras sesiones= O

Insert into tab values(2);

•Filas usuario actual = 1

•Filas otras sesiones= O

Rollback to savepoint uno;

•Filas usuario actual = 1

•Filas otras sesiones= 1

Commit;

Auto-Commit

Es posible configurar SQL developer y SQLplus para hacer un commit implicitamente luego de cada instrucción DML, solo que si se activa la instrucción Rollback ya no tendra efecto.

SET AUTOCOMMIT ON SET AUTOCOMMIT OFF

Ojo mucho Ojo

Primer Usuario

• Select * from regions;

• .

• • Update regions

set region_name=‘GB’ where region_id=5;

Segundo Usuario

• Select * from regions;

• Delete from regions where region_id=5;

• commit

<< 0 rows updated. >>

top related