Unidad 6 Lenguaje Sql 2

19
Sergio Sánchez 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

Transcript of Unidad 6 Lenguaje Sql 2

Page 1: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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

Page 2: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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:

Comando Función

SELECT Es el principal comando del lenguaje. Con él, el usuario recupera datos de una tabla o vista.

INSERT Inserta una fila en una tabla.

DELETE Elimina filas de la tabla

UPDATE Modifica el contenido de las columnas (campos) de la tabla

COMMIT Graba en el disco las modificaciones introducidas.

ROLLBACK Deshace las modificaciones introducidas después del último COMMIT

Page 3: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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 ( != )

Page 4: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

Lenguaje de Manipulación de Datos (DML)Expresiones y Operadores

Lógicos

NOT (Negación), AND (y lógico) , OR ( o lógico)

Page 5: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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 columnas que se mostraran en el SELECT, separados por una coma.

Se colocan los nombres de las Tablas a las cuales pertenecen las columnas.

Se colocan los nombres de las Tablas a las cuales pertenecen las columnas.

Page 6: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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

Page 7: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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.

Page 8: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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.

Page 9: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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.

Page 10: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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

Page 11: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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

Page 12: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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

Page 13: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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_fnameb) SELECT au_fname, au_lname FROM authors ORDER BY au_fname DESC

Page 14: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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.

Page 15: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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’)

Page 16: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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.

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.

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.

Page 17: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

Lenguaje de Manipulación de Datos (DML)Instrucción UPDATE

UPDATE Demo2

SET nombre = ‘PEDRO’,

estado = ‘UE’

WHERE codigo = 2 AND nombre = ‘RAUL’

Page 18: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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

Page 19: Unidad 6 Lenguaje Sql 2

Sergio Sánchez

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.