350 likes | 554 Views
EL LENGUAJE ESTÁNDAR SQL. CONTENIDO. Introducción Sublenguaje de Definición de Datos Sublenguaje de Manipulación de Datos. INTRODUCCIÓN. SQL: Structured Query Language Características: Estructuras de datos simples Operadores potentes Periodos de aprendizaje inicial cortos
E N D
CONTENIDO • Introducción • Sublenguaje de Definición de Datos • Sublenguaje de Manipulación de Datos Almacenes y Minería de Datos
INTRODUCCIÓN SQL: Structured Query Language Características: • Estructuras de datos simples • Operadores potentes • Periodos de aprendizaje inicial cortos • Mejora de la independencia de datos • Modo de uso dual (interactivo o inmerso) • Optimización Almacenes y Minería de Datos
Las sentencias SQL pueden dividirse en cuatro tipos: • Sublenguaje de definición de datos (DDL) • Sublenguaje de control de datos (DCL) • Sublenguaje de manipulación de datos (DML) • Lenguaje procedural (PL) Almacenes y Minería de Datos
DDL Proporciona órdenes para definir esquemas de relación, eliminar relaciones, crear índices y modificar esquemas de relación. DCL Incluye órdenes que permiten especificar controles de seguridad a los datos almacenados como definición de vistas, especificación de privilegios de acceso, comprobación de condiciones de integridad y control de concurrencia. Almacenes y Minería de Datos
DML • Interactivo: lenguaje de consulta basado en el álgebra relacional y el calculo relacional de tuplas. También incluye ordenes para insertar, suprimir y modificar tuplas de la base de datos • Inmerso: lenguaje diseñado para utilizar dentro de otros lenguajes. PL Lenguaje para la creación de procedimientos almacenados. Almacenes y Minería de Datos
DDL • Creación de un esquema CREATE SCHEMA <nombre_esquema> AUTHORIZACION <nombre> • Definición de una relación (tabla): CREATE TABLE R (A1 D1,A2 D2,…,An Dn) Donde R es el nombre de la relación, Ai el nombre de un atributo y Di tipo de datos de los valores en el dominio del atributo Ai Almacenes y Minería de Datos
Ejemplos CREATE TABLE DEPARTAMENTO ( Id_dpto NUMBER NOT NULL, Nombre VARCHAR(50) NOT NULL, Nº_empleados NUMBER NULL, fecha_creac DATE NULL, PRIMARY KEY(id_dpto) ); 1 n Almacenes y Minería de Datos
Ejemplos • CREATE TABLE EMPLEADOS ( Id_empleado NUMBER NOT NULL, Nombre VARCHAR(15) NOT NULL, Ap1 VARCHAR(25) NOT NULL, Ap2 VARCHAR(25) NULL, Direccion VARCHAR(50) NOT NULL, Fecha_nac DATE NOT NULL, Salario NUMBER NOT NULL, Id_dpto NUMBER NOT NULL, PRIMARY KEY(id_empleado) FOREIGN KEY (Id_dpto) REFERENCES DEPARTAMENTO (Id_dpto) ); Almacenes y Minería de Datos
DDL • Modificar : • Añadir nuevos atributos a una relación • ALTER TABLE <nombre_tabla> ADD <atributo>tipo • Añadir una nueva FK a una relación • ALTER TABLE <nombre tabla> ADDCONSTRAINT <nombre_FK> REFERENCES <nombre_tabla>(nombre_FK) • Añadir una una PK a una relación • ALTER TABLE R ADDCONSTRAINT PRIMARY KEY (nombre) tipo Almacenes y Minería de Datos
DDL • Eliminación de una relación: DROP TABLE <nombre_tabla> • Crear/Borrar índices sobre las tablas: CREATE INDEX <nombre_incide> ON <nombre_tabla> <nombre_atributos> DROP INDEX <nombre_indice> Es recomendable poner un indice para cada FK Almacenes y Minería de Datos
VISTAS • Las vistas son tablas virtuales. • Al usuario se le permite el acceso a la vista y no a las tablas CREATE VIEW dpto_diez AS SELECT ci, nombre, direccion FROM empleados WHERE num_dpt=1; Almacenes y Minería de Datos
DDL • Pasos a seguir: 1 Crear SCHEMA 2 Crear Tabla 3 Crear PK 4 Crear FK 5 Crear Indices Almacenes y Minería de Datos
DML • Permite acceder a la información contenida en la base de datos para su consulta y actualización, a través de sus cuatro verbos de manipulación: • SELECT • INSERT • UPDATE • DELETE Almacenes y Minería de Datos
DML • Insertar datos: INSERT INTO <nombre_tabla> VALUES( , , ); Ejemplo: INSERT INTO Departamento VALUES (50, ‘Análisis’, 30, NULL) INSERT INTO Departamento (Id_dpto,Nombre,nº_empleados) VALUES (50, ‘Análisis’, 30) el resto de los valores de los campos que quedan los inserta con valores nulos. Almacenes y Minería de Datos
DML • Borrar datos: DELETE FROM <nombre_tabla> WHERE <condicion>; Ejemplo: DELETE FROM Departamentos WHERE Fecha_creac < ‘1/1/2000’ Almacenes y Minería de Datos
DML • Actualizar datos: UPDATE <nombre_tabla>SET <atributos> WHERE <condicion>; Ejemplo: UPDATE Departamentos SET Nombre=‘Análisis’ WHERE Id_dpto=1; Me pone en donde Id_dpto=1, en la casilla nombre, Análisis. Almacenes y Minería de Datos
La estructura básica de una consulta SQL • Usa una mezcla de estructuras del álgebra relacional y del cálculo relacional. • Consta de tres cláusulas: • SELECT • FROM • WHERE Almacenes y Minería de Datos
SELECT <nombre_campos> FROM <nombre_tablas> WHERE <condiciones> • SELECT:se utiliza para listar los atributos que se desean en el resultado de una consulta. La lista de atributos puede sustituirse por * para seleccionar todos los atributos de todas las relaciones que aparezcan en la cláusula from. • FROM: lista las relaciones que se van a examinar en la evaluación de la expresión. • WHERE: consta de un predicado que incluye atributos de las relaciones que aparecen en la cláusula from. Almacenes y Minería de Datos
SELECT <nombre_campos> FROM <nombre_tablas> WHERE <condiciones> • El resultado de la ejecución de una sentencia SELECT es siempre otra tabla. Las columnas de la tabla resultante serán las que figuren enumeradas tras la cláusula SELECT, y en el mismo orden en el que figuran tras ella. Almacenes y Minería de Datos
SELECT A1, A2,…, An FROM R1, R2,…, Rn WHERE condicion SELECT DISTINCT A1, A2,…, An FROM R SELECT * FROM R WHERE P SELECT * FROM R, S SELECT * FROM R,S WHERE R.Ai=S.Aj SELECT * FROM R UNION SELECT * FROM S Almacenes y Minería de Datos
Ejemplos • SELECT talla, color FROM articulos; • SQL no elimina tuplas duplicadas a menos que se indique con la cláusula opcional DISTINCT • SELECT DISTINCT codigo_p, cantidad FROM suministros; • Selección: • SELECT * FROM articulos WHERE color=‘ROSA’ • SELECT * FROM articulos WHERE color=‘ROSA’ AND talla>38; Almacenes y Minería de Datos
Producto cartesiano: basta con incluir varias relaciones en la cláusula FROM • SELECT * FROM proveedores, suministros; • Producto natural: restricción producto cartesiano mediante una condicion • SELECT * FROM proveedores, suministros WHERE proveedores.codigo_p=suministros.codigo_p • SELECT * FROM proveedores P, suministros S WHERE P.codigo_p=S.codigo_p Almacenes y Minería de Datos
SQL toma algunos aspectos del cálculo relacional • Permite definir variables de tipo tupla. Se definen en la cláusula FROM y se asocian a una tabla en particular. • Empleados que trabajan en el mismo departamento que Perez: • SELECT otro.nombre FROM empleado perez, empleado otro WHERE perez.nombre=‘Perez’ AND perez.num_dpto=otro.num_depto; Almacenes y Minería de Datos
Funciones de agregación: • Permite obtener valores agregados, es decir, un solo valor que resume la información de varias filas. Almacenes y Minería de Datos
Obtener la suma de los importes de las ordenes de compra: • SELECT SUM(importe) FROM orden; • Numero de productos que se fabrican • SELECT COUNT(DISTINCT cod_prod) FROM productos; • Empleados que trabajan en el departamento 10 • SELECT COUNT(*) FROM empleados WHERE num_dpto=10; • Numero de empleados de cada departamento • SELECT num_dept, COUNT(*) FROM empleados GROUP BY num_dpto; Almacenes y Minería de Datos
Cláusula HAVING: selecciona alguno de los grupos definidos por GROUP BY, según una condición. • Lista de los departamentos en que trabaja mas de 50 empleados • SELECT num_dpto, COUNT(*) FROM empleados GROUP BY num_dpto HAVING COUNT(*)>50; • Cláusula ORDER BY: utilizada para ordenar los registros seleccionados • SELECT nombre, apellidos FROM alumnos ORDER BY fecha_nacimiento DESC Almacenes y Minería de Datos
OPERADORES LÓGICOS Almacenes y Minería de Datos
OPERADORES DE COMPARACIÓN Almacenes y Minería de Datos