Download Data Manipulation Language (DML) Lenguaje de Manipulación de
Document related concepts
Transcript
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