Anda di halaman 1dari 15

DML

MANIPULACION DE DATOS
Lenguaje de Manipulacin de
Datos(DataManipulationLanguage, DML) es un idioma
proporcionado por lossistemas gestores de bases de
datosque permite a los usuarios de la misma llevar a cabo
las tareas de consulta o modificacin de los datos
contenidos en las Bases de Datos del Sistema Gestor de
Bases de Datos. El lenguaje de manipulacin de datos ms
popular hoy da esSQL, usado para recuperar y manipular
datos en unabase de datos relacional. Otros ejemplos de
DML son los usados porbases de
datosIMS/DL1,CODASYLu otras

BASE DE DATOS

DML
MANIPULACION DE DATOS
INSERT
El comando INSERT en SQL es utilizado para agregar
nuevos registros a una tablaexistente. Tomando como
ejemplo latabla
personal", imaginemos que el departamento derecursos
humanos necesita agregar un nuevo empleado a la base de
datos.
Se podra utilizar un comando similar al siguiente:INSERT
INTOpersonal values('Juan','Perez',44333, Q5000)Note que
hay cuatro valores especficospara el registro.
Estos corresponden a los atributos de latabla en el orden
enque fueron definidos: nombre, apellido, empleado id y
salario
2

BASE DE DATOS

Comando UPDATE
UPDATEactualiza columnas de filas
existentes de una tabla con nuevos valores.
La clusulaSETindica las columnas a
modificar y los valores que deben tomar. La
clusulaWHERE, si se da, especifica qu
filas deben ser actualizadas. Si no se
especifica, sern actualizadas todas ellas. Si
se especifica la clusulaORDER BY, las filas
se modificarn en el orden especificado. La
clusulaLIMITestablece un lmite al nmero
de filas que se pueden actualiza
3

BASE DE DATOS

Comando UPDATE
La sentenciaUPDATEsoporta los modificadores
siguientes:
Si se usa la palabraLOW_PRIORITY, la ejecucin
deUPDATEse retrasar hasta que no haya otros clientes
haciendo lecturas de la tabla.
Si se especificaIGNORE, la sentenciaUPDATEno se
abortar si se producen errores durante la actualizacin.
Las filas con conflictos de claves duplicadas no se
actualizarn. Las filas para las que la actualizacin de
columnas se puedan producir errores de conversin se
actualizarn con los valores vlidos ms prximos.
Si se accede a una columna de "tbl_name" en una
expresin,UPDATEusa el valor actual de la columna. Por
ejemplo, la siguiente sentencia asigna a la columna "edad"
su valor actual ms uno:
4
BASE DE DATOS

Comando UPDATE
Las asignacionesUPDATEse evalan de izquierda a
derecha. Por ejemplo, las siguientes sentencias doblan el
valor de la columna "edad", y despus la incrementan:
mysql> UPDATE persondata SET edad=edad*2,
edad=edad+1;
Si se asigna a una columna el valor que tiene actualmente,
MySQL lo notifica y no la actualiza.
Si se actualiza una columna que ha sido declarada
comoNOT NULLcon el valorNULL, se asigna el valor por
defecto apropiado para el tipo de la columna y se
incrementa en contador de avisos. El valor por defecto es 0
para tipos numricos, la cadena vaca ('') para tipos de
cadena, y el valor "cero" para tipos de fecha y tiempo.

BASE DE DATOS

Comando UPDATE
UPDATEdevuelve el nmero de filas que se han
modificado. A partir de la versin 3.22 de MySQL, la funcin
de API Cmysql_infodevuelve el nmero de filas que han
coincidido y actualizado, y el nmero de avisos que se han
obtenido durante la actualizacin.
Desde la versin 3.23 de MySQL, se puede usarLIMIT
row_countpara restringir el rango de actualizacin. La
clusulaLIMITtrabaja del modo siguiente:
Antes de MySQL 4.0.13,LIMITrestringa el nmero de filas
afectadas. La sentencia se detiene tan pronto como de
modifican "row_count" filas que satisfagan la
clusulaWHERE.
Desde 4.0.13,LIMITse restringe al nmero de filas
coincidentes. La sentencia se detiene tan pronto como se
encuentran "row_count" filas que satisfagan la
clusulaWHERE, tanto si se han modificado como si no.
Si se usa una clusulaORDER BY, las filas sern
actualizadas en el orden especificado.ORDER BYest
BASE DE DATOS
disponible desde MySQL 4.0.0. 6

Comando DELETE
Para borrar datos de una tabla, debemos utilizar la
sentenciaDELETE.
La sintaxis de la sentenciaDELETEes la siguiente:
DELETE FROM <nombre_tabla>

[ WHERE <condicion>];

BASE DE DATOS

Comando DELETE
El siguiente ejemplo ilustra el uso de la sentenciaDELETE.
Es buena idea especificar en la sentenciaWHERElos
campos que forman la clave primaria de la tabla para
evitar borrar datos que noqueramos eliminar.
DELETE FROM tCoches
WHERE marca = 'SEAT';La sintaxis de DELETE varia en
Access, siendo necesario el uso del comodn *. DELETE *
FROM <tCoches>

BASE DE DATOS

Comando DELETE
Cuando trabajemos con la sentenciaDELETEdebemos
tener en cuenta las siguientes consideraciones:
Solo podemos borrar datos de una nica tabla.
Cuando borramos datos de una vista, los estamos borrando
tambin de la tabla.
Las vistas son solo una forma de ver los datos, no una
copia.
Si intentamos borrar un registro de una tablareferenciada
por unaFOREING KEYcomo tabla maestra, si la
tabladependiente tiene registros relacionados la
sentenciaDELETEfallar.

BASE DE DATOS

TRANSICIONES ROOLBAK
Y COMMIT
En tecnologas de base de datos, unrollbackes una
operacin que devuelve a la base de datos a algn estado
previo. Los Rollbacks son importantes para la integridad de
la base de datos, a causa de que significan que la base de
datos puede ser restaurada a una copia limpia incluso
despus de que se han realizado operaciones erroneas.
Son cruciales para la recuperacin de caidas de un servidor
de base de datos; realizando rollback(devuelto) cualquier
transaccin que estuviera activa en el tiempo del crash, la
base de datos es restaurada a un estado consistente.

10

BASE DE DATOS

TRANSICIONES ROOLBAK
Y COMMIT
En SQL, ROLLBACK es un comando que causa que todos los
cambios de datos desde la ltima sentenciaBEGIN WORK,
oSTART TRANSACTIONsean descartados por el sistema
de gestin de base de datos relacional (RDBMS).
Una sentencia ROLLBACK tambin publicar
cualquiersavepointexistente.
En muchos dialectos de SQL, ROLLBACKs son especficos
de la conexin.
Esto significa que si se hicieron dos conexiones a la misma
base de datos, un ROLLBACK hecho sobre una conexin no
afectar a cualesquiera otras conexiones. Esto es vital para
el buen funcionamiento de la
Concurrencia.

11

BASE DE DATOS

TRANSICIONES ROOLBAK
Y COMMIT
La funcionalidad de rollback est normalmente
implementada con un Log de transacciones, pero puede
tambin estar implementada mediante control de
concurrencia multiversin.
COMMIT
Marca el final de una transaccin correcta, implcita o
explcita

12

BASE DE DATOS

TRANSICIONES
SAVEPOINT
nsavepoint(en espaol,punto de recuperacin) es una
forma de implementar subtransacciones (tambin
conocidas como transacciones anidadas) dentro de
unsistema gestor de base de datos relacionalindicando un
punto dentro de unatransaccinde base de datos que
puede ser "rolled back" (devuelta) sin afectar a cualquier
trabajo realizado en la transaccin antes de que el punto
de recuperacin fuera creado. Varios savepoints pueden
existir dentro de una transaccin individual. Los Savepoints
son tiles para implementar recuperacin de errores
complejos en aplicaciones de base de datos si ocurre un
error en el medio de una transaccin de mltiples
sentencias, la aplicacin puede ser capaz de recuperarse
del error (devolviendo, "roll back", hasta un savepoint) sin
necesidad de abortar la transaccin completa.

13

BASE DE DATOS

TRANSICIONES
SAVEPOINT
Un savepoint puede estar declarado emitiendo una
sentenciaSAVEPOINTname. Todos los cambios realizados
despus de un savepoint han sido declarados que pueden
ser deshechos emitiendo un comandoROLLBACK TO
SAVEPOINTnamecommand. EmitiendoRELEASE
SAVEPOINTnamecausar que el savepoint concreto sea
descartado, pero no afectar a nada ms.
Emitiendo los comandosROLLBACKoCOMMITtambin
descartar cualesquiera savepoints creados desde el inicio
de la transaccin principal.
Savepoints son soportados de alguna u otra forma en
sistemas de bases de datos tales
comoPostgreSQL,Oracle,Microsoft SQL
Server,MySQL,DB2, yFirebird. Los Savepoints estn
tambin definidos en el estndard SQL.

14

BASE DE DATOS

Anda mungkin juga menyukai