unidad 6 lenguaje sql 2
TRANSCRIPT
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
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
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 ( != )
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)
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.
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
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.
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.
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.
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
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
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
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
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.
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’)
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.
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’
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
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.