Data Manipulation Language (DML) Lenguaje de Manipulación de

Download Report

Transcript Data Manipulation Language (DML) Lenguaje de Manipulación de

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 *
FROM GENTE
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’)
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 > :
SELECT id_car
FROM cargo
WHERE nombre=´Docente’
especifica un orden para presentar el resultado de una consulta.
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, nombrep
FROM departamento, empleado, trabaja_en, proyecto
WHERE numerod=nd and nss=nsse and np=numerop
ORDER BY nombred desc, apellido, nombre
Consultas
• SELECT ponente, titulo, count( * )
FROM conferencias
WHERE precio =200
GROUP BY ponente
• SELECT Avg( precio ) AS Promedio
FROM conferencias
WHERE precio >100
• SELECT Ponente, Avg( precio_estudiante ) AS Promedio, min( precio
) AS Mayor
FROM conferencias
WHERE precio >100
ORDER BY ponente