Curso SQL - Leccion 10

49
Programación SQL Lección 10

Transcript of Curso SQL - Leccion 10

Page 1: Curso SQL - Leccion 10

Programación SQL Lección 10

Page 2: Curso SQL - Leccion 10

Manipulación de datos

SQL Fundamentals I

Page 3: Curso SQL - Leccion 10

Después de completar esta lección, usted debería ser capaz de hacer el siguiente: Describir cada declaración lenguaje de

manipulación de datos (DML) Insertar filas en una tabla Actualizar filas de una tabla Eliminar filas de una tabla Realizar control de las transacciones

Objetivos

Page 4: Curso SQL - Leccion 10

Agregar nuevas filas en una tabla◦Sentencia INSERT

Cambiar datos en una tabla◦Sentencia UPDATE

Eliminar filas de una tabla:◦sentencia DELETE◦sentencia TRUNCATE

Control de las transacciones de base de datos utilizando COMMIT, ROLLBACK, y SAVEPOINT

Visión de consistencia Cláusula FOR UPDATE en una sentencia SELECT

Agenda

Page 5: Curso SQL - Leccion 10

Una instrucción DML se ejecuta cuando:◦ Añaden nuevas filas a una tabla◦ Modifican las filas existentes en una tabla◦ Eliminar las filas existentes de una tabla

Una transacción consiste en una colección de sentencias DML que forman una unidad lógica de trabajo.

Lenguaje de manipulación de datos

Page 6: Curso SQL - Leccion 10

Agregar una nueva fila a una tabla

Page 7: Curso SQL - Leccion 10

Añadir nuevas filas a una tabla mediante la instrucción INSERT:

Con esta sintaxis, sólo una fila se inserta a la vez.

Sintaxis de sentencias INSERT

Page 8: Curso SQL - Leccion 10

Insertar una nueva fila que contiene los valores para cada columna.

Los valores de lista en el orden predeterminado de las columnas de la tabla.

Opcionalmente, se puede agregar una lista de las columnas en la cláusula INSERT.

Incluya valores de caracter y fecha dentro de comillas simples.

Inserción de nuevas Filas

Page 9: Curso SQL - Leccion 10

Método implícito: Omita la columna de la lista de columnas.

Método explícito: especifique la palabra clave NULL en la cláusula VALUES.

Inserción de filas con valores NULL

Page 10: Curso SQL - Leccion 10

La función SYSDATE registra la fecha y hora actuales.

Inserción de Valores especiales

Page 11: Curso SQL - Leccion 10

Añadir un nuevo empleado.

Verifique su adición.

Inserción de valores específicos de fecha y hora

Page 12: Curso SQL - Leccion 10

Utilice la variable de sustitución & en una sentencia SQL para solicitar valores.

& es un placeholder (marcador de posición) para el valor de la variable.

Creación de un Script

Page 13: Curso SQL - Leccion 10

Escriba su sentencia INSERT con una subconsulta:

No utilice la cláusula VALUES. Haga coincidir el número de columnas en la

cláusula INSERT para los de la subconsulta. Inserta todas las filas devueltas por la subconsulta

en la tabla sales_reps.

Copiar Filas de otra tabla

Page 14: Curso SQL - Leccion 10

Agregar nuevas filas en una tabla◦Sentencia INSERT

Cambiar datos en una tabla◦Sentencia UPDATE

Eliminar filas de una tabla:◦sentencia DELETE◦sentencia TRUNCATE

Control de las transacciones de base de datos utilizando COMMIT, ROLLBACK, y SAVEPOINT

Visión de consistencia Cláusula FOR UPDATE en una sentencia SELECT

Agenda

Page 15: Curso SQL - Leccion 10

Cambio de datos en una tabla

Page 16: Curso SQL - Leccion 10

Modificar los valores existentes en una tabla con la actualización declaración:

Actualización de más de una fila a la vez (si es necesario).

Sintaxis sentencia UPDATE

Page 17: Curso SQL - Leccion 10

Los valores de una fila o filas específicas son modificadas si especificar la cláusula WHERE:

Los valores de todas las filas de la tabla se modifican si se omite la cláusula WHERE:

Especificar set column_name = NULL para actualizar una columna valor a NULL.

Actualización de filas en una tabla

Page 18: Curso SQL - Leccion 10

Actualizar al empleado con Job 11 y actualizar el salario y el job con lo que posee e empleado 205

Actualización de dos columnas con una subconsulta

Page 19: Curso SQL - Leccion 10

Utilice las subconsultas en las sentencias UPDATE para actualizar la fila valores en una tabla basada en los valores de otra tabla:

Actualización de filas basándose en otra Tabla

Page 20: Curso SQL - Leccion 10

Agregar nuevas filas en una tabla◦Sentencia INSERT

Cambiar datos en una tabla◦Sentencia UPDATE

Eliminar filas de una tabla:◦sentencia DELETE◦sentencia TRUNCATE

Control de las transacciones de base de datos utilizando COMMIT, ROLLBACK, y SAVEPOINT

Visión de consistencia Cláusula FOR UPDATE en una sentencia SELECT

Agenda

Page 21: Curso SQL - Leccion 10

Remover una fila de una tabla

Page 22: Curso SQL - Leccion 10

Se puede eliminar filas existentes de una tabla utilizando la sentencia DELETE:

Sentencia DELETE

Page 23: Curso SQL - Leccion 10

Filas específicas se eliminan si se especifica la cláusula WHERE:

Se eliminan todas las filas de la tabla si se omite el WHERE cláusula:

Eliminación de filas de una tabla

Page 24: Curso SQL - Leccion 10

Utilice las subconsultas en las sentencias DELETE para eliminar filas de una tabla basada en los valores de otra tabla:

Borrar registros Basados en otra Tabla

Page 25: Curso SQL - Leccion 10

Elimina todas las filas de una tabla, dejando la tabla vacía y la estructura de la tabla intacta

Es una declaración de lenguaje de definición de datos (DDL) en lugar de una Instrucción DML; no puede ser fácilmente deshecho

Sintaxis:

 Ejemplo:

Sentencia TRUNCATE

Page 26: Curso SQL - Leccion 10

Agregar nuevas filas en una tabla◦Sentencia INSERT

Cambiar datos en una tabla◦Sentencia UPDATE

Eliminar filas de una tabla:◦sentencia DELETE◦sentencia TRUNCATE

Control de las transacciones de base de datos utilizando COMMIT, ROLLBACK, y SAVEPOINT

Visión de consistencia Cláusula FOR UPDATE en una sentencia SELECT

Agenda

Page 27: Curso SQL - Leccion 10

Una transacción de base de datos consta de una de la siguientes: Una instrucción DML que constituyen un

cambio consistente para los datos Una instrucción DDL Una declaración de lenguaje de control de

datos (DCL)

Transacciones de bases de datos

Page 28: Curso SQL - Leccion 10

Comienza cuando se ejecuta la primera instrucción DML SQL.

Terminar con uno de los siguientes eventos:◦ Cuando se emite sentencia Un COMMIT o

ROLLBACK.◦ Cuando se ejecuta una sentencia DDL o DCL

(commit automática).◦ El usuario sale SQL Developer o SQL * Plus.◦ El sistema se bloquea.

Las transacciones de bases de datos: Inicio y Fin

Page 29: Curso SQL - Leccion 10

Con declaraciones COMMIT y ROLLBACK, se puede:

Garantizar la coherencia de los datos Pre visualizar los cambios antes que los

mismos sean efectivos Operaciones en grupo lógicamente

relacionados

Ventajas de las declaraciones COMMIT y ROLLBACK

Page 30: Curso SQL - Leccion 10

Sentencias de control de transacción explícita

Page 31: Curso SQL - Leccion 10

Crear un marcador en la transacción actual mediante el Sentencia SAVEPOINT.

Revertir a ese marcador utilizando la sentencia ROLLBACK TO SAVEPOINT.

Deshaciendo cambios en un marcador

Page 32: Curso SQL - Leccion 10

Un COMMIT automático se produce en la siguiente

circunstancias:◦ Una declaración emitida DDL◦ Una declaración emitida DCL◦ La salida normal de SQL Developer o SQL * Plus,

sin escribir explícitamente COMMIT o ROLLBACK Una reversión automática se produce

cuando hay un anormal terminación de SQL Developer o SQL * Plus o el sistema falló.

Procesamiento de Transacciones implícita

Page 33: Curso SQL - Leccion 10

El estado anterior de los datos se puede recuperar.

El usuario actual puede revisar los resultados de las operaciones DLM mediante el uso de la instrucción SELECT.

Otros usuarios no pueden ver los resultados de las sentencias DML emitido por el usuario actual.

Las filas afectadas están bloqueados; otros usuarios no pueden cambiar los datos en las filas afectadas.

Estado de los datos antes de COMMIT o ROLLBACK

Page 34: Curso SQL - Leccion 10

Los cambios en los datos se guardan en la base de datos.

El estado anterior de los datos se sobrescribe.

Todos los usuarios pueden ver los resultados. El bloqueos en las filas afectadas son

liberados; esas filas están disponible para otros usuarios manipular.

Todos los puntos de savepoints se borran.

Estado de los datos después de un COMMIT

Page 35: Curso SQL - Leccion 10

Realizar los cambios:

Confirmar los cambios:

«Commiteando» Datos

Page 36: Curso SQL - Leccion 10

Deseche todos los cambios pendientes utilizando la declaración ROLLBACK:

Se deshacen los cambios en los datos. El estado anterior de los datos ha sido restaurado. Los bloqueos en las filas afectadas son liberados.

Estado de los datos después de ROLLBACK

Page 37: Curso SQL - Leccion 10

Estado de los datos después de ROLLBACK: Ejemplo

Page 38: Curso SQL - Leccion 10

Si una sola instrucción DML falla durante la ejecución, sólo esa declaración se deshace.

El servidor de Oracle implementa un punto de salvaguarda implícita.

Se conservan todos los otros cambios. El usuario debe terminar transacciones

explícitamente por la ejecución de una sentencia COMMIT o ROLLBACK.

Nivel de declaración Rollback

Page 39: Curso SQL - Leccion 10

Agregar nuevas filas en una tabla◦Sentencia INSERT

Cambiar datos en una tabla◦Sentencia UPDATE

Eliminar filas de una tabla:◦sentencia DELETE◦sentencia TRUNCATE

Control de las transacciones de base de datos utilizando COMMIT, ROLLBACK, y SAVEPOINT

Visión de consistencia Cláusula FOR UPDATE en una sentencia SELECT

Agenda

Page 40: Curso SQL - Leccion 10

La visión de consistencia garantiza una visión consistente de los datos en todo momento.

Los cambios realizados por un usuario no entren en conflicto con los cambios realizados por otro usuario.

Leer consistencia asegura que, en los mismos datos:◦ Los lectores no esperan a los escritores◦ Los escritores no esperan a los lectores◦ Los escritores esperan escritores

Visión de consistencia

Page 41: Curso SQL - Leccion 10

Implementar Visión de consistencia

Page 42: Curso SQL - Leccion 10

Agregar nuevas filas en una tabla◦Sentencia INSERT

Cambiar datos en una tabla◦Sentencia UPDATE

Eliminar filas de una tabla:◦sentencia DELETE◦sentencia TRUNCATE

Control de las transacciones de base de datos utilizando COMMIT, ROLLBACK, y SAVEPOINT

Visión de consistencia Cláusula FOR UPDATE en una sentencia SELECT

Agenda

Page 43: Curso SQL - Leccion 10

Bloquea las filas de la tabla EMPLEADOS donde job_id es SA_REP.

EL bloqueo se libera sólo cuando se emite un ROLLBACK o un COMMIT.

 Si la sentencia SELECT intenta bloquear una fila que es bloqueado por otro usuario, la base de datos espera hasta que la fila este disponibles, y luego devuelve los resultados de la sentencia SELECT.

Cláusula FOR UPDATE en una instrucción SELECT

Page 44: Curso SQL - Leccion 10

Se puede utilizar la cláusula FOR UPDATE en una declaración SELECT en contra de varias tablas.

Las filas de los empleados y las tablas DEPARTAMENTS están bloqueadas.

Utiliza FOR UPDATE DE column_name para calificar la columna tiene la intención de cambiar, entonces sólo las filas de esa específica tabla están bloqueados.

Cláusula FOR UPDATE: Ejemplos

Page 45: Curso SQL - Leccion 10

Las siguientes declaraciones producen los mismos resultados:

a. Verdadero b. Falso

Examen

Page 46: Curso SQL - Leccion 10

En esta lección, debe haber aprendido a utilizar el siguientes declaraciones:

Resumen

Page 47: Curso SQL - Leccion 10

Esta práctica se abordan los siguientes temas: Inserción de filas en las tablas Actualizar y suprimir filas de la tabla El control de las transacciones

Práctica 10: Información general

Page 48: Curso SQL - Leccion 10

¿Preguntas?

Page 49: Curso SQL - Leccion 10

Emmanuel OrtizConsultor [email protected]  / gtalkemmanueltizSkype