Restricciones SQL
Restricciones SQL
Restricciones SQL
SERVER
Las CONSTRAINTS o restricciones son aquellas 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
Restricción NOT NULL:
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'.
Restricción UNIQUE:
La restricción UNIQUE identifica de manera única a cada fila de una tabla.
Existen varias formas diferentes de sintaxis según el sistema de base de datos utilizado:
Ejemplo SQL UNIQUE para las bases de datos ORACLE, SQLSERVER, ACCESS
La sentencia anterior crea la tabla 'personas' con 4 columnas, donde la columna 'identificador'
tiene un valor diferente para cada fila de la tabla.
Si intentamos insertar una fila con un identificador que ya exista, nos dará un error, y no nos
dejará insertarlo.
Crea una restricción UNIQUE (valor único en toda la tabla) para la columna 'identificador'.
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 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 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 múltiple ALTER TABLE ALTER TABLE personas CONSTRAINT
pers PRIMARY KEY (identificador, nombre)
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
per nombre apellido1 apellido2 dep
1 ANTONIO PEREZ GOMEZ 1
2 ANTONIO GARCIA RODRIGUEZ 2
3 PEDRO RUIZ GONZALEZ 4
Si la clave externa o foránea (FOREIGN KEY) está compuesta por varias columnas o
queremos ponerle un nombre, utilizaremos la fórmula siguiente:
Para borrar un clave externa (FOREIGN KEY) utilizamos DROP, pero varía según la base de
dato:
CREATE TABLE departamentos { dep int NOT NULL CHECK (dep>0) departamento
varchar(255), }
Restricción DEFAULT:
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 ()}
En lugar de una función, podemos insertar un valor concreto '2001-01-01' o cualquier otro valor.