Upload
emmanuel-ortiz-gutierrez
View
53
Download
1
Embed Size (px)
Citation preview
Programación SQL Lección 10
Manipulación de datos
SQL Fundamentals I
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
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
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
Agregar una nueva fila a una tabla
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
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
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
La función SYSDATE registra la fecha y hora actuales.
Inserción de Valores especiales
Añadir un nuevo empleado.
Verifique su adición.
Inserción de valores específicos de fecha y hora
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
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
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
Cambio de datos en una tabla
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
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
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
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
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
Remover una fila de una tabla
Se puede eliminar filas existentes de una tabla utilizando la sentencia DELETE:
Sentencia DELETE
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
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
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
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
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
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
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
Sentencias de control de transacción explícita
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
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
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
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
Realizar los cambios:
Confirmar los cambios:
«Commiteando» Datos
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
Estado de los datos después de ROLLBACK: Ejemplo
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
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
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
Implementar Visión de consistencia
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
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
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
Las siguientes declaraciones producen los mismos resultados:
a. Verdadero b. Falso
Examen
En esta lección, debe haber aprendido a utilizar el siguientes declaraciones:
Resumen
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
¿Preguntas?
Emmanuel OrtizConsultor [email protected] / gtalkemmanueltizSkype