Fichas
9 Manipuling Data
Fichas del conjunto (21)
- 1Un DML es ejecutado cuando agrega, modifica y remueve registris de una tabla. Una transaccion consiste de una coleccion de de DML que forman una unidad logica de trabajo.Para la insercion de registros se especifica la tabla y entre parentesis las columnas, luego la clausula values donde se colocaran los valores de cada columna respectivamente.
- 2Insercion de valores nulos, dos formas , la implicita que omite el valor de la columna y la explicita que colocamos entre los valores la clave null sin comillasErrores comunes en la insercion de registros es:
columnas not null
duplicado de valores que violan constraint
cualquier check constraint
Referencial INtegridad. FK
tipos de datos incorrectos
Se recomienda usar la lista de columnas para hacer mas claro el insert. - 3Se permite hacer inserciones de valores de funciones. Para insertar fechas diferentes al formato default se debe usar la funcion to_date().Es posible insertar varios registris con la misma sentencia, a
- 4insertar registros provemientes de otra table es posible si usar la clausa values , la cantidad de columna debe hacer match con la tabla destino y los registros retonado provienen de un query , es decir en lugar de colocar los valores se coloca un subquery.UPDATE table
SET column = value [, column = value, ...]
[WHERE condition]; - 5Specify SET column_name= NULL to update a column value to NULL.Updating Two Columns with a Subquery
UPDATE table
SET column =
(SELECT column
FROM table
WHERE condition)
[ ,
column =
(SELECT column
FROM table
WHERE condition)]
[WHERE condition ] ; - 6Updating Rows Based on Another Table You can use the subqueries in the UPDATE statements to update values in a table.UPDATE copy_emp
SET department_id = (SELECT department_id
FROM employees
WHERE employee_id = 100)
WHERE job_id = (SELECT job_id
FROM employees
WHERE employee_id = 200); - 7Use the subqueries in the DELETE statements to remove rows from a table based on values from another table:DELETE FROM employees
WHERE department_id =
(SELECT department_id
FROM departments
WHERE department_name
LIKE '%Public%'); - 8The TRUNCATE statement is a data definition language (DDL) statement and generates no rollback information.If the table is the parent of a referential integrity constraint, you cannot truncate the table. You need
to disable the constraint before issuing the TRUNCATE statement. - 9A database transaction consists of one of the following: • DML statements that constitute one consistent change to the data • One DDL statement • One data control language (DCL) statementTransaction Types
Data manipulation language DML)
Consists of any number of DML statements that the Oracle
server treats as a single entity or a logical unit of work - 10Data definition language (DDL)¨: Consists of only one DDL statementData control language
(DCL): Consists of only one DCL statement - 11Database transactions: Una transaccion comienza con el primer DML que es ejecutado. Termina: luego de un commit o rollback, un DDL, o DCL ejecuta un automatic commit, un ddl /dcl (genera un autocommit, se cae el sistema, el usuario de sale de sqllusLuego de que una transaccion termina el proximo sql genera una nueva transaccion .
- 12Con el commit o rollback se pude tener control sobre la transaccion sobre los cambios que sera permanentes en la BDRollback Marker
Es posible crear un marcador a la actual transaccion usando el savepoint que divide la transaccion een pequeñas secciones, si crea un nuevo marcador con el mismo nombre anterioir esta sera sobreescrito. - 13Implicit Transaction Processing Los commit automatico ocurren con DDL, DCL y exit de sql o sql developer, Un rollback automatico ocurre en una anormal salida de sql o sqlDev. o falla del sistema.DML is committed on a normal exit from SQL
Developer only if you have the Autocommit preference enabled. - 14System Failures When a transaction is interrupted by a system failure, the entire transaction is automatically rolled back.Estado de la data antes del commit o rollback:
La operacion del dml afecta solo el db buffer, el previo estado pude recuperarse.
el usuario actual puede ver las operaciones consultando las tablas.
otros usuario no pueden ver la dara.
oracle mantienen una lectura consistente.
Los registris afectados son bloquedos y otros usuarios no pueden alterarlos, - 15El estadode los datos despues de l commit: La data es salvada en la BD. el previo estado de los datos es sobre escrito todos los usuarios puedenver los datos. los lock son liberados. todos los savepoins son liberados.Estado despues del rollback:
los cambios son reversados.
el estado anterior de los datos es restaurado.
los locks de los registros son liberados. - 16The Oracle server issues an implicit commit before and after any DDL statement. So, even if your DDL statement does not execute successfully, you cannot roll back the previous statement because the server issued a commitRead consistency:
Garantiza una vista de la data en todo momento.
los cambios hechos no tienen conflictos con los cambios hechos por otros usuarios.
Asegura que los lectores no esperen por los writers , writers no esperen por los readers y writers no esperen por writers. - 17The purpose of read consistency is to ensure that each user sees data as it existed at the last commit, before a DML operation startedNote: The same user can log in to different sessions. Each session maintains read consistency in the
manner described above, even if they are the same users - 18La read consisteny es una implementacion automatica, esta mantiene una copia de la BD en el undoCuando un insert,delete o update es hecho oracle coloca una copia en el undo, todos los lectores ven la data desde el undo excepto el usuario que hizo el cambio que ve las alteraciones a los datos, los demas usuarios ven un snaphot del undo segment
- 19When you issue a SELECT...FOR UPDATE statement, the relational database management system (RDBMS) automatically obtains exclusive row-level locks on all the rows No one else will be able to change any of these records until you perform a ROLLBACK or a COMMIT.NOWAIT to the FOR UPDATE clause to tell the Oracle server
not to wait if the table has been locked by another user. In this case, control will be returned
immediately to your program - 20You can use the FOR UPDATE clause in a SELECT statement against multiple tablesYou can use the FOR UPDATE OF column_name to qualify the column that you intend to change.
The OF list of the FOR UPDATE clause does not restrict you to changing only those columns of the
selected rows. Locks are still placed on all rows; - 21if you simply state FOR UPDATE in the query and do not include one or more columns after the OF keyword, the database will lock all identified rows across all the tables listed in the FROM clause.In the following example, the database is instructed to wait for five seconds for the row to become
available, and then return control to you.
SELECT employee_id, salary, commission_pct, job_id
FROM employees
WHERE job_id = 'SA_REP'
FOR UPDATE WAIT 5
ORDER BY employee_id;
Información
- Descripción
- Fichas sobre 9 Manipuling Data, creado por jose Antonio el 18/04/2017.
- Creado por
- jose Antonio
- Visitas
- 0
- Etiquetas
- Valoración