Bases de Datos Unidad VII Lenguaje SQL “ Lenguaje de Manipulación de Datos (DML)” Sergio Sánchez Rios. Ingeniero en Informática – Licenciado en Informática Docente Jornada Parcial Universidad Viña del Mar
Lenguaje de Manipulación de Datos (DML) Introducción DML es la parte de SQL que se usa para la recuperación o manipulación de datos. Se refiere a los comandos responsables por las consultas y modificaciones de los contenidos de las tablas. Comandos más importantes:  Deshace las modificaciones introducidas después del último COMMIT ROLLBACK Graba en el disco las modificaciones introducidas. COMMIT Modifica el contenido de las columnas (campos) de la tabla UPDATE Elimina filas de la tabla DELETE Inserta una fila en una tabla. INSERT Es el principal comando del lenguaje. Con él, el usuario recupera datos de una tabla o vista.  SELECT Función Comando
Lenguaje de Manipulación de Datos (DML) Expresiones y Operadores SQL (SQL Server Particularmente) acepta los operadores más comunes que se encuentran en la mayor parte de los lenguajes.  Los operadores actúan sobre  operandos, o sea, sobre los elementos a los que se les aplicará la operación determinada por el operador. Existen dos tipos de operadores:  los unarios , que actúan sobre un único operando, y  los binarios  que actúan sobre dos operandos. Aritméticos Multiplicación ( * ), División ( / ), Sustracción ( - ), Adición ( + ), Módulo ( % ). Comparación   Igualdad ( = ), Desigualdad ( <> ), Mayor que ( > ), Menor que ( < ), Mayor o igual a ( >= ), Menor o igual a ( <= ), No menor que ( !< ), No mayor que ( !>), No igual a ( != )
Lenguaje de Manipulación de Datos (DML) Expresiones y Operadores Lógicos NOT (Negación), AND (y lógico) , OR ( o lógico)
Lenguaje de Manipulación de Datos (DML) Instrucción SELECT La instrucción SELECT se utiliza principalmente para la recuperación de datos específicos de una Tabla o Vista.  Una instrucción SELECT puede ser simple o compleja (no es necesariamente mejor que sea compleja). Hay que intentar construir las instrucciones SELECT de la forma más sencilla posible siempre que recuperen los resultados necesarios. Por ejemplo, si se necesita mostrar solo dos columnas de una tabla, hay que incluir solo esas dos columnas en la sentencia SELECT. Nomenclatura: SELECT nombre_de_columnas FROM tabla_a_la_que_se_consulta Se colocan los nombres de las columnas que se mostraran en el SELECT, separados por una coma.  Se colocan los nombres de las Tablas a las cuales pertenecen las columnas.
Lenguaje de Manipulación de Datos (DML) Instrucción SELECT Ejemplo 1: Liste de la Tabla authors de la base de datos Pubs (base de datos de ejemplo instalada por SQL SERVER) las columnas au_fname (Primer Nombre) y au_lname (Segundo Nombre). SELECT au_fname, au_lname FROM authors Ejemplo 2: Liste todos los atributos de la tabla authors. En SQL se utiliza el comodín  *  para listar todos los campos de una tabla. SELECT * FROM authors
Lenguaje de Manipulación de Datos (DML) Instrucción SELECT Después de que se haya decidido qué datos se necesitan y de qué tablas, se puede determinar qué otras opciones, en caso necesario hay que utilizar. Estas opciones pueden incluir especificar que columnas deberían estar en la cláusula WHERE, especificar si hay que ordenar los datos devueltos y especificar si sean de devolver solo valores distintos. Cláusula WHERE Esta cláusula permite hacer una selección sobre los atributos de las diversas columnas que se desean mostrar, en base a diversas condiciones. Acá se pueden ocupar algunos operadores de comparación y lógicos. La clausula WHERE se ubica bajo la clausula FROM.
Lenguaje de Manipulación de Datos (DML) Instrucción SELECT Cláusula WHERE Ejemplo 1: Liste desde la tabla authors todos los autores que tengan dirección en Oakland. Solo muestre el id, primer nombre, segundo nombre y la ciudad. Select au_id, au_fname, au_lname, city From Authors Where city = ‘Oakland’ Ejemplo 2: Utilizando operadores, realice una consulta que le permita listar el id, primer nombre, segundo nombre y ciudad, de los autores que vivan en Oakland y Palo Alto.
Lenguaje de Manipulación de Datos (DML) Instrucción SELECT La clausula SELECT consiste en una  lista de selección  y posiblemente algunos  argumentos opcionales .  La lista de selección es la lista de expresiones o columnas que se especifican en la clausula SELECT para indicar que datos hay que devolver. Argumentos  Opcionales Se pueden utilizar los siguientes dos argumentos en la instrucción SELECT para controlar que filas se devuelven: DISTINCT:  devuelve solamente filas únicas. Si la lista de selección contiene varias columnas, las filas se consideran únicas si los valores correspondientes en al menos una de las columnas es diferente.  Para que se dupliquen dos filas deben contener valores idénticos en cada columna.
Lenguaje de Manipulación de Datos (DML) Instrucción SELECT Ejemplo: Liste desde la tabla authors el primer nombre y el segundo, de tal manera que no se repitan los datos. SELECT DISTINCT au_fname, au_lname FROM authors  TOP n [PERCENT]:  Devuelve solamente las primeras filas del conjunto resultado. PERCENT es opcional e indica un porcentaje de filas listadas de acuerdo al total final, se debe por lo tanto indicar un porcentaje con valores entre 0 y 100. Ejemplo 1: Liste la mitad de los primeros nombres y segundos nombres de la tabla authors. (50 %) SELECT TOP 50 PERCENT  au_fname, au_lname FROM authors
Lenguaje de Manipulación de Datos (DML) Instrucción SELECT Ejemplo 2: Liste exactamente los 5 primeros nombres y segundos nombres de la tabla authors. SELECT TOP 5  au_fname, au_lname /* valores exactos no va PERCENT*/ FROM authors  Alias de Columna Se puede utilizar un alias para clarificar el significado de los datos en una columna de salida, para asignar una cabecera a una columna que se utiliza en una función. Ejemplo: Cambiar el nombre de la columna de salida au_fname a Primer Nombre SELECT au_fname AS PRIMER_NOMBRE FROM authors
Lenguaje de Manipulación de Datos (DML) Instrucción SELECT Ejemplo 2: Liste exactamente los 5 primeros nombres y segundos nombres de la tabla authors. SELECT TOP 5  au_fname, au_lname /* valores exactos no va PERCENT*/ FROM authors  Alias de Columna Se puede utilizar un alias para clarificar el significado de los datos en una columna de salida, para asignar una cabecera a una columna que se utiliza en una función. Ejemplo: Cambiar el nombre de la columna de salida au_fname a Primer Nombre SELECT au_fname AS PRIMER_NOMBRE FROM authors
Lenguaje de Manipulación de Datos (DML) Instrucción SELECT Cláusula ORDER BY Esta cláusula permite ordenar el resultado de la consulta, definiendo el orden en que se presentan las columnas seleccionadas en la lista de selección. Se pueden presentar en orden ascendente (por defecto) y descendente (se coloca después de la columna a ordenar la palabra clave DESC). Ejemplo 1: Liste los nombres de los autores (tabla authors) en orden descendente y ascendente. a)  SELECT au_fname, au_lname FROM authors ORDER BY au_fname b)  SELECT au_fname, au_lname FROM authors ORDER BY au_fname DESC
Lenguaje de Manipulación de Datos (DML) Instrucción INSERT La instrucción INSERT se utiliza para insertar una fila de datos en una tabla o vista.  Nomenclatura: INSERT INTO  nombre_tabla (columna1, columna2, ….., columnaN)  VALUES  ( valor1, valor2,….., valorN ) Ejemplo: Inserte los campos a la tabla Demo2 (codigo, nombre, estado) INSERT INTO  Demo2 (codigo, nombre, estado) VALUES  (1, ‘Sergio’, ‘CA’ ) NOTA: la lista de los datos a ingresar tienen que ser en el mismo orden de las columnas definidas.
Lenguaje de Manipulación de Datos (DML) Instrucción INSERT Si usted va ingresar todos los datos asociados a la Tabla, no necesita colocar el nombre de las columnas solo los valores a registrar. Ejemplo: Insertar una fila en la tabla Demo2. INSERT INTO  DEMO2  VALUES  (2, ‘RAUL’, ‘CA’)
Lenguaje de Manipulación de Datos (DML) Instrucción UPDATE La introducción UPDATE se utiliza para actualizar o cambiar un valor o valores en una fila o filas de una tabla.  Nomenclatura: UPDATE  nombre_tabla_actualizar SET  columna_actualizar1 = nuevo_valor, columna_actualizar2 = nuevo_valor WHERE  condiciones_para_actualizar  Acá se colocan las columnas que serán modificadas dentro de la fila o filas. Se colocan condiciones para poder  actualizar. De la condición dependen las filas que se actualizan. Ejemplo: Actualice el atributo nombre de la tabla Demo2, que referencia a RAUL por el Nombre Pedro, y su estado de CA  a UE.
Lenguaje de Manipulación de Datos (DML) Instrucción UPDATE UPDATE  Demo2 SET  nombre = ‘PEDRO’, estado = ‘UE’ WHERE   codigo = 2 AND nombre = ‘RAUL’
Lenguaje de Manipulación de Datos (DML) Instrucción DELETE La instrucción DELETE se utiliza para borrar una fila o filas de datos de una tabla. Se puede incluso borrar todas las filas de una tabla. Nomenclatura: DELETE FROM  nombre_tabla WHERE  condiciones_para_borrar Ejemplo 1: Borre desde la tabla Demo2 el código 2. DELETE FROM  Demo2 WHERE  codigo = 2 Ejemplo 2: Borre todas las filas de la Tabla Demo2 DELETE  FROM Demo2
Bibliografía “ Introducción a los Sistemas de Base de Datos”, C. J. Date, Prentice Hall – Séptima Edición, 2001. “ Running SQL SERVER 2000”, Marci Frohock García & Jamie Reding & Edward Whalen & Steve Adrien Deluca, McGraw – Hill – 2001. “ SQL SERVER 7.0 – Iniciación y Referencia”, José Antonio Ramalho, McGraw-Hill – 2000.  “ Bases de Datos Relacionales”, Matilde Celma Giménez & Juan Casamayor & Laura Mota, Prentice Hall, 2003. Cátedra “Introducción a las bases de datos”, Profesor L. Marti, Universidad de Valparaíso, 2004.

Unidad 6 Lenguaje Sql 2

  • 1.
    Bases de DatosUnidad VII Lenguaje SQL “ Lenguaje de Manipulación de Datos (DML)” Sergio Sánchez Rios. Ingeniero en Informática – Licenciado en Informática Docente Jornada Parcial Universidad Viña del Mar
  • 2.
    Lenguaje de Manipulaciónde Datos (DML) Introducción DML es la parte de SQL que se usa para la recuperación o manipulación de datos. Se refiere a los comandos responsables por las consultas y modificaciones de los contenidos de las tablas. Comandos más importantes: Deshace las modificaciones introducidas después del último COMMIT ROLLBACK Graba en el disco las modificaciones introducidas. COMMIT Modifica el contenido de las columnas (campos) de la tabla UPDATE Elimina filas de la tabla DELETE Inserta una fila en una tabla. INSERT Es el principal comando del lenguaje. Con él, el usuario recupera datos de una tabla o vista. SELECT Función Comando
  • 3.
    Lenguaje de Manipulaciónde Datos (DML) Expresiones y Operadores SQL (SQL Server Particularmente) acepta los operadores más comunes que se encuentran en la mayor parte de los lenguajes. Los operadores actúan sobre operandos, o sea, sobre los elementos a los que se les aplicará la operación determinada por el operador. Existen dos tipos de operadores: los unarios , que actúan sobre un único operando, y los binarios que actúan sobre dos operandos. Aritméticos Multiplicación ( * ), División ( / ), Sustracción ( - ), Adición ( + ), Módulo ( % ). Comparación Igualdad ( = ), Desigualdad ( <> ), Mayor que ( > ), Menor que ( < ), Mayor o igual a ( >= ), Menor o igual a ( <= ), No menor que ( !< ), No mayor que ( !>), No igual a ( != )
  • 4.
    Lenguaje de Manipulaciónde Datos (DML) Expresiones y Operadores Lógicos NOT (Negación), AND (y lógico) , OR ( o lógico)
  • 5.
    Lenguaje de Manipulaciónde Datos (DML) Instrucción SELECT La instrucción SELECT se utiliza principalmente para la recuperación de datos específicos de una Tabla o Vista. Una instrucción SELECT puede ser simple o compleja (no es necesariamente mejor que sea compleja). Hay que intentar construir las instrucciones SELECT de la forma más sencilla posible siempre que recuperen los resultados necesarios. Por ejemplo, si se necesita mostrar solo dos columnas de una tabla, hay que incluir solo esas dos columnas en la sentencia SELECT. Nomenclatura: SELECT nombre_de_columnas FROM tabla_a_la_que_se_consulta Se colocan los nombres de las columnas que se mostraran en el SELECT, separados por una coma. Se colocan los nombres de las Tablas a las cuales pertenecen las columnas.
  • 6.
    Lenguaje de Manipulaciónde Datos (DML) Instrucción SELECT Ejemplo 1: Liste de la Tabla authors de la base de datos Pubs (base de datos de ejemplo instalada por SQL SERVER) las columnas au_fname (Primer Nombre) y au_lname (Segundo Nombre). SELECT au_fname, au_lname FROM authors Ejemplo 2: Liste todos los atributos de la tabla authors. En SQL se utiliza el comodín * para listar todos los campos de una tabla. SELECT * FROM authors
  • 7.
    Lenguaje de Manipulaciónde Datos (DML) Instrucción SELECT Después de que se haya decidido qué datos se necesitan y de qué tablas, se puede determinar qué otras opciones, en caso necesario hay que utilizar. Estas opciones pueden incluir especificar que columnas deberían estar en la cláusula WHERE, especificar si hay que ordenar los datos devueltos y especificar si sean de devolver solo valores distintos. Cláusula WHERE Esta cláusula permite hacer una selección sobre los atributos de las diversas columnas que se desean mostrar, en base a diversas condiciones. Acá se pueden ocupar algunos operadores de comparación y lógicos. La clausula WHERE se ubica bajo la clausula FROM.
  • 8.
    Lenguaje de Manipulaciónde Datos (DML) Instrucción SELECT Cláusula WHERE Ejemplo 1: Liste desde la tabla authors todos los autores que tengan dirección en Oakland. Solo muestre el id, primer nombre, segundo nombre y la ciudad. Select au_id, au_fname, au_lname, city From Authors Where city = ‘Oakland’ Ejemplo 2: Utilizando operadores, realice una consulta que le permita listar el id, primer nombre, segundo nombre y ciudad, de los autores que vivan en Oakland y Palo Alto.
  • 9.
    Lenguaje de Manipulaciónde Datos (DML) Instrucción SELECT La clausula SELECT consiste en una lista de selección y posiblemente algunos argumentos opcionales . La lista de selección es la lista de expresiones o columnas que se especifican en la clausula SELECT para indicar que datos hay que devolver. Argumentos Opcionales Se pueden utilizar los siguientes dos argumentos en la instrucción SELECT para controlar que filas se devuelven: DISTINCT: devuelve solamente filas únicas. Si la lista de selección contiene varias columnas, las filas se consideran únicas si los valores correspondientes en al menos una de las columnas es diferente. Para que se dupliquen dos filas deben contener valores idénticos en cada columna.
  • 10.
    Lenguaje de Manipulaciónde Datos (DML) Instrucción SELECT Ejemplo: Liste desde la tabla authors el primer nombre y el segundo, de tal manera que no se repitan los datos. SELECT DISTINCT au_fname, au_lname FROM authors TOP n [PERCENT]: Devuelve solamente las primeras filas del conjunto resultado. PERCENT es opcional e indica un porcentaje de filas listadas de acuerdo al total final, se debe por lo tanto indicar un porcentaje con valores entre 0 y 100. Ejemplo 1: Liste la mitad de los primeros nombres y segundos nombres de la tabla authors. (50 %) SELECT TOP 50 PERCENT au_fname, au_lname FROM authors
  • 11.
    Lenguaje de Manipulaciónde Datos (DML) Instrucción SELECT Ejemplo 2: Liste exactamente los 5 primeros nombres y segundos nombres de la tabla authors. SELECT TOP 5 au_fname, au_lname /* valores exactos no va PERCENT*/ FROM authors Alias de Columna Se puede utilizar un alias para clarificar el significado de los datos en una columna de salida, para asignar una cabecera a una columna que se utiliza en una función. Ejemplo: Cambiar el nombre de la columna de salida au_fname a Primer Nombre SELECT au_fname AS PRIMER_NOMBRE FROM authors
  • 12.
    Lenguaje de Manipulaciónde Datos (DML) Instrucción SELECT Ejemplo 2: Liste exactamente los 5 primeros nombres y segundos nombres de la tabla authors. SELECT TOP 5 au_fname, au_lname /* valores exactos no va PERCENT*/ FROM authors Alias de Columna Se puede utilizar un alias para clarificar el significado de los datos en una columna de salida, para asignar una cabecera a una columna que se utiliza en una función. Ejemplo: Cambiar el nombre de la columna de salida au_fname a Primer Nombre SELECT au_fname AS PRIMER_NOMBRE FROM authors
  • 13.
    Lenguaje de Manipulaciónde Datos (DML) Instrucción SELECT Cláusula ORDER BY Esta cláusula permite ordenar el resultado de la consulta, definiendo el orden en que se presentan las columnas seleccionadas en la lista de selección. Se pueden presentar en orden ascendente (por defecto) y descendente (se coloca después de la columna a ordenar la palabra clave DESC). Ejemplo 1: Liste los nombres de los autores (tabla authors) en orden descendente y ascendente. a) SELECT au_fname, au_lname FROM authors ORDER BY au_fname b) SELECT au_fname, au_lname FROM authors ORDER BY au_fname DESC
  • 14.
    Lenguaje de Manipulaciónde Datos (DML) Instrucción INSERT La instrucción INSERT se utiliza para insertar una fila de datos en una tabla o vista. Nomenclatura: INSERT INTO nombre_tabla (columna1, columna2, ….., columnaN) VALUES ( valor1, valor2,….., valorN ) Ejemplo: Inserte los campos a la tabla Demo2 (codigo, nombre, estado) INSERT INTO Demo2 (codigo, nombre, estado) VALUES (1, ‘Sergio’, ‘CA’ ) NOTA: la lista de los datos a ingresar tienen que ser en el mismo orden de las columnas definidas.
  • 15.
    Lenguaje de Manipulaciónde Datos (DML) Instrucción INSERT Si usted va ingresar todos los datos asociados a la Tabla, no necesita colocar el nombre de las columnas solo los valores a registrar. Ejemplo: Insertar una fila en la tabla Demo2. INSERT INTO DEMO2 VALUES (2, ‘RAUL’, ‘CA’)
  • 16.
    Lenguaje de Manipulaciónde Datos (DML) Instrucción UPDATE La introducción UPDATE se utiliza para actualizar o cambiar un valor o valores en una fila o filas de una tabla. Nomenclatura: UPDATE nombre_tabla_actualizar SET columna_actualizar1 = nuevo_valor, columna_actualizar2 = nuevo_valor WHERE condiciones_para_actualizar Acá se colocan las columnas que serán modificadas dentro de la fila o filas. Se colocan condiciones para poder actualizar. De la condición dependen las filas que se actualizan. Ejemplo: Actualice el atributo nombre de la tabla Demo2, que referencia a RAUL por el Nombre Pedro, y su estado de CA a UE.
  • 17.
    Lenguaje de Manipulaciónde Datos (DML) Instrucción UPDATE UPDATE Demo2 SET nombre = ‘PEDRO’, estado = ‘UE’ WHERE codigo = 2 AND nombre = ‘RAUL’
  • 18.
    Lenguaje de Manipulaciónde Datos (DML) Instrucción DELETE La instrucción DELETE se utiliza para borrar una fila o filas de datos de una tabla. Se puede incluso borrar todas las filas de una tabla. Nomenclatura: DELETE FROM nombre_tabla WHERE condiciones_para_borrar Ejemplo 1: Borre desde la tabla Demo2 el código 2. DELETE FROM Demo2 WHERE codigo = 2 Ejemplo 2: Borre todas las filas de la Tabla Demo2 DELETE FROM Demo2
  • 19.
    Bibliografía “ Introduccióna los Sistemas de Base de Datos”, C. J. Date, Prentice Hall – Séptima Edición, 2001. “ Running SQL SERVER 2000”, Marci Frohock García & Jamie Reding & Edward Whalen & Steve Adrien Deluca, McGraw – Hill – 2001. “ SQL SERVER 7.0 – Iniciación y Referencia”, José Antonio Ramalho, McGraw-Hill – 2000. “ Bases de Datos Relacionales”, Matilde Celma Giménez & Juan Casamayor & Laura Mota, Prentice Hall, 2003. Cátedra “Introducción a las bases de datos”, Profesor L. Marti, Universidad de Valparaíso, 2004.