Sei sulla pagina 1di 31

Sublenguaje de Definicin de

Datos
Sublenguaje de
Manipulacin de Datos
BD

INTRODUCCIN
SQL: Structured Query Language
Caractersticas:
Estructuras de datos simples
Operadores potentes
Periodos de aprendizaje inicial cortos
Mejora de la independencia de datos
Modo de uso dual (interactivo o
inmerso)
Optimizacin
Almacenes y Minera de Datos

Las sentencias SQL pueden


dividirse en cuatro tipos:
Sublenguaje de definicin de datos
(DDL)
Sublenguaje de control de datos
(DCL)
Sublenguaje de manipulacin de
datos (DML)
Lenguaje procedural (PL)
Almacenes y Minera de Datos

DDL
Proporciona rdenes para definir
esquemas de relacin, eliminar
relaciones, crear ndices y
modificar esquemas de relacin.
DCL
Incluye rdenes que permiten
especificar controles de seguridad
a los datos almacenados como
definicin de vistas, especificacin
de privilegios de acceso,
comprobacin de condiciones de
Almacenes y Minera de Datos
4
integridad y control de

DML
Interactivo: lenguaje de consulta
basado en el lgebra relacional y
el calculo relacional de tuplas.
Tambin incluye ordenes para
insertar, suprimir y modificar
tuplas de la base de datos
Inmerso: lenguaje diseado para
utilizar dentro de otros lenguajes.
PL
Lenguaje para la creacin de
procedimientos almacenados.
Almacenes y Minera de Datos

Sentencia DDL

Objetivo

Alter procedure

Recompilar un procedimiento
almacenado
Aadir o redifinir una columna,
modificar la asignacin de
almacenamiento
Recoger estadsticas de
rendimiento sobre los objetos de la
BD
Crear una tabla ( indice)

Alter table

Analyze

Create table
( index)
Drop table (
index)
Grant
Truncate

Eliminar una tabla ( indice)


Conceder privilegios a un usuario
Eliminar todas las filas de una
Almacenes
6
tablay Minera de Datos

Sentencia DML Objetivo


Insert
Delete
Update
Select
Commit
Rollback

Aadir filas de datos a una tabla


Eliminar filas de datos de una
tabla
Modificar los datos de una tabla
Recuperar los datos de una tabla
Confirmar como permanentes las
modificaciones realizadas
Deshacer todas las
modificaciones realizadas desde
la ltima confirmacin (ltimo
commit)
Almacenes y Minera de Datos

DDL
Creacin de un esquema
CREATE SCHEMA <nombre_esquema>
AUTHORIZACION <nombre>

Definicin de una relacin (tabla):


CREATE TABLE R (A1 D1,A2 D2,,An Dn)
Donde R es el nombre de la relacin, Ai el
nombre de
un atributo y Di tipo de datos de los valores en el
dominio del atributo Ai
Almacenes y Minera de Datos

Ejemplos
Empleados

Departamento
# Id_dpto
* Nombre
o N empleados
o Fecha_creac

# Id_empleado
* Nombre
* Ap1
o Ap2
* Direccin
* 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 Minera 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 Minera de Datos
10

DDL
Modificar :
Aadir nuevos atributos a una relacin
ALTER TABLE <nombre_tabla> ADD
<atributo>tipo
Aadir una nueva FK a una relacin
ALTER TABLE <nombre tabla> ADD
CONSTRAINT <nombre_FK> REFERENCES
<nombre_tabla>(nombre_FK)
Aadir una una PK a una relacin
ALTER TABLE R ADD CONSTRAINT PRIMARY
KEY (nombre) tipo
Almacenes y Minera de Datos

11

DDL
Eliminacin de una relacin:
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 Minera de Datos

12

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 Minera de Datos

13

DDL
Pasos a seguir:
1
2
3
4
5

Crear
Crear
Crear
Crear
Crear

SCHEMA
Tabla
PK
FK
Indices

Almacenes y Minera de Datos

14

DML
Permite acceder a la informacin
contenida en la base de datos para
su consulta y actualizacin, a
travs de sus cuatro verbos de
manipulacin:
SELECT
INSERT
UPDATE
DELETE
Almacenes y Minera de Datos

15

DML
Insertar datos:
INSERT INTO <nombre_tabla>
VALUES( , , );
Ejemplo:
INSERT INTO Departamento VALUES (50,
Anlisis, 30, NULL)
INSERT INTO Departamento
(Id_dpto,Nombre,n_empleados) VALUES
(50, Anlisis, 30) el resto de los valores de los
campos que quedan los inserta con valores nulos.
Almacenes y Minera de Datos

16

DML
Borrar datos:
DELETE FROM <nombre_tabla> WHERE
<condicion>;
Ejemplo:
DELETE FROM Departamentos WHERE
Fecha_creac < 1/1/2000

Almacenes y Minera de Datos

17

DML
Actualizar datos:
UPDATE <nombre_tabla>SET <atributos>
WHERE <condicion>;

Ejemplo:
UPDATE Departamentos SET
Nombre=Anlisis WHERE
Id_dpto=1;
Me pone en donde Id_dpto=1, en la casilla nombre,
Anlisis.
Almacenes y Minera de Datos

18

La estructura bsica de una consulta


SQL
Usa una mezcla de estructuras del
lgebra relacional y del clculo
relacional.
Consta de tres clusulas:
SELECT
FROM
WHERE

Almacenes y Minera de Datos

19

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 clusula from.

FROM: lista las relaciones que se van a


examinar en la evaluacin de la expresin.

WHERE: consta de un predicado que


incluye atributos
de las relaciones que
Almacenes y Minera de Datos
20
aparecen en la clusula from.

SELECT <nombre_campos> FROM


<nombre_tablas> WHERE
<condiciones>

El resultado de la ejecucin de
una sentencia SELECT es
siempre otra tabla. Las columnas
de la tabla resultante sern las
que figuren enumeradas tras la
clusula SELECT, y en el mismo
orden en el que figuran tras ella.
Almacenes y Minera de Datos

21

Almacenes y Minera de Datos

22

SELECT A1, A2,, An FROM R1, R2,,


Rn WHERE condicion
SELECT
R
SELECT
SELECT
SELECT

DISTINCT A1, A2,, An FROM


* FROM R WHERE P
* FROM R, S
* FROM R,S WHERE R.Ai=S.Aj

SELECT * FROM R UNION SELECT *


FROM S
Almacenes y Minera de Datos

23

Ejemplos
SELECT talla, color FROM articulos;

SQL no elimina tuplas duplicadas a


menos que se indique con la clusula
opcional DISTINCT
SELECT DISTINCT codigo_p, cantidad FROM
suministros;

Seleccin:
SELECT * FROM articulos WHERE
color=ROSA
SELECT * FROM articulos WHERE
color=ROSA AND talla>38;
Almacenes y Minera de Datos

24

Producto cartesiano: basta con


incluir varias relaciones en la
clusula FROM
SELECT * FROM proveedores,
suministros;

Producto natural: restriccin


producto cartesiano mediante una
condicion
SELECT * FROM proveedores, suministros
WHERE
proveedores.codigo_p=suministros.codigo_p
SELECT * FROM proveedores P, suministros
Almacenes y Minera de Datos
25
S WHERE P.codigo_p=S.codigo_p

SQL toma algunos aspectos del


clculo relacional
Permite definir variables de tipo
tupla. Se definen en la clusula 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 Minera de Datos

26

Funciones de
agregacin:
Permite obtener
valores
agregados, es
decir, un solo
valor que resume
la informacin de
varias filas.

Promedi
o

AVG

Suma

SUM

Mnimo

MIN

Mximo

MAX

Cantidad

COUNT

Agrupaci
n

GROUP
BY

Almacenes y Minera de Datos

27

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 Minera de Datos

28

Clusula HAVING: selecciona


alguno de los grupos definidos por
GROUP BY, segn una condicin.
Lista de los departamentos en que
trabaja mas de 50 empleados
SELECT num_dpto, COUNT(*) FROM
empleados GROUP BY num_dpto HAVING
COUNT(*)>50;

Clusula ORDER BY: utilizada para


ordenar los registros seleccionados
SELECT nombre, apellidos FROM alumnos
ORDER BY fecha_nacimiento DESC
Almacenes y Minera de Datos

29

OPERADORES LGICOS
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
expresin.

Almacenes y Minera de Datos

30

OPERADORES DE COMPARACIN
< ( o<=) Menor que (o igual)
> (o >=) Mayor que (o igual)
<> o !=

Distinto

Igual

BETWEEN Entre. Utilizado para especificar


un intervalo de valores.
LIKE
Como. Utilizado para la
comparacin de un modelo
IN
En. Utilizado para especificar
registros de una base de datos
Almacenes y Minera de Datos

31

Potrebbero piacerti anche