SQL DML
Data Manipulation Language



 http://en.wikipedia.org/wiki/Data_Manipulation_Language




    JOSÉ CUARTAS      BASES DE DATOS
Definamos los términos:
•     DML= Leguaje de manipulación de datos.

•     Las sentecias DML permiten generar consultas para ordenar,
      insertar, actulalizar, filtrar, agrupar y extraer datos de la base de
      datos

         Comandos DML                                Cláusulas DML
SELECT= Consultar registros                FROM= Especifica tablas
INSERT = Carga registros                   WHERE= Especifica condiciones
UPDATE= Modifica valores                   GROUP BY= separación por grupo
DELETE= Eliminar registros                 HAVING = Condición sobre grupos
                                           ORDER BY = Ordena registros

    Operadores lógicos DML                 Operadores de comparación DML
AND = Es el “y” lógico                 BETWEEN= intervalos de valores
OR = Es el “o” lógico                  LIKE= Comparación de patrones
NOT = Negación lógica                  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:

INSERTAR
Proporciona una lista de valores de atributos para una nueva
tupla t que se han de insertar en una relación R.

La operación 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 foránea(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
  instrucción 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 mínimo 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 relación.

• La operación modificar puede provocar violaciones de restricción,
  cuando se modifica un valor de clave primaria o clave externa.


• Opciones para evitar la violación de integridad:
    1. Rechazar la actualización.
    2. Propagar la actualización, actualizando las tuplas que hagan referencia
       a la tupla que se desea eliminar.
    3. Modificar los valores del atributo de referencia que provoca la violación.



      JOSÉ CUARTAS              BASES DE DATOS
Apliquemos SQL
     Actualiza los datos– UPDATE
• Se puede insertar nuevas tuplas o filas en una tabla con la instrucción
  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 cláusula
          WHERE ,ocurre una actualización de todas las filas de la tabla.
• Otra forma actualizar múltiples columnas de una o varias filas.
    – UPDATE producto SET precio = 23000, nombre = „Vino Oporto„
       WHERE nombre = 'Oporto';
• Las actualizaciones dependen de la condición dada para WHERE en
  la clausula UPTADE.

       JOSÉ CUARTAS                 BASES DE DATOS
Como modificamos los datos en la base de datos:

ELIMINACIÓN
• 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 operación eliminación puede provocar violaciones de integridad
  referencial, si las claves foránea de otras filas de la base de datos
  hacen referencia a la tupla que se ha de eliminar.
• Opciones para evitar la violación de integridad:
    1. Rechazar la eliminación.
    2. Propagar la eliminación eliminando las tuplas que hagan referencia a la
       tupla que se desea eliminar.
    3. Modificar los valores del atributo de referencia que provoca la violación.


      JOSÉ CUARTAS                BASES DE DATOS
Apliquemos SQL
     Eliminación de filas– DELETE
• Se puede remover filas en una tabla con la instrucción DELETE
• Para eliminar filas en una tabla con una condición (sintaxis principales)
    – DELETE FROM producto WHERE precio = 25450 ;
        • Recuerde esto elimina todas las filas que cumplan la condición donde(WHERE)
          el precio es igual a 25450.
• Si se desea eliminar todas 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 instrucción SELECT se utiliza principalmente                 para   la
  recuperación de datos específicos de una Tabla o Vista.
• La estrategia es intentar construir las instrucciones SELECT de la
  forma más sencilla posible, para recuperar los datos necesarios.
• Es la analogía al operador proyectar en el algebra relacional.
• Nomenclatura básica:
    – 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 se
colocan los nombres de varias tablas
en caso de realizar una operación        En SQL se utiliza el comodín * para
producto 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 condición que debe cumplirse para que los datos
  sean devueltos por la consulta. Admite los operadores
  lógicos AND y OR y operadores de comparación, esta .
• La cláusula WHERE es la cláusula que nos permite filtrar el
  resultado de una sentencia SELECT.
• La claúsula WHERE es opcional, si no se emplea esta cláusula, la
  consulta devolverá todas las filas de la tabla.
• Es la analogía al operador seleccionar en el algebra relacional
• Nomenclatura básica:
    – SELECT nombre_de_columnas
        FROM tabla_a_la_que_se_consulta
        WHERE condición
      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 también 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 – Ordenación de datos
  Esta cláusula 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 después 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 operación de combinación o
  producto cruz realizada sobre dos o más tablas que cumplen una
  condición 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 operación JOIN podemos leer datos de diferentes tablas
  en una única consulta. Lo que nos permitirá diseñar tablas
  relacionadas entre ellas.
   – Operador muy utilizado para obtener los registros de la combinación de
     dos tablas, que en una tabla tiene una clave primaria igual a uno o
     varios registros de otra tabla con la clave foránea.
     JOSÉ CUARTAS               BASES DE DATOS
Apliquemos SQL
     Actualiza los datos– JOINs
• Se puede insertar nuevas tuplas o filas en una tabla con la instrucción
  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 cláusula
          WHERE ,ocurre una actualización de todas las filas de la tabla.
• Otra forma actualizar múltiples columnas de una o varias filas.
    – UPDATE producto SET precio = 23000, nombre = „Vino Oporto„
       WHERE nombre = 'Oporto';
• Las actualizaciones dependen de la condición dada para WHERE en
  la clausula UPTADE.

       JOSÉ CUARTAS                 BASES DE DATOS
Apliquemos SQL
Descripción lógica- Procesamiento de una consulta
• El SQL es muy diferente a muchos de los lenguajes de
  programación, 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
  instrucción , se procesa tiempo después.

• 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 operación.



      JOSÉ CUARTAS           BASES DE DATOS
Apliquemos SQL
Descripción lógica- 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 SQL
Descripción lógica- Procesamiento de una consulta
• PASO 1:
   – FROM: Producto cartesiano (Reunión 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
     condición <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 reunión externas, generando VT3. Si
     mas de dos tablas aparecen en la clausula FROM , el paso 1 al paso 3 es
     aplicado repetidamente entre el resultado(tabla VT) del ultimo JOIN y la
     siguiente tabla dentro la clausula FROM, hasta procesar todas las tablas.



      JOSÉ CUARTAS                 BASES DE DATOS
Apliquemos SQL
Descripción lógica- 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 condición 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
     condición 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 SQL
Descripción lógica- Procesamiento de una consulta
• PASO 8:
   – DISTINC: Las filas duplicadas son removidas de la relación 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
     condición expresada en HAVING <condicion_having> es verdadera son
     adicionada a la tabla VT6.




     JOSÉ CUARTAS               BASES DE DATOS
Apliquemos SQL
  Descripción lógica- Procesamiento de una consulta
                                                                       Aplicación
     VT1                                                               condicion

C.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
                                                                                         evaluación de la
            AB
            AB
                     JUAN
                     JUAN
                                MEDELLIN
                                MEDELLIN
                                                  3
                                                  4
                                                                  AC
                                                                  AC
                                                                                   F
                                                                                   F
                                                                                         condición
            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 SQL
Descripción lógica- Procesamiento de una consulta

• PASO 2: Tabla virtual después de aplicar el JOIN y la condición

                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 SQL
Descripción lógica- Procesamiento de una consulta

• PASO 3: aplicando la operación 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 SQL
Descripción lógica- Procesamiento de una consulta

• PASO 4: aplicando el operador de agregación 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 SQL
Descripción lógica- 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 SQL
Descripción lógica- Procesamiento de una consulta

• PASO 6: Procesando sentencia SELECT


               VT6

               C.NOMBRE          NUMORDEN

                          JUAN                2
                          JOSE                0




     JOSÉ CUARTAS            BASES DE DATOS
Apliquemos SQL
Descripción lógica- 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

Sql DML Lenguaje de manipulación de datos

  • 1.
    SQL DML Data ManipulationLanguage http://en.wikipedia.org/wiki/Data_Manipulation_Language JOSÉ CUARTAS BASES DE DATOS
  • 2.
    Definamos los términos: • DML= Leguaje de manipulación de datos. • Las sentecias DML permiten generar consultas para ordenar, insertar, actulalizar, filtrar, agrupar y extraer datos de la base de datos Comandos DML Cláusulas DML SELECT= Consultar registros FROM= Especifica tablas INSERT = Carga registros WHERE= Especifica condiciones UPDATE= Modifica valores GROUP BY= separación por grupo DELETE= Eliminar registros HAVING = Condición sobre grupos ORDER BY = Ordena registros Operadores lógicos DML Operadores de comparación DML AND = Es el “y” lógico BETWEEN= intervalos de valores OR = Es el “o” lógico LIKE= Comparación de patrones NOT = Negación lógica IN= especifica registros < menor que, > mayor que, <> diferente, = igual,<= menor i igual, >= mayor o igual JOSÉ CUARTAS BASES DE DATOS
  • 3.
    Como modificamos losdatos en la base de datos: INSERTAR Proporciona una lista de valores de atributos para una nueva tupla t que se han de insertar en una relación R. La operación 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 foránea(FK) se inserta en una tabla sin que exista en la tabla donde es clave primaria. JOSÉ CUARTAS BASES DE DATOS
  • 4.
    Apliquemos SQL Nuevos datos– INSERT • Se puede insertar nuevas tuplas o filas en una tabla con la instrucción 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 mínimo 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
  • 5.
    Como modificamos losdatos 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 relación. • La operación modificar puede provocar violaciones de restricción, cuando se modifica un valor de clave primaria o clave externa. • Opciones para evitar la violación de integridad: 1. Rechazar la actualización. 2. Propagar la actualización, actualizando las tuplas que hagan referencia a la tupla que se desea eliminar. 3. Modificar los valores del atributo de referencia que provoca la violación. JOSÉ CUARTAS BASES DE DATOS
  • 6.
    Apliquemos SQL Actualiza los datos– UPDATE • Se puede insertar nuevas tuplas o filas en una tabla con la instrucción 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 cláusula WHERE ,ocurre una actualización de todas las filas de la tabla. • Otra forma actualizar múltiples columnas de una o varias filas. – UPDATE producto SET precio = 23000, nombre = „Vino Oporto„ WHERE nombre = 'Oporto'; • Las actualizaciones dependen de la condición dada para WHERE en la clausula UPTADE. JOSÉ CUARTAS BASES DE DATOS
  • 7.
    Como modificamos losdatos en la base de datos: ELIMINACIÓN • 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 operación eliminación puede provocar violaciones de integridad referencial, si las claves foránea de otras filas de la base de datos hacen referencia a la tupla que se ha de eliminar. • Opciones para evitar la violación de integridad: 1. Rechazar la eliminación. 2. Propagar la eliminación eliminando las tuplas que hagan referencia a la tupla que se desea eliminar. 3. Modificar los valores del atributo de referencia que provoca la violación. JOSÉ CUARTAS BASES DE DATOS
  • 8.
    Apliquemos SQL Eliminación de filas– DELETE • Se puede remover filas en una tabla con la instrucción DELETE • Para eliminar filas en una tabla con una condición (sintaxis principales) – DELETE FROM producto WHERE precio = 25450 ; • Recuerde esto elimina todas las filas que cumplan la condición donde(WHERE) el precio es igual a 25450. • Si se desea eliminar todas 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
  • 9.
    Como consultamos losdatos en la base de datos: SELECT • La instrucción SELECT se utiliza principalmente para la recuperación de datos específicos de una Tabla o Vista. • La estrategia es intentar construir las instrucciones SELECT de la forma más sencilla posible, para recuperar los datos necesarios. • Es la analogía al operador proyectar en el algebra relacional. • Nomenclatura básica: – 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 se colocan los nombres de varias tablas en caso de realizar una operación En SQL se utiliza el comodín * para producto cruz listar todos los campos de una tabla. JOSÉ CUARTAS BASES DE DATOS
  • 10.
    Como modificamos losdatos en la base de datos: WHERE • Especifica una condición que debe cumplirse para que los datos sean devueltos por la consulta. Admite los operadores lógicos AND y OR y operadores de comparación, esta . • La cláusula WHERE es la cláusula que nos permite filtrar el resultado de una sentencia SELECT. • La claúsula WHERE es opcional, si no se emplea esta cláusula, la consulta devolverá todas las filas de la tabla. • Es la analogía al operador seleccionar en el algebra relacional • Nomenclatura básica: – SELECT nombre_de_columnas FROM tabla_a_la_que_se_consulta WHERE condición JOSÉ CUARTAS BASES DE DATOS
  • 11.
    Como modificamos losdatos 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 también para renombrar las tablas que se utilizan en una consulta, generalmente se abrevia el nombre de la tabla. JOSÉ CUARTAS BASES DE DATOS
  • 12.
    Como modificamos losdatos en la base de datos: ORDER BY – Ordenación de datos Esta cláusula 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 después de la columna a ordenar la palabra clave DESC). JOSÉ CUARTAS BASES DE DATOS
  • 13.
    Como modificamos losdatos en la base de datos: JOINS O REUNIONES O COMBINACIONES • http://es.wikipedia.org/wiki/Join • Un JOIN es el resultado de una operación de combinación o producto cruz realizada sobre dos o más tablas que cumplen una condición 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 operación JOIN podemos leer datos de diferentes tablas en una única consulta. Lo que nos permitirá diseñar tablas relacionadas entre ellas. – Operador muy utilizado para obtener los registros de la combinación de dos tablas, que en una tabla tiene una clave primaria igual a uno o varios registros de otra tabla con la clave foránea. JOSÉ CUARTAS BASES DE DATOS
  • 14.
    Apliquemos SQL Actualiza los datos– JOINs • Se puede insertar nuevas tuplas o filas en una tabla con la instrucción 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 cláusula WHERE ,ocurre una actualización de todas las filas de la tabla. • Otra forma actualizar múltiples columnas de una o varias filas. – UPDATE producto SET precio = 23000, nombre = „Vino Oporto„ WHERE nombre = 'Oporto'; • Las actualizaciones dependen de la condición dada para WHERE en la clausula UPTADE. JOSÉ CUARTAS BASES DE DATOS
  • 15.
    Apliquemos SQL Descripción lógica-Procesamiento de una consulta • El SQL es muy diferente a muchos de los lenguajes de programación, 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 instrucción , se procesa tiempo después. • 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 operación. JOSÉ CUARTAS BASES DE DATOS
  • 16.
    Apliquemos SQL Descripción lógica-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
  • 17.
    Apliquemos SQL Descripción lógica-Procesamiento de una consulta • PASO 1: – FROM: Producto cartesiano (Reunión 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 condición <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 reunión externas, generando VT3. Si mas de dos tablas aparecen en la clausula FROM , el paso 1 al paso 3 es aplicado repetidamente entre el resultado(tabla VT) del ultimo JOIN y la siguiente tabla dentro la clausula FROM, hasta procesar todas las tablas. JOSÉ CUARTAS BASES DE DATOS
  • 18.
    Apliquemos SQL Descripción lógica-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 condición 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 condición 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
  • 19.
    Apliquemos SQL Descripción lógica-Procesamiento de una consulta • PASO 8: – DISTINC: Las filas duplicadas son removidas de la relación 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 condición expresada en HAVING <condicion_having> es verdadera son adicionada a la tabla VT6. JOSÉ CUARTAS BASES DE DATOS
  • 20.
    Apliquemos SQL Descripción lógica- Procesamiento de una consulta Aplicación VT1 condicion C.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 evaluación de la AB AB JUAN JUAN MEDELLIN MEDELLIN 3 4 AC AC F F condición 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
  • 21.
    Apliquemos SQL Descripción lógica-Procesamiento de una consulta • PASO 2: Tabla virtual después de aplicar el JOIN y la condición 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
  • 22.
    Apliquemos SQL Descripción lógica-Procesamiento de una consulta • PASO 3: aplicando la operación 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
  • 23.
    Apliquemos SQL Descripción lógica-Procesamiento de una consulta • PASO 4: aplicando el operador de agregación 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
  • 24.
    Apliquemos SQL Descripción lógica-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
  • 25.
    Apliquemos SQL Descripción lógica-Procesamiento de una consulta • PASO 6: Procesando sentencia SELECT VT6 C.NOMBRE NUMORDEN JUAN 2 JOSE 0 JOSÉ CUARTAS BASES DE DATOS
  • 26.
    Apliquemos SQL Descripción lógica-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