Title: EL LENGUAJE EST
1EL LENGUAJE ESTÁNDARSQL
2CONTENIDO
- Introducción
- Sublenguaje de Definición de Datos
- Sublenguaje de Manipulación de Datos
3INTRODUCCIÓ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
4- 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)
5DDL
- 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.
6DML
- 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.
7Sentencia DDL Objetivo
Alter procedure Recompilar un procedimiento almacenado
Alter table Añadir o redifinir una columna, modificar la asignación de almacenamiento
Analyze Recoger estadísticas de rendimiento sobre los objetos de la BD
Create table (ó index) Crear una tabla (ó indice)
Drop table (ó index) Eliminar una tabla (ó indice)
Grant Conceder privilegios a un usuario
Truncate Eliminar todas las filas de una tabla
Revoke Retirar los permisos de un usuario
8Sentencia DML Objetivo
Insert Añadir filas de datos a una tabla
Delete Eliminar filas de datos de una tabla
Update Modificar los datos de una tabla
Select Recuperar los datos de una tabla
Commit Confirmar como permanentes las modificaciones realizadas
Rollback Deshacer todas las modificaciones realizadas desde la última confirmación (último commit)
9DDL
- Creación de un esquema
- CREATE SCHEMA ltnombre_esquemagt AUTHORIZACION
ltnombregt - 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
10Ejemplos
Empleados
Id_empleado Nombre Ap1 o Ap2 Dirección Fecha_nacim Salario Id_dpto
Departamento
Id_dpto Nombre o Nº empleados o Fecha_creac
1
n
- 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)
- )
11Ejemplos
- 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) - )
12DDL
- Modificar
- Añadir nuevos atributos a una relación
- ALTER TABLE ltnombre_tablagt ADD ltatributogttipo
- Añadir una nueva FK a una relación
- ALTER TABLE ltnombre tablagt ADD CONSTRAINT
ltnombre_FKgt REFERENCES ltnombre_tablagt(nombre_FK) - Añadir una una PK a una relación
- ALTER TABLE R ADD CONSTRAINT PRIMARY KEY (nombre)
tipo
13DDL
- Eliminación de una relación
- DROP TABLE ltnombre_tablagt
- Crear/Borrar índices sobre las tablas
- CREATE INDEX ltnombre_incidegt ON ltnombre_tablagt
ltnombre_atributosgt - DROP INDEX ltnombre_indicegt
- Es recomendable poner un indice para
- cada FK
14- 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_dpt1
15DDL
- Pasos a seguir
- 1 Crear SCHEMA
- 2 Crear Tabla
- 3 Crear PK
- 4 Crear FK
- 5 Crear Indices
16DML
- 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
17DML
- Insertar datos
- INSERT INTO ltnombre_tablagt VALUES( , , )
- Ejemplo
- INSERT INTO Departamento VALUES (50, Análisis,
30, NULL) - INSERT INTO Departamento (Id_dpto,Nombre,nº_emplea
dos) VALUES (50, Análisis, 30) ?el resto de los
valores de los campos que quedan los inserta con
valores nulos.
18DML
- Borrar datos
- DELETE FROM ltnombre_tablagt WHERE ltcondiciongt
- Ejemplo
- DELETE FROM Departamentos WHERE Fecha_creac lt
1/1/2000
19DML
- Actualizar datos
- UPDATE ltnombre_tablagtSET ltatributosgt WHERE
ltcondiciongt - Ejemplo
- UPDATE Departamentos SET NombreAnálisis WHERE
Id_dpto1 - ? Me pone en donde Id_dpto1, en la casilla
nombre, Análisis.
20- 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
21- SELECT ltnombre_camposgt FROM ltnombre_tablasgt WHERE
ltcondicionesgt - 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.
22- SELECT ltnombre_camposgt FROM ltnombre_tablasgt WHERE
ltcondicionesgt - 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.
23(No Transcript)
24- 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.AiS.Aj
- SELECT FROM R UNION SELECT FROM S
25- 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 colorROSA
- SELECT FROM articulos WHERE colorROSA AND
tallagt38
26- 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_psuministros.codigo_p - SELECT FROM proveedores P, suministros S WHERE
P.codigo_pS.codigo_p
27- 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.nombrePerez AND
perez.num_dptootro.num_depto
28Promedio AVG
Suma SUM
Mínimo MIN
Máximo MAX
Cantidad COUNT
Agrupación GROUP BY
- Funciones de agregación
- Permite obtener valores agregados, es decir, un
solo valor que resume la información de varias
filas.
29- 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_dpto10
- Numero de empleados de cada departamento
- SELECT num_dept, COUNT() FROM empleados GROUP BY
num_dpto
30- 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()gt50 - Cláusula ORDER BY utilizada para ordenar los
registros seleccionados - SELECT nombre, apellidos FROM alumnos ORDER BY
fecha_nacimiento DESC
31OPERADORES LÓGICOS
AND Evalua dos condiciones y devuelve un valor de verdad solo si ambas son ciertas.
OR Evalua dos condiciones y devuelve un valor de si alguna de las dos es cierta.
NOT Devuelve el valor contrario de la expresión.
32OPERADORES DE COMPARACIÓN
lt ( olt) Menor que (o igual)
gt (o gt) Mayor que (o igual)
ltgt o ! Distinto
Igual
BETWEEN Entre. Utilizado para especificar un intervalo de valores.
LIKE Como. Utilizado para la comparación de un modelo
IN En. Utilizado para especificar registros de una base de datos