Sei sulla pagina 1di 6

denisseyurem@gmail.

com

http://www.keek.com/DenisseYuremO

SQL DML Data Manipulation Language


http://en.wikipedia.org/wiki/Data_Manipulation_Language JOS CUARTAS BASES DE DATOS

Definamos los trminos: DML= Leguaje de manipulacin de datos. Las sentecias DML permiten generar consultas para ordenar, insertar, actulalizar, filtrar, agrupar y extraer datos de la base de datos Comandos DML Clusulas DMLSELECT= Consultar registros FROM= Especifica tablasINSERT = Carga registros WHERE= Especifica condicionesUPDATE= Modifica valores GROUP BY= separacin por grupoDELETE= Eliminar registros HAVING = Condicin sobre grupos ORDER BY = Ordena registros Operadores lgicos DML Operadores de comparacin DMLAND = Es el y lgico BETWEEN= intervalos de valoresOR = Es el o lgico LIKE= Comparacin de patronesNOT = Negacin lgica IN= especifica registros < menor que, > mayor que, <> diferente, = igual,<= menor i igual, >= mayor o igual JOS CUARTAS BASES DE DATOS Como modificamos los datos en la base de datos:INSERTARProporciona una lista de valores de atributos para una nuevatupla t que se han de insertar en una relacin R.La operacin insertar puede violar las restricciones de integridad, por ejemplo: El atributo no aparece en el dominio. El atributo clave primaria ya esta en el dominio. La clave primaria es nula = null. La clave externa o fornea(FK) se inserta en una tabla sin que exista en la tabla donde es clave primaria. JOS CUARTAS BASES DE DATOS Apliquemos SQL Nuevos datos INSERT Se puede insertar nuevas tuplas o filas en una tabla con la instruccin INSERT INTO Ejemplos Crear la tabla productos basada en la siguiente estructura: producto (id_producto: integer, nombre: text, precio: integer). Para adicionar una nueva fila (sintaxis principales) INSERT INTO producto VALUES (1, Moscato, 10500); Esta forma genera un error, si no se dan un valor por cada columna. Otra forma adicionar una nueva fila INSERT INTO producto (id_producto, nombre) VALUES (2, Oporto); Esta forma como mnimo debe contener las columnas de clave primaria y columnas nicas (UNIQUE) que no son auto incrementadas o las columnas que no tienen un valor por defecto y a su vez no permitan nulos. JOS CUARTAS BASES DE DATOS Como modificamos los datos en la base de datos:MODIFICAR conocido como UPDATE Sirve para cambiar los valores de uno o mas atributos en una tupla o tuplas de una relacin. La operacin modificar puede provocar violaciones de

restriccin, cuando se modifica un valor de clave primaria o clave externa. Opciones para evitar la violacin de integridad: 1. Rechazar la actualizacin. 2. Propagar la actualizacin, actualizando las tuplas que hagan referencia a la tupla que se desea eliminar. 3. Modificar los valores del atributo de referencia que provoca la violacin. JOS CUARTAS BASES DE DATOS Apliquemos SQL Actualiza los datos UPDATE Se puede insertar nuevas tuplas o filas en una tabla con la instruccin UPDATE Ejemplos Crear la tabla productos_temporales basada en la siguiente estructura: productos_temporales (id_producto: integer, nombre: text, precio: integer). Para actualizar una columna de una fila (sintaxis principales) UPDATE producto SET precio = 25450 WHERE nombre = Oporto; Recuerde sino se identifica las filas que se desean actualizar con la clusula WHERE ,ocurre una actualizacin de todas las filas de la tabla. Otra forma actualizar mltiples columnas de una o varias filas. UPDATE producto SET precio = 23000, nombre = Vino Oporto WHERE nombre = Oporto; Las actualizaciones dependen de la condicin dada para WHERE en la clausula UPTADE. JOS CUARTAS BASES DE DATOS Como modificamos los datos en la base de datos:ELIMINACIN Sirve para eliminar todos los valores de los atributos de una Tupla o de varias tuplas, en forma coloquial elimina una o varias filas segun sea el caso. La operacin eliminacin puede provocar violaciones de integridad referencial, si las claves fornea de otras filas de la base de datos hacen referencia a la tupla que se ha de eliminar. Opciones para evitar la violacin de integridad: 1. Rechazar la eliminacin. 2. Propagar la eliminacin eliminando las tuplas que hagan referencia a la tupla que se desea eliminar. 3. Modificar los valores del atributo de referencia que provoca la violacin. JOS CUARTAS BASES DE DATOS Apliquemos SQL Eliminacin de filas DELETE Se puede remover filas en una tabla con la instruccin DELETE Para eliminar filas en una tabla con una condicin (sintaxis principales) DELETE FROM producto WHERE precio = 25450 ; Recuerde esto elimina todas las filas que cumplan la condicin donde(WHERE) el precio es igual a 25450. Si se desea eliminar toda s las filas de una tabla pero dejar su estructura se ejecuta el siguiente comando DELETE FROM producto Recuerde si se desea eliminar la tabla y su estructura se utiliza la sentencia DROP. DROP TABLE productos; JOS CUARTAS BASES DE DATOS Como consultamos los datos en la base de datos:SELECT La instruccin SELECT se utiliza principalmente para la recuperacin de datos especficos de una Tabla o Vista. La estrategia es intentar construir las instrucciones SELECT de la forma ms sencilla posible, para recuperar los datos necesarios. Es la analoga

al operador proyectar en el algebra relacional. Nomenclatura bsica: SELECT nombre_de_columnas los nombres de las columnas que se FROM tabla_a_la_que_se_consulta mostraran en el SELECT, son separados por una coma.Se colocan el nombre de la tabla o secolocan los nombres de varias tablasen caso de realizar una operacin En SQL se utiliza el comodn * paraproducto cruz listar todos los campos de una tabla. JOS CUARTAS BASES DE DATOS Como modificamos los datos en la base de datos:WHERE Especifica una condicin que debe cumplirse para que los datos sean devueltos por la consulta. Admite los operadores lgicos AND y OR y operadores de comparacin, esta . La clusula WHERE es la clusula que nos permite filtrar el resultado de una sentencia SELECT. La clasula WHERE es opcional, si no se emplea esta clusula, la consulta devolver todas las filas de la tabla. Es la analoga al operador seleccionar en el algebra relacional Nomenclatura bsica: SELECT nombre_de_columnas FROM tabla_a_la_que_se_consulta WHERE condicin JOS CUARTAS BASES DE DATOS Como modificamos los datos en la base de datos:AS - Alias de Columna Este operador se utiliza para renombrar columnas o tablas. generalmente clarificar el significado de los datos en una columna de salida, para asignar una cabecera a una columna. Se utiliza tambin para renombrar las tablas que se utilizan en una consulta, generalmente se abrevia el nombre de la tabla. JOS CUARTAS BASES DE DATOS Como modificamos los datos en la base de datos:ORDER BY Ordenacin de datos Esta clusula 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 (por defecto) y descendente (se coloca despus de la columna a ordenar la palabra clave DESC). JOS CUARTAS BASES DE DATOS Como modificamos los datos en la base de datos:JOINS O REUNIONES O COMBINACIONES http://es.wikipedia.org/wiki/Join Un JOIN es el resultado de una operacin de combinacin o producto cruz realizada sobre dos o ms tablas que cumplen una condicin generalmente. Se pueden realizar varios tipos de 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 (rigth outer). Cruzada (cross) conocida como producto cartesiano. Por esta operacin JOIN podemos leer datos de diferentes tablas en una nica consulta. Lo que nos permitir disear tablas relacionadas entre ellas. Operador muy utilizado para obtener los registros de la combinacin de dos tablas,

que en una tabla tiene una clave primaria igual a uno o varios registros de otra tabla con la clave fornea. JOS CUARTAS BASES DE DATOS Apliquemos SQL Actualiza los datos JOINs Se puede insertar nuevas tuplas o filas en una tabla con la instruccin UPDATE Ejemplos Crear la tabla productos_temporales basada en la siguiente estructura: productos_temporales (id_producto: integer, nombre: text, precio: integer). Para actualizar una columna de una fila (sintaxis principales) UPDATE producto SET precio = 25450 WHERE nombre = Oporto; Recuerde sino se identifica las filas que se desean actualizar con la clusula WHERE ,ocurre una actualizacin de todas las filas de la tabla. Otra forma actualizar mltiples columnas de una o varias filas. UPDATE producto SET precio = 23000, nombre = Vino Oporto WHERE nombre = Oporto; Las actualizaciones dependen de la condicin dada para WHERE en la clausula UPTADE. JOS CUARTAS BASES DE DATOS Apliquemos SQLDescripcin lgica- Procesamiento de una consulta El SQL es muy diferente a muchos de los lenguajes de programacin, ya que, el orden en el que se procesas las sentencias no es el mismo en la que se escribe. La primera sentencia que se procesa es el FROM , mientras la sentencia SELECT, la cual es la primera que aparece en la instruccin , se procesa tiempo despus. Cada paso del procesamiento genera tablas virtuales que son entradas del siguiente paso (estas tablas internas no son accesibles por aplicaciones o otras consultas), solo la tabla del paso final es la que es retornado y puede ser utilizada para realizar otra operacin. JOS CUARTAS BASES DE DATOS Apliquemos SQLDescripcin lgica- Procesamiento de una consulta Tablas TBLCONSUMIDOR y TBLORDENES Consulta: SELECT C.IDCONSUMIDOR, COUNT(O.IDORDEN) AS NUMORDEN FROM TBLCONSUMIDOR AS C LEFT OUTER JOIN TBLORDENES AS O ON C.IDCONSUMIDOR = O.IDCONSUMIDOR WHERE C.CIUDAD = MEDELLIN GROUP BY C.IDCONSUMIDOR HAVING COUNT(O.IDORDEN) < 3 ORDER BY NUMORDEN TBLCONSUMIDOR TBLORDENES IDCONSUMIDOR NOMBRE CIUDAD IDORDEN IDCONSUMIDOR AA JOSE MEDELLIN 1 AB AB JUAN MEDELLIN 2 AB AC DIANA MEDELLIN 3 AC AD NATALIA BOGOTA 4 AC 5 AC 6 AD 7 NULL JOS CUARTAS BASES DE DATOS Apliquemos SQLDescripcin lgica- Procesamiento de una consulta PASO 1: FROM: Producto cartesiano (Reunin cruzada) de las primeras dos tablas en la sentencia FROM y da como resultado una tabla virtual VT1 PASO 2: ON: El filtro ON es aplicado a VT1. Solo las tuplas o filas para la cual la condicin <condicion_reunion> es verdadera son agregadas en VT2. PASO 3: OUTER (JOIN): Las filas de las tablas o tablas para la cual no hay coincidencias son

agregadas a la tabla VT2 como filas de reunin externas, generando VT3. Si ms de dos tablas aparecen en la clusula FROM , el paso 1 al paso 3 es aplicado repetidamente entre el resultado(tabla VT) del ultimo JOIN y la siguiente tabla dentro la clusula FROM, hasta procesar todas las tablas. JOS CUARTAS BASES DE DATOS Apliquemos SQLDescripcin lgica- Procesamiento de una consulta PASO 4: WHERE: Es el filtro aplicado a VT3o la tabla virtual generada del paso anterior. Solo las filas para la cual la condicin en WHERE es verdadera son agregadas a la tabla virtual VT4. PASO 5: GROUP BY: Las Filas de VT4 son organizadas en grupos basados en las listas de las columnas especificadas en la sentencia GROUP BY generando la tabla VT5. PASO 6: HAVING: El Filtro HAVING es aplicado a VT5solo los grupos para lo cual la condicin expresada en HAVING <condicion_having> es verdadera son adicionada a la tabla VT6. PASO 7: SELECT: La lista de columnas es procesada generando la tabla VT7. JOS CUARTAS BASES DE DATOS Apliquemos SQLDescripcin lgica- Procesamiento de una consulta PASO 8: DISTINC: Las filas duplicadas son removidas de la relacin VT7 generada en el paso anterior generando VT8. PASO 9: ORDEN BY: Las Las Filas de VT4 son organizadas en grupos basados en las listas de las columnas especificadas en la sentencia GROUP BY generando la tabla VT5. PASO 10: TOP: El Filtro HAVING es aplicado a VT5solo los grupos para lo cual la condicin expresada en HAVING <condicion_having> es verdadera son adicionada a la tabla VT6. JOS CUARTAS BASES DE DATOS Apliquemos SQL Descripcin lgica- Procesamiento de una consulta Aplicacin VT1 condicionC.IDCONSUMIDOR C.NOMBRE C.CIUDAD O.IDORDEN O.IDCONSUMIDO R F/V Producto cruz o AA JOSE MEDELLIN 1 AB F producto AA JOSE MEDELLIN 2 AB F AA JOSE MEDELLIN 3 AC F cartesiana entre AA JOSE MEDELLIN 4 AC F AA JOSE MEDELLIN 5 AC F las tablas y AA JOSE MEDELLIN 6 AD F AA JOSE MEDELLIN 7 NULL NULL columna de AB AB JUAN JUAN MEDELLIN MEDELLIN 1 2 AB AB V V evaluacin de la AB AB JUAN JUAN MEDELLIN MEDELLIN 3 4 AC AC F F condicin AB JUAN MEDELLIN 5 AC F AB JUAN MEDELLIN 6 AD F AB JUAN MEDELLIN 7 NULL NULL AC DIANA MEDELLIN 1 AB F AC DIANA MEDELLIN 2 AB F AC DIANA MEDELLIN 3 AC V AC DIANA MEDELLIN 4 AC V AC DIANA MEDELLIN 5 AC V AC DIANA MEDELLIN 6 AD F AC DIANA MEDELLIN 7 NULL NULL AD NATALIA BOGOTA 1 AB F AD NATALIA BOGOTA 2 AB F AD NATALIA BOGOTA 3 AC F AD NATALIA BOGOTA 4 AC F AD NATALIA BOGOTA 5 AC F AD NATALIA BOGOTA 6 AD V AD NATALIA BOGOTA 7 NULL NULL

Apliquemos SQLDescripcin lgica- Procesamiento de una consulta PASO 2: Tabla virtual despus de aplicar el JOIN y la condicin VT2 O.IDCONSUMIDO C.IDCONSUMIDOR C.NOMBRE C.CIUDAD O.IDORDEN R AB JUAN MEDELLIN 1 AB AB JUAN MEDELLIN 2 AB AC DIANA MEDELLIN 3 AC AC DIANA MEDELLIN 4 AC AC DIANA MEDELLIN 5 AC AD NATALIA BOGOTA 6 AD JOS CUARTAS BASES DE DATOS Apliquemos SQLDescripcin lgica- Procesamiento de una consulta PASO 3: aplicando la operacin OUTER JOIN VT3 O.IDCONSUMIDO C.IDCONSUMIDOR C.NOMBRE C.CIUDAD O.IDORDEN R AB JUAN MEDELLIN 1 AB AB JUAN MEDELLIN 2 AB AC DIANA MEDELLIN 3 AC AC DIANA MEDELLIN 4 AC AC DIANA MEDELLIN 5 AC AA JOSE MEDELLIN NULL NULL JOS CUARTAS BASES DE DATOS Apliquemos SQLDescripcin lgica- Procesamiento de una consulta PASO 4: aplicando el operador de agregacin GROUP BY VT4 GRUPO C.IDCONSUMIDOR C.NOMBRE C.CIUDAD O.IDORDEN O.IDCONSUMIDOR JUAN AB JUAN MEDELLIN 1 AB AB JUAN MEDELLIN 2 AB DIANA AC DIANA MEDELLIN 3 AC AC DIANA MEDELLIN 4 AC AC DIANA MEDELLIN 5 AC JOSE AA JOSE MEDELLIN NULL NULL JOS CUARTAS BASES DE DATOS Apliquemos SQLDescripcin lgica- Procesamiento de una consulta PASO 5: aplicando el filtro HAVING VT5 C.IDCONSUMIDO O.IDCONSUMIDO GRUPO R C.NOMBRE C.CIUDAD O.IDORDEN R JUAN AB JUAN MEDELLIN 1 AB AB JUAN MEDELLIN 2 AB JOSE AA JOSE MEDELLIN NULL NULL JOS CUARTAS BASES DE DATOS Apliquemos SQLDescripcin lgica- Procesamiento de una consulta PASO 6: Procesando sentencia SELECT VT6 C.NOMBRE NUMORDEN JUAN 2 JOSE 0 JOS CUARTAS BASES DE DATOS Apliquemos SQLDescripcin lgica- Procesamiento de una consulta PASO 7: Aplicando la sentencia ORDER BY e imprimiendo en pantalla el resultado. VT7 C.NOMBRE NUMORDEN JOSE 0 JUAN 2 JOS CUARTAS BASES DE DATOS.

Potrebbero piacerti anche