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