Data Manipulation Language (DML) Lenguaje de Manipulación de Datos
description
Transcript of Data Manipulation Language (DML) Lenguaje de Manipulación de Datos
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
AgregarAgregar 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, direccionFROM GENTEwhere edad>15;
• Si se van a copiar TODASINSERT INTO ALUMNOSELECT *FROM GENTE
Actualizar: Cambiar datos en una tabla
UPDATE requi SET cantidad = 3, precio = 1200 WHERE depto=1;Actualizar filas basado en otra tablaUPDATE copiaEmpleadoSET id_dep = (SELECT id_dep FROM empleado WHERE id_emp=10)WHERE id_trab =20
Borrar filas de una tabla• DELETE FROM deptoWHERE nombre_depto=‘Academico’;
Basado en otra tablaDELETE FROM empleadoWHERE id_dep =(SELECT id_dep
FROM departamento WHERE nombre_dep=´Sistemas’)
Consultas SQL• Muestra información seleccionada de una base de datos empleando lenguaje SQL.
• Una consulta SQL básica puede constar con un máximo de seis cláusulas, de las cuales sólo dos son obligatorias (SELECT y FROM). Las cláusulas se especifican en el siguiente orden:
SELECT < lista de atributos > : indica qué atributos o funciones se van a recuperar.
FROM < lista de tablas > : especifica todas las relaciones (tablas) que se necesitan en la consulta.
WHERE < condición > : especifica las condiciones, si es que hacen falta, para seleccionar tuplas de esas relaciones, incluyendo las condiciones de reunión.
GROUP BY < atributo(s) de agrupación > : especifica atributos de agrupación.
HAVING < condición de agrupación > : especifica una condición que deben cumplir los grupos seleccionados, no las tuplas individuales. Las funciones agregadas integradas COUNT, SUM, MIN, MAX y AVG se usan junto con la agrupación.
ORDER BY < lista de atributos > : especifica un orden para presentar el resultado de una consulta.
SELECT id_car FROM cargo WHERE nombre=´Docente’
Consultas
• Obtener una lista de empleados y de los proyectos en los que trabajan
• Ordenados por departamento y, dentro de cada departamento, alfabéticamente por apellido y nombre
SELECT nombred, apellido, nombre, nombrepFROM departamento, empleado, trabaja_en, proyectoWHERE numerod=nd and nss=nsse and np=numeropORDER BY nombred desc, apellido, nombre
Consultas• SELECT ponente, titulo, count( * )
FROM conferenciasWHERE precio =200GROUP BY ponente
• SELECT Avg( precio ) AS PromedioFROM conferenciasWHERE precio >100
• SELECT Ponente, Avg( precio_estudiante ) AS Promedio, min( precio ) AS MayorFROM conferenciasWHERE precio >100ORDER BY ponente