Taller de Bd

29
UNIDAD III.- enguaje de Manipulación de Dato (DML)

Transcript of Taller de Bd

Presentacin de PowerPoint

UNIDAD III.-Lenguaje de Manipulacin de Datos(DML)Un Lenguaje de Manipulacin de Datos (Data Manipulation Language, DML)es un lenguaje proporcionado por el sistema de gestin de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o manipulacin de losdatos, organizados por el modelo dedatos adecuado.3.1.- Insercin, eliminacin y modificacin de registros3.2 Consulta de Registros3.2.1.- Recuperacin de datos 3.2.2. Restriccin y ordenacin de datos3.2.3 Informes de datos agregados mediante funciones de grupo3.2.4.- Visualizacin de datos de varias tablas3.2.5 Subconsultas3.2.6. Operadores Set

Las sentencias DML permiten generar consultas para ordenar, insertar, actualizar, filtrar, agrupar y extraer datos de la base de datos.

Comandos DMLClausulas DMLSelect: Consultar registros From: Especifica tablasInsert: Cargar registrosWhere: Especifica condicionesUpdate: Modifica valores Group By: Separacin por grupoDelete: Eliminar registros Having: Condicin sobre gruposOrder By: Ordena registros

Operadores lgicos DMLOperadores de comparacin DMLAnd: Es el y lgicoBetween: Intervalos de valoresOr: Es el o lgicoLike: Comparacin de patronesNot: es la negacin lgica In: Especifica registros< menor que, > mayor que, diferente, = igual, =mayor o igual

EMPLOYEE_IDLAST_NAMEJOB_IDDEPARTMENT_IDHIRE_DATE100KINGAD_PRES9017-JUN-87101KOCHHARAD_VP9021-SEP-89102DE HAANAD_VP9025-MAY-94103HONOLDIT_PROG6003-JAN-90104ERNSTIT_PROG6021-MAY-91107LORENTZIT_PROG6023-JUN-92124MOURGOSST_MAN2025-SEP-93128WHALENAS_ASST1017-SEP-87SALARY300015001500350035003500280029003.2 Recuperacin de datosUna consulta es una sentencia que solicita la recuperacin de informacin. El trozo de un DML que implica recuperacin de informacin se llama lenguaje de consultas.Consultas bsicas

La sintaxis bsica de una consulta de seleccin es la siguiente:SelectCamposFromTabla;En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos.Listar cadanombre-sucursaluna vez por cada tupla en la que aparece en la relacindepsito el resultado que nos arroja dicha consulta es el siguiente:

Consultas con predicadoEl predicado se incluye entre la clusula y el primer nombre del campo a recuperar, los posibles predicados son:

En aquellos casos en los que queremos forzar la eliminacin de duplicados, insertamos la palabra clavedistinctdespus deselect.

Distinctomite los registros que contienen datos duplicados en los campos seleccionados. Para que los valores de cada campo listado en la instruccinSelectse incluyan en la consulta deben ser nicos.

select distinctnombre-sucursalfromdepsitoLa consulta anterior se realiza si se desean eliminar duplicados, como se muestra en el siguiente resultado:

SQL permite el uso de la palabra claveallpara especificar explcitamente que no se eliminan los duplicados.select allnombre-sucursalfromdepsitoEl resultado siguiente nos muestra que no existe diferencia entre la primera consulta que arroja todos los resultados, y la consulta que permite el uso deall

3.2.2 Restriccin y ordenacin de datosRESTRICCION

Restrinja las filas que se devuelven mediante la clausula WHERE:

LA CONDICION WHERE SIGUE A LA CLAUSULA FROM.

EJEMPLO:ORDER BY

Estas clausula permite ordenar el resultado de la consulta, definiendo el orden en que se presentan las columnas que se desean proyectar, se pueden presentar en orden ascendente y descendente. Ordenar datosUSO DE LA CLAUSULA ORDER BY

Para ordenar las filas utilice la clausula Order By:-ASC: Orden ascendente por defecto-DES: Orden descendente

La clausula Orden By se coloca al final de la sentencia Select:

EJEMPLO:

SELECT last_name, job_id, department_id, hire_dateWHERE employeesORDER BY hire_date;

Existen funciones de agregacin, existe la posibilidad de calcular funciones de tuplas usando la clausula Group by:

AVG = PromedioMIN = MinimoMAX =MaximoSUM = Total COUNT = ContarInformes de datos agregados mediante funciones de grupoAVG: Calcula la media aritmtica de un conjunto de valores contenidos en un campo especificado de consulta.Sintaxis: Avg (exp)

Exp: representa el campo que contiene los datos numricos.

selectnombre-sucursal,avg(saldo)fromdepsitogroup bynombre-sucursalEl resultado de la consulta anterior es:

COUNT: Calcula el numero de registros devueltos por una consulta: Count simplemente cuenta el nmero de registros sin tener en cuenta qu valores se almacenan en los registros.La funcin Count no cuenta los registros que tienen campos null a menos que expr sea el carcter comodn asterisco (*). La funcin de agregacincountse usa frecuentemente para contar el nmero de tuplas en una relacin. La notacion escount(*).Asi para se tiene:

Max. MinDevuelven el mnimo o el mximo de un conjunto de valores contenidos en un campo especifico de una consulta. Su sintaxis es:Min(expr)Max(expr)En donde expr es el campo sobre el que se desea realizar el clculo. Expr pueden incluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no otras de las funciones agregadas de SQL).SumDevuelve la suma del conjunto de valores contenido en un campo especifico de una consulta. Su sintaxis es: Sum(expr)En donde expr respresenta el nombre del campo que contiene los datos que desean sumarse o una expresin que realiza un clculo utilizando los datos de dichos campos.Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no otras de las funciones agregadas de SQL). Ejemplo:

select sum (cantidad)fromprstamoVisualizacin de datos de varias tablasJOIN- REUNIONES COMBINACIONES

Un JOIN es el resultado de una operacin de combinacin o producto cruz realizada con dos o mas tablas que cumplen una condicin.-Se pueden realizar varios JOINs de tablas:-Combinaciones internas los cuales se conocen como join o inner join-Externa completa (full outer), Externa por la izquierda (left outer), Externa por la derecha (right outer)-Cruzada (cross) conocida como produto cartesiano.

Con JOIN podemos leer diferentes tablas en una nica consulta lo que permite disear tablas relacionadas entre ellas. http://www.mundoracle.com/join.html?Pg=sql_plsql_5.htm

La primer tabla contiene clientes y telfonos y la segunda la tenencia de acciones de los clientes.Las dos tablas contienen el campo cid (client id) que es el que nos permitir realizar coincidencias entre ambas tablas con join.Hay clientes que no tienen acciones (jose) y otros que tienen ms de una especie (jesus).El ultimo registro de la tabla acciones (aid=4) tiene un cid 5, si miramos la tabla cliente, no exsite un cliente con cid=5.

El JOIN nos permitir obtener un listado de los campos que tienen coincidencias en ambas tablas.Nos dara un lista de los clientes que tienen acciones.

http://ariel.esdebian.org/27200/sql-join-basicoSubconsultasUnasubconsulta es una sentencia SELECT que aparece dentro de otra sentenciaSELECTque llamaremosconsulta principal.

Se puede encontraren la lista de seleccin,en la clusula WHEREoen la clusula HAVINGde la consulta principal.Una subconsulta tiene la misma sintaxis que una sentencia SELECT normal exceptuando que apareceencerrada entre parntesis, no puede contener la clusulaORDER BY, ni puede ser laUNIONde varias sentenciasSELECT, adems tiene algunas restricciones en cuanto a nmero de columnas segn el lugar donde aparece en la consulta principal. Estas restricciones las iremos describiendo en cada caso.select distinctnombre clientefromprestamowherenombre-sucursal = perryridgeandnombre-clientein(selectnombre-clientefromdepositowherenombre-sucursal = perryridge)

Operadores Set

Operador Unin El operador UNION devuelve resultados de ambas consultas despus de eliminar los duplicados.

Uso del Operador UNIONMuestre los detalles del puesto actual y anterior de todos los empleados, muestre cada empleado solo una vez.

Operador all

El operador UNION ALL devuelve los resultados de ambas consultas, incluidos todos los duplicados. Muestre el departamento actual y los anteriores de todos los empleados.