Beruflich Dokumente
Kultur Dokumente
Las restricciones se puede definir cuando creamos la tabla (CREATE TABLE) o posteriormente con la
sentencia ALTER TABLE.
Las posibles restricciones son:
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT
La restriccin NOT NULL sirve para especificar que una columna no acepta el valor NULL, es decir, que
esa columna siempre tiene que tener algn valor, no puede estar vaca.
Ejemplo SQL NULL
CREATE TABLE personas { nombre varchar(255) NOT NULL, apellido1 varchar(255) NOT NULL,
apellido2 varchar(255) }
Esta sentencia crea una tabla denominada 'personas', donde tenemos 3 columnas.
Las columnas 'nombre' y 'apellido' llevan NOT NULL, esto quiere decir que cualquier fila insertada en esta
tabla tiene que tener algn valor para las columnas 'nombre' y 'apellido1'.
La restriccin UNIQUE identifica de manera nica a cada fila de una tabla.
Puede haber varias restricciones UNIQUE en diferentes columnas de una tabla.
Existen varias formas diferentes de sintaxis segn el sistema de base de datos utilizado:
Ejemplo SQL UNIQUE para la base de datos MySQL
La sentencia anterior crea la tabla 'personas' con 4 columnas, donde la columna 'identifcador' tiene un
valor diferente para cada fila de la tabla.
Si intentamos insertar un fila con un identificador que ya exista, nos dar un error, y no nos dejar
insertarlo.
Ejemplo SQL UNIQUE para las bases de datos ORACLE, SQLSERVIR, ACCESS
CREATE TABLE personas { identificador int NOT NULL, nombre varchar(255) NOT NULL, apellido1
varchar(255) NOT NULL, PRIMARY KEY (identificador) }
Ejemplo PRIMARY KEY , clave primaria en ORACLE, SQLSERVER, ACCESS
CREATE TABLE personas { identificador int NOT NULL PRIMARY KEY, nombre varchar(255) NOT
NULL, apellido1 varchar(255) NOT NULL, }
La clave primaria (PRIMARY KEY) puede estar compuesta por varias columnas, por ejemplo por las
columnas 'identificador' y 'nombre', entonces se define as:
CREATE TABLE personas { identificador int NOT NULL, nombre varchar(255) NOT NULL, apellido1
varchar(255) NOT NULL, CONSTRAINT pers PRIMARY KEY (identificador, nombre) }
La clave primaria tambin se puede definir despus de haber creado la tabla, para eso utilizaremos el
comando ALTER TABLE
Ejemplo PRIMARY KEY con ALTER TABLE ALTER TABLE personas ADD PRIMARY KEY
(identificador)
Ejemplo PRIMARY KEY multiple ALTER TABLE ALTER TABLE personas CONSTRAINT pers
PRIMARY KEY (identificador, nombre)
La clave externa o FOREIGN KEY, es una columna o varias columnas, que sirven para sealar cual es la
clave primaria de otra tabla.
La columna o columnas sealadas como FOREIGN KEY, solo podrn tener valores que ya existan en la
clave primaria PRIMARY KEY de la otra tabla.
Ejemplo de FOREIGN KEY
Tabla "departamentos", con la clave primaria "dep"
dep
departamento
ADMINISTRACION
INFORMATICA
COMERCIAL
Tabla personas, con una clave externa FOREIGN KEY 'dep', que hace referencia a la clave primaria 'dep'
de la tabla anterior 'departamentos' y por tanto, solo puede tener un valor de los que tiene en esa tabla
per
nombre
apellido1
apellido2
dep
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
RODRIGUEZ
PEDRO
RUIZ
GONZALEZ
Borrar FOREIGN KEY en MySQL ALTER TABLE personas DROP FOREIGN KEY dep
Borrar FOREIGN KEY en ORACLE, SQLSERVER y ACCESS
CREATE TABLE departamentos { dep int NOT NULL, departamento varchar(255), CHECK (dep>0) }
Ejemplo CHECK en ORACLE, SQLSERVER y ACCESS:
CREATE TABLE departamentos { dep int NOT NULL CHECK (dep>0) departamento varchar(255), }
Ejemplo CHECK en ALTER TABLE en MySQL