Sql Completo
El estándar de las Bases de Datos Relacionales
Elmasri/Navathe 07
• Definición de datos y restricciones (CREATE TABLE),
y cambios en el esquema (DROP y ALTER)
• Consultas (SELECT...FROM...WHERE) → restringidas *
• Actualización (INSERT, DELETE, UPDATE)
restringidas *
En este curso NO se cubren todos los aspectos de SELECT.
No se estudian, por ejemplo, SELECT anidados o la cláusulaHAVING
(consultar el temario de la asignatura).
En el examen NO se admiten soluciones que incluyan aspectos de
SQL no cubiertos en la asignatura.
FBD Tema 5 – Dpto. LSI - Donostia
1
SQL
(Structured Query Language)
•
•
Álgebra relacional → orden de las operaciones
SQL: lenguaje declarativo →
– Se indica cuál es el resultado esperado
– Permite que el SGBD seleccione las operaciones y
el ordenmás adecuados para obtener el resultado:
optimización
•
•
SGBD comerciales → son variantes de SQL
Estándares SQL: SQL1 1986, SQL2 1992, SQL3
(extiende SQL2 con conceptos de BD y OO)
•
SQL:
– Lenguaje de Definición de Datos (LDD)
– Lenguaje de Manipulación de Datos (LMD):
consulta y actualización
– Definición de vistas
– Especificación de seguridad y autorización
– Definición de restriccionesde integridad
– Especificación de control de transacciones
– Reglas para inclusión en lenguajes (C, PASCAL,...)
•
Nos centraremos en SQL2
SQL
Tabla
Fila
Columna
Mod. Relacional
Relación
Tupla
Atributo
FBD Tema 5 – Dpto. LSI - Donostia
2
Esquema y catálogo en SQL2
•
Esquema de BD: el término se incorporó en SQL2
CREATE SCHEMA Nombre [AUTHORIZATION Usuario];
Cuenta propietaria delesquema
•
Catálogo del SGBD: colección de esquemas en un
entorno SQL
Catálogo del SGBD
Esquema 1
Esquema 2
INFORMATION
_SCHEMA
Tablas
Elementos
de un
esquema
Restricciones
Vistas
Dominios
...
Autorizaciones
Esquema especial que da
a los usuarios autorizados
información de todos los
esquemas del catálogo del
SGBD
– RI: sólo entre relaciones del mismo catálogo del
SGBD
– Esquemas del catálogodel SGBD: pueden
compartir elementos (por ejemplo dominios)
FBD Tema 5 – Dpto. LSI - Donostia
3
Instrucción CREATE TABLE
Restricciones
Restricciones
(con
nombre)
(con nombre)
Atributos
Atributos
Restricciones
Restricciones
Atributos
Atributos
Fig 8.1(a)
No pueden tomar
valor nulo
CREATE TABLE DEPARTAMENTO
( NOMBRED
VARCHAR(15) NOT NULL,
NUMEROD
INT
NOT NULL,
NSS_JEFE
CHAR(9)
NOT NULL,FECHA_INIC_JEFE DATE, Clave primaria
PRIMARY KEY(NUMEROD),
Integridad de entidades
UNIQUE(NOMBRED),
Clave candidata
FOREIGN KEY(NSS_JEFE) REFERENCES EMPLEADO(NSS)
);
Clave extranjera (o externa)
Fig 8.1(b)
CREATE TABLE DEPARTAMENTO
( NOMBRED
VARCHAR(15) NOT NULL,
Valor por
defecto
NUMEROD
INT
NOT NULL DEFAULT ‘888665555’,
NSS_JEFE
FECHA_INIC_JEFE
CHAR(9)
DATE,
NOT NULL,
CONSTRAINT CLP_DPTOPRIMARY KEY(NUMEROD),
CONSTRAINT CLS_DPTO UNIQUE(NOMBRED),
CONSTRAINT CLE_JEFES_DPTO FOREIGN KEY(NSS_JEFE)
REFERENCES EMPLEADO(NSS)
ON DELETE SET DEFAULT
ON UPDATE CASCADE
);
Acciones: a realizar en caso de borrado (ON DELETE) o
modificación (ON UPDATE) del valor referenciado
Constraint:
se pone
nombre a la
RI, para poder
cambiarla o
eliminarla con
ALTER y
DROP
Opciones:
• CASCADE
• SETDEFAULT
• SET NULL
• RESTRICT (no poner ON UPDATE – ON DELETE)
FBD Tema 5 – Dpto. LSI - Donostia
4
Tipos de datos en SQL2
Enteros de diversos tamaños:
– INTEGER / INT
– SMALLINT
Reales:
– FLOAT
– REAL
– DOUBLE PRECISION
Números con formato:
– NUMERIC(i,j)
– DECIMAL(i,j) / DEC(i,j)
– i dígitos enteros y j dígitos
decimales
– Por defecto: i según la
implementación, j=0
Cadena de caracteres delongitud
fija:
– CHAR(n)
– CHARACTER(n)
Cadena de caracteres de longitud
variable:
– CHARACTER
VARYING(n)
– VARCHAR(n)
– CHAR VARYING(n)
– n=máximo definido. Por
defecto n=1
Cadena de bits de longitud fija:
– BIT(n)
– n = número de bits
– Por defecto n=1
Cadena de bits de longitud
variable:
– BIT VARYING(n)
– n=máximo definido. Por
defecto n=1
Fecha:
– DATE
– Sólo admite fechas válidas
– Generalmente...
Regístrate para leer el documento completo.