Data Manipulation Language (DML) Lenguaje de Manipulación de Datos Unidad 3
Transacciones de la Base de datos Proporcionan mayor flexibilidad y control cuando los datos cambian y ello asegura la consistencia de los datos en el caso de un fallo en el proceso del usuario o del sistema. Las transacciones consisten de sentencias DML que componen un cambio consistente en los datos.
DML Se utiliza para: Agregar, actualizar o eliminar datos de una base de datos. Cuando algo impide que una de las sentencias en la transacción sea ejecutada, las otras sentencias de la transacción pueden ser desechadas.
Errores comunes al insertar datos • Olvidar valores obligatorios para columnas que no aceptan valores nulos • Duplicar valores violando reglas de valores únicos • Infringir reglas de integridad de llaves foráneas • Romper reglas de integridad de tipo CHECK o verificación • Incompatibilidad en tipos de datos • Valores más grandes que los especificados para la columna
Agregar Agregar una fila (registro) a una tabla: INSERT INTO table [(column [, column …])] VALUES (value [, value….]); Ejemplo: INSERT INTO agenda(id_ag, nombre, direccion); VALUES (34, Luis Alejandro, 7 Sur 234); INSERT INTO `biblio`.`libros` (`id_l` ,`titulo` ,`autor` ,`editorial` , `seccion` ) VALUES ('1', 'Cálculo Integral', 'Leithold', 'Mc Graw Hill', 'Matemáticas'), ('2', 'Algebra', 'Baldor', 'Prentice Hall', 'Matemáticas');
Copiar filas de otras tablas Se copian los datos de una tabla existente utilizando una subconsulta INSERT INTO ALUMNO(id_al, nombre, direccion) SELECT id_g, nombre, direccion FROM GENTE where edad>15; Si se van a copiar TODAS INSERT INTO ALUMNO SELECT *
Actualizar: Cambiar datos en una tabla UPDATE requi SET cantidad = 3, precio = 1200 WHERE depto=1; Actualizar filas basado en otra tabla UPDATE copiaEmpleado SET id_dep = (SELECT id_dep FROM empleado WHERE id_emp=10) WHERE id_trab =20
Borrar filas de una tabla DELETE FROM depto WHERE nombre_depto=‘Academico’; Basado en otra tabla DELETE FROM empleado WHERE id_dep =(SELECT id_dep FROM departamento WHERE nombre_dep=´Sistemas’