Академический Документы
Профессиональный Документы
Культура Документы
Las CONSTRAINTS son restricciones que se utilizan para limitar el tipo de dato que puede recibir
una columna de una tabla.
Las restricciones se puede definir cuando creamos la tabla (CREATE TABLE) o posteriormente con
la sentencia ALTER TABLE.
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT
La restricción NOT NULL sirve para especificar que una columna no acepta el valor NULL,
es decir, que esa columna siempre tiene que tener algún valor, no puede estar vacía.
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 algún valor para las columnas 'nombre' y 'apellido1'.
1
Base de Datos IV UNIVERSIDAD POLITECNICA Y ARTISTICA DEL PARAGUAY - UPAP
Existen varias formas diferentes de sintaxis según el sistema de base de datos utilizado:
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.
La restricción UNIQUE se puede añadir a una columna de una tabla, después de ser creada,
mediante la sentencia ALTER TABLE.
Crea una restricción UNIQUE (valor único en toda la tabla) para la columna 'identificador'.
2
Base de Datos IV UNIVERSIDAD POLITECNICA Y ARTISTICA DEL PARAGUAY - UPAP
La clave primaria, PRIMARY KEY, identifica de manera única cada fila de una tabla.
La columna definida como clave primaria (PRIMARY KEY) debe ser UNIQUE (valor único) y NOT
NULL (no puede contener valores nulos).
Cada tabla sólo puede tener una clave primaria (PRIMARY KEY).
CREATE TABLE personas ( identificador int NOT NULL, nombre varchar(255) NOT NULL,
apellido1 varchar(255) NOT NULL, PRIMARY KEY (identificador) )
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 también se puede definir después 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)
3
Base de Datos IV UNIVERSIDAD POLITECNICA Y ARTISTICA DEL PARAGUAY - UPAP
La clave externa o FOREIGN KEY, es una columna o varias columnas, que sirven para
señalar cuál es la clave primaria de otra tabla.
La columna o columnas señaladas como FOREIGN KEY, solo podrán tener valores que ya existan
en la clave primaria PRIMARY KEY de la otra tabla.
dep departamento
1 ADMINISTRACION
2 INFORMATICA
3 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
Si la clave externa o foránea (FOREIGN KEY) está compuesta por varias columnas o queremos
ponerle un nombre, utilizaremos la fórmula siguiente:
4
Base de Datos IV UNIVERSIDAD POLITECNICA Y ARTISTICA DEL PARAGUAY - UPAP
Para borrar un clave externa (FOREIGN KEY) utilizamos DROP, pero varía según la base de dato:
Borrar FOREIGN KEY en MySQL ALTER TABLE personas DROP FOREIGN KEY dep
5
Base de Datos IV UNIVERSIDAD POLITECNICA Y ARTISTICA DEL PARAGUAY - UPAP
La restricción CHECK se utiliza para limitar el rango de valores que puede tener una
columna.
CREATE TABLE departamentos ( dep int NOT NULL, departamento varchar(255), CHECK
(dep>0) )
6
Base de Datos IV UNIVERSIDAD POLITECNICA Y ARTISTICA DEL PARAGUAY - UPAP
La restricción DEFAULT se utiliza para establecer un valor por defecto a una columna.
Si no se especifica un valor al insertar una fila, entonces se podrá el valor por defecto (DEFAULT)
que tenga cada columna.
CREATE TABLE pedidos ( idpedido int, producto int, cantidad int, fecha date DEFAULT
GETDATE() )
Si al crear un pedido, no especificamos el valor de la columna 'fecha', entonces para esa columna
se insertará por defecto obtenido de ejecutar la funcion GETDATE(), que devuelve la fecha del
sistema
En lugar de una función, podemos insertar una valor concreto '2001-01-01' o cualquier otro valor.