LENGUAJE ESTRUCTURADO DE CONSULTAS LENGUAJE SQL LENGUAJE ESTRUCTURADO DE CONSULTAS Paula Quitral
INTRODUCCION SQL es un lenguaje normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. SQL es un lenguaje para organizar, gestionar y recuperar datos almacenados en una base de datos informática. El nombre "SQL" es una abreviatura de Structured Query Languaje (Lenguaje de consultas estructurado).
COMPONENTES DLL (definición de datos lógicos) permiten crear y definir nuevas bases de datos, campos e índices. Comando Descripción CREATE Utilizado para crear nuevas tablas, campos e índices DROP Empleado para eliminar tablas e índices ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos.
COMPONENTES DML (definición de manipulación de datos) permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. Comando Descripción SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación. UPDATE Utilizado para modificar los valores de los campos y registros especificados DELETE Utilizado para eliminar registros de una tabla de una base de datos
Sentencias de selección o consultas SELECT recupera datos de una base de datos y los devuelve en forma de resultados de la consulta El operador DISTINCT, si se incluye, debe preceder la primera expresión de columna. Este operador elimina las filas o registros duplicados del resultado de la consulta. SELECT DISTINCT PROVINCIA FROM ALUMNOS
Sentencias de selección, Funciones de agrupamiento SUM Devuelve la suma total de los valores de una expresión de columna o campo numérica . SUM(NUMERO_DE_HERMANOS) AVG Devuelve la media de los valores de una expresión de columna. AVG(NUMERO_DE_HERMANOS) COUNT Devuelve el número de valores en una expresión de columna. COUNT(MATRICULA) MAX Devuelve el valor más alto MIN Devuelve el valor más bajo SELECT MIN(FECHA_NACIMIENTO) FROM ALUMNOS
Sentencias de selección Cláusula FROM lista las tablas o ficheros que contienen los datos a recuperar por la consulta. FROM nombretabla [alias_tabla] ... Cláusula WHERE incluye solo ciertas filas o registros de datos SELECT ALUMNO FROM ALUMNOS WHERE YEAR(FECHA_NACIMIENTO) > 1985
Sentencias de selección Cláusula GROUP BY especifica una consulta sumaria. agrupa todas las filas similares y luego produce una fila sumaria de resultados para cada grupo. Cláusula HAVING incluye solo ciertos grupos producidos por la cláusula GROUP BY en los resultados de la consulta SELECT GRUPO, COUNT(*) FROM MATRICUL WHERE ANNO = 1995 GROUP BY GRUPO HAVING COUNT(*) > 30
Sentencias de selección Cláusula ORDER BY ordena los resultados de la consulta en base a los datos de una o más columnas SELECT NOMBRE, APELLIDOS FROM ALUMNOS ORDER BY FECHA_NACIMIENTO DESC Operador UNION combina el resultado de dos sentencias SELECT en un único resultado SELECT APELLIDOS, NOMBRE FROM ALUMNOS UNION SELECT APELLIDOS, NOMBRE FROM PROFESOR
Operadores Numéricos + Suma - Resta * Multiplicación / División
Operadores de relación = Igual a <> Distinto de > Mayor que >= Mayor o igual que < Menor que <= Menor o igual que
Operadores de relación Like Coincidencia con un patrón Not Like No coincidencia con un patrón Is Null Igual a nulo (vacío) Is Not Null No es nulo (no está vacío) Between Rango de valores entre una cota inferior y otra superior
Ejemplos Operadores de Relación Evaluacion = ‘F’ Fecha_matricula >= {10/01/95} Apellidos LIKE ‘Rodri%’ Grupo IS NULL Notas <>4 Notas beetwen 4 and 7
Operadores Lógicos Dos o más condiciones pueden ser combinadas para formar expresiones más complejas con distintos criterios. Cuando existen dos o más condiciones deberán estar unidas por AND o OR ANO = 1995 AND CURSO = ‘4º Medio’ Se debe cumplir las dos condiciones SEXO = ‘F’ OR PAIS IS NOT NULL Basta con que una de las dos sea cierta. El operador lógico NOT es útil para poner al contrario una condición. NOT (ANO = 1995 AND CURSO = ‘4º Medio’)
TIPOS DE CAMPO Alfanuméricos Contienen cifras y letras. Presentan una longitud limitada (255 caracteres) Numéricos Existen de varios tipos, principalmente, enteros (sin decimales) y reales (con decimales). Booleanos Poseen dos formas: Verdadero y falso (Sí o No)
TIPOS DE CAMPO Fechas Almacenan fechas facilitando posteriormente su explotación. Memos Son campos alfanuméricos de longitud ilimitada. Presentan el inconveniente de no poder ser indexados Autoincrementables Son campos numéricos enteros que incrementan en una unidad su valor para cada registro incorporado. Su utilidad resulta más que evidente: Servir de identificador ya que resultan exclusivos de un registro.
CREACION DE UNA BASE DE DATOS La sentencia para crear una base de datos tiene la forma: CREATE DATABASE nombre_BASEDATO CREATE DATABASE Colegio
DESTRUCION DE UNA BASE DE DATOS El formato para destruir o borrar una base de datos es DROP DATABASE nombrebasedato DROP DATABASE colegio
CREACION DE UNA TABLA La sentencia para crear una tabla tiene la forma: CREATE TABLE nombre_tabla ( nombre_columna tipo_columna (tamaño) [ cláusula_defecto ] [ vínculos_de_columna ] [ , nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ] ... ] [ , [ vínculo_de tabla] ... ] ). CREATE TABLE ALUMNOS (RUT varchar(10) not null, Nombre varchar(50), edad int )
DESTRUCION DE UNA TABLA El formato para destruir o borrar un tabla es DROP TABLE nombrefichero DROP TABLE ALUMNOS En nombre del fichero puede ir la ruta donde se encuentra este.
Sentencia INSERT Se utiliza para añadir registros a las tablas de la base de datos. El formato de la sentencia es: INSERT INTO nombre_fichero [(nombre_columna, ...)] VALUES (expr, ...) INSERT INTO AUMNOS (Rut, Nombres, edad) VALUES (‘12345678-9’, ‘Carlos Garcia’,’17’)
Sentencia UPDATE Se utiliza para cambiar el contenido de los registros de una tabla de la base de datos. Su formato es: UPDATE nombre_fichero SET nombre_columna = expr, ... [WHERE { condición }] UPDATE MATRICULA SET FECHA_MATRICULA = TODAY() WHERE FECHA_MATRICULA IS NULL UPDATE ALUMNOS SET EDAD = (SELECT MAX(EDAD) FROM ALUMNOS WHERE EDAD IS NOT NULL) WHERE EDAD IS NULL
Sentencia DELETE Se utiliza para borrar registros de una tabla de la base de datos. El formato de la sentencia es: DELETE FROM nombre_fichero [WHERE { condición }] DELETE FROM ALUMNOS WHERE EDAD>=20 DELETE FROM NOTAS WHERE ANO < 1995 AND EVALUACION <> ‘F’
TRANSACCIONES Una transacción es una serie de cambios en la base de datos que deben ser tratadas como una sola. En otras palabras, que se realicen todos o que no se haga ninguno, pues de lo contrario se podrían producir inconsistencias en la base de datos. Cuando se activa una transacción BEGIN TRAN los cambios que se van realizando quedan en un estado de provisionalidad hasta que se realiza un COMMIT TRAN, el cual hará definitivos los cambios o hasta realizar un ROLLBACK TRAN que deshará todos los cambios producidos
EJEMPLO TRANSACCIONES transacción: BEGIN TRAN. UPDATE ALUMNOS SET EDAD = 15 Si el objetivo no era MODIFICAR la edad de todas las filas ejecute ROLLBACK TRAN De lo contrario se ejecuta COMMIT TRAN