Venta de una idea o un producto

Download Report

Transcript Venta de una idea o un producto

EL LENGUAJE
ESTÁNDAR
SQL
CONTENIDO
Introducción
Sublenguaje de Definición de Datos
Sublenguaje de Manipulación de Datos
Almacenes y Minería de Datos
2
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
3
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
4
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
5
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
6
Sentencia 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
Almacenes y Minería de Datos
7
Sentencia 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)
Almacenes y Minería de Datos
8
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
9
Ejemplos
Empleados
Departamento
# Id_dpto
* Nombre
o Nº empleados
o Fecha_creac
1
n
# Id_empleado
* Nombre
* Ap1
o Ap2
* Dirección
* Fecha_nacim
* Salario
* Id_dpto
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)
);
Almacenes y Minería de Datos
10
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
);
11
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> ADD CONSTRAINT
<nombre_FK> REFERENCES
<nombre_tabla>(nombre_FK)
Añadir una una PK a una relación
ALTER TABLE R ADD CONSTRAINT PRIMARY KEY
(nombre) tipo
Almacenes y Minería de Datos
12
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
13
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
14
DDL
• Pasos a seguir:
1
2
3
4
5
Crear
Crear
Crear
Crear
Crear
SCHEMA
Tabla
PK
FK
Indices
Almacenes y Minería de Datos
15
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
16
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
17
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
18
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
19
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
20
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
21
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
22
Almacenes y Minería de Datos
23
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
24
• 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
25
• 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
26
• 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
27
• Funciones de
agregación:
Permite obtener
valores agregados,
es decir, un solo
valor que resume la
información de varias
filas.
Promedio
AVG
Suma
SUM
Mínimo
MIN
Máximo
MAX
Cantidad
COUNT
Agrupación GROUP BY
Almacenes y Minería de Datos
28
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
29
• 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
30
OPERADORES LÓGICOS
AND
OR
NOT
Evalua dos condiciones y devuelve un
valor de verdad solo si ambas son
ciertas.
Evalua dos condiciones y devuelve un
valor de si alguna de las dos es cierta.
Devuelve el valor contrario de la
expresión.
Almacenes y Minería de Datos
31
OPERADORES DE COMPARACIÓN
< ( o<=)
Menor que (o igual)
> (o >=)
Mayor que (o igual)
<> o !=
Distinto
=
Igual
BETWEEN
Entre. Utilizado para especificar un
intervalo de valores.
Como. Utilizado para la comparación
de un modelo
En. Utilizado para especificar
registros de una base de datos
LIKE
IN
Almacenes y Minería de Datos
32