Está en la página 1de 14

CAPITULO 19

Extensiones de Oracle 9i para las


sentencias DML y DDL
Objetivos
 Después de este capítulo, usted estará en
capacidad de:
 Realizar inserciones sobre múltiples tablas
 Usar los diferentes tipos de inserciones
condicionales, entre ellos:
 INSERT ALL incondicional
 INSERT ALL Condicional
 INSERT FIRST Condicional
 INSERT pivoteado (rotando un eje)
 Asignar nombre al índice que soporta una
restricción de llave primaria en el momento de su
creación

19-2
Revisión de la sentencia INSERT
INSERT INTO Tabla [ (Columna1 [, Columna2 …] )]
VALUES (Valor1 [, Valor2 …]);

 Con esta sintaxis sólo se puede insertar


una fila a la vez.

INSERT INTO Departamentos


VALUES (60, ‘COMPRAS’, NULL);

19-3
Revisión de la sentencia UPDATE
UPDATE Tabla
SET Columna1 = Valor1 [, Columna2 = Valor2, …]
[WHERE Condición];

 La sentencia UPDATE permite modificar el valor de las


filas en una tabla.

 Con una sola sentencia se pueden modificar cero, uno o


más filas de la tabla, esto depende de la condición que se
establezca en la cláusula WHERE.

UPDATE Empleados
SET Dep_Id = 30
WHERE Emp_Id IN (7000, 7100);

19-4
Sentencia INSERT multi-tabla
 Insertar filas en múltiples tablas como parte de una sola
sentencia DML.

 Usada en bodegas de datos para transferir datos desde


una o más fuentes operacionales (OLTP) a un conjunto de
tablas destino en un proceso conocido como ETL
(Extracción, Transformación, Carga-Load).

 Con esta única operación DML se obtienen mejoras de


rendimiento comparado con:
 Múltiples operaciones INSERT.
 Un procedimiento que hace múltiples INSERT usando la
sintaxis IF … THEN.

 Esta sentencia se puede paralelizar para mejorar el


rendimiento en el momento del cargue.
19-5
Tipos de sentencias INSERT multi-tabla
 Oracle 9i introduce los siguientes tipos de sentencias INSERT
multi-tabla.
 INSERT ALL Incondicional

 INSERT ALL Condicional

 INSERT FIRST Condicional

 INSERT pivoteado (rotando un eje)

INSERT {[Cláusula_INSERT_Condicional] | [ALL]


[Cláusula_INSERT_INTO [Cláusula_VALUES]]} (Subconsulta)

Donde la [Cláusula_INSERT_Condicional] es:


[ALL | FIRST]
[WHEN Condicion THEN Cláusula_INSERT_INTO
[Cláusula_VALUES]
[ELSE Cláusula_INSERT_INTO [Cláusula_VALUES] ] ]

19-6
INSERT ALL incondicional
 No tiene la cláusula WHEN,
e inserta en todas las
tablas al mismo tiempo.

19-7
INSERT ALL condicional
 Tiene la cláusula WHEN, e inserta las filas en todas las
tablas desde que cumplan con la condición establecida.

19-8
INSERT FIRST Condicional
 Tiene la cláusula WHEN, e inserta la fila solo en la tabla
para la cual se cumpla la primera condición de las
establecidas, las siguientes condiciones se ignoran.

19-9
INSERT pivoteado (rotando un eje)
 Útil para normalizar tablas desnormalizadas.

19-10
INSERT pivoteado (rotando un eje)
 La misma fila se inserta en todas las tablas pero se
convierten las columnas en nuevas fila.

19-11
CREATE INDEX en la sentencia CREATE TABLE

 Crear el índice de la llave primaria asignándole un


nombre.

19-12
Resumen
 En esta lección usted debió aprender a:
 Realizar inserciones sobre múltiples tablas
 Usar los diferentes tipos de inserciones
condicionales, entre ellos:
 INSERT incondicional
 INSERT pivotado (montado en un eje)
 ALL INSERT Condicional
 FIRST INSERT Condicional
 Asignar nombre al índice que soporta una
restricción de llave primaria en el momento de su
creación

19-13
Practica 19
 Realizar una práctica de nueve (9)
puntos que permite practicar:
 La escritura de sentencias INSERT ALL
incondicionales
 La escritura de sentencias INSERT ALL
condicionales
 La escritura de sentencias INSERT
pivoteando datos
 Crear índices en el momento de crear la
tabla

19-14

También podría gustarte