110 likes | 267 Views
Data Manipulation Language (DML) Lenguaje de Manipulación de Datos. Unidad 3. Transacciones de la Base de datos.
E N D
Data ManipulationLanguage (DML) Lenguaje de Manipulación de Datos Unidad 3
Transacciones de la Base de datos • Proporcionan mayor flexibilidad y controlcuando 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; Actualizarfilasbasado en otratabla 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 > : 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, nombrep FROM departamento, empleado, trabaja_en, proyecto WHERE numerod=nd and nss=nsse and np=numerop ORDER BY nombreddesc, apellido, nombre
Consultas • SELECT ponente, titulo, count( * ) FROM conferenciasWHERE precio =200GROUP BY ponente • SELECTAvg( precio ) AS PromedioFROM conferenciasWHERE precio >100 • SELECT Ponente, Avg( precio_estudiante ) AS Promedio, min( precio ) AS MayorFROM conferenciasWHERE precio >100ORDER BY ponente