Está en la página 1de 12

SQL: Sublenguaje de Definicin de Datos

Tablas
Ejemplo: LECTOR
CREATE TABLE LECTOR ( nombre VARCHAR(100) NOT NULL, cedula NUMBER(10) NOT NULL, dir_ciudad VARCHAR(30) NOT NULL, dir_barrio VARCHAR(30) NOT NULL, dir_calle VARCHAR(30) NOT NULL, dir_numero VARCHAR(30) NOT NULL, tel_personal NUMBER(10) NOT NULL, tel_laboral NUMBER(10), tel_opcional NUMBER(10) )

Clave primaria
Sintaxis en CREATE TABLE
<atributo>..PRIMARY KEY PRIMARY KEY (<lista de atributos>)

Semntica
La primera para clave primaria simple La segunda para clave primaria compuesta Ejemplo: Clave en Libro
CREATE TABLE LIBRO ( nombre VARCHAR(100), codigo INT PRIMARY KEY, autor VARCHAR(30), editorial VARCHAR(30) )

Claves alternas
Sintaxis en CREATE TABLE
<atributo>..UNIQUE UNIQUE (<lista de atributos>)

Semntica
La primera para clave alterna simple La segunda para clave alterna compuesta Ejemplo: Clave en Librera
CREATE TABLE LIBRERIA ( nombre VARCHAR(100) UNIQUE, rif INT PRIMARY KEY, direccion VARCHAR(100), )

Claves forneas
Sintaxis en CREATE TABLE
-<atributo>..REFERENCES <tabla>(<atributo>) -FORAIN KEY (<lista de atributos>) REFERENCES <tabla>(<lista de atributo>) Semntica

Indica la tabla y los atributos que se referencian

Ejemplo: Clave en Ofrece


CREATE TABLE Ofrece ( codlib INT REFERENCES LIBRO(codigo), riflib INT REFERENCES LIBRERIA(rif), precio REAL, existencia INT(30), PRIMARY KEY (riflib,codlib) )

Problemas de modificacin CF
Insercin: clave fornea no nula ni corresponde a una tupla referenciada Actualizacin: clave fornea no nula ni corresponde a una tupla referenciada Eliminacin: tupla referenciada por clave fornea Actualizacin: tupla referenciada por clave fornea

Mantenimiento de Integridad Referencial


Rechazar: no admite la modificaicin (poltica por defecto) Cascada(3,4): propaga la actualizacin o eliminacin a las tuplas que le referencian Colocar nulo (3,4): coloca nulo en las calves forneas que refrencian a la tupla eliminada o actualizada

Integridad Referencial
Ejemplo: Clave en Ofrece
CREATE TABLE Ofrece ( codlib INT REFERENCES LIBRO(codigo) ON DELETE CASCADE ON UPDATE CASCADE, riflib INT REFERENCES LIBRERIA(rif) ON UPDATE CASCADE, precio REAL, existencia INT(30), PRIMARY KEY (riflib,codlib) )

Restriccin de Nulos
Sintaxis en CREATE TABLE
<atributo>..NOT NULL

Semntica
El atributo no puede ser nulo En una insercin debe especificarse valor Ejemplo: Autor de un Libro
CREATE TABLE LIBRO ( nombre VARCHAR(100), codigo INT PRIMARY KEY, autor VARCHAR(30) NOT NULL, editorial VARCHAR(30) )

Restriccin de Con Condiciones


Sintaxis en CREATE TABLE
Semntica
<atributo>..CHECK <condicin> El atributo debe cumplir la condicin Los condicin es como en un WHERE Ojo:No Claves Forneas

Ejemplo: El sexo M o F
CREATE TABLE LECTOR ( ci CHAR(12) PRIMARY KEY, nombre VARCHAR(30) NOT NULL, sexo CHAR CHECK (sexo IN (F,M) )

Restriccin de Dominio
Sintaxis
CREATE DOMAIN <nombre> <tipo> CHECK <condicin(VALUE)>

Semntica

VALUE: Indica el valor Los condicin es como en un WHERE

Ejemplo: Dominio de edades


CREATE DOMAIN Edades INT CHECK (VALUE>=0 AND VALUE<=120) )

Restriccin de Tuplas
Sintaxis en CREATE TABLE
...CHECK <condicin>

Semntica
La tupla debe cumplir la condicin

Ejemplo: Los cdigos de los libros UNILIT


CREATE TABLE LIBRO ( nombre VARCHAR(100), codigo INT PRIMARY KEY, autor VARCHAR(30) NOT NULL, editorial VARCHAR(30), CHECK (codigo>=10000 AND cdigo <=11000 OR editorial<>UNILIT) )

También podría gustarte