Вы находитесь на странице: 1из 7

Base de Datos IV UNIVERSIDAD POLITECNICA Y ARTISTICA DEL PARAGUAY - UPAP

Unidad I: ADMINISTRACION DE LA SEGURIDAD EN EL ACCESO A LOS DATOS

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.

Las posibles restricciones son:

 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.

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 algún valor para las columnas 'nombre' y 'apellido1'.

1
Base de Datos IV UNIVERSIDAD POLITECNICA Y ARTISTICA DEL PARAGUAY - UPAP

 La restricción 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 según el sistema de base de datos utilizado:

Ejemplo SQL UNIQUE para la base de datos MySQL

CREATE TABLE personas


(
identificador int NOT NULL,
nombre varchar(255) NOT NULL,
apellido1 varchar(255) NOT NULL,
apellido2 varchar(255),
UNIQUE (identificador)
)

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.

Sintaxis de UNIQUE ALTER TABLE

ALTER TABLE personas


ADD UNIQUE (identificador)

Crea una restricción UNIQUE (valor único en toda la tabla) para la columna 'identificador'.

Se puede crear también restricciones para varias columnas a la vez

ALTER TABLE peronas


ADD CONSTRAINT copersonas
UNIQUE (identificador, apellido1)

Para eliminar una restricción en la base de datos MySQL

ALTER TABLE personas


DROP INDEX copersonas

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).

Ejemplo PRIMARY KEY , clave primaria en MySQL

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.

Ejemplo de FOREIGN KEY

Tabla "departamentos", con la clave primaria "dep"

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

Definiciones de FOREIGN KEY en CREATE TABLE para MySQL

CREATE TABLE departamentos ( dep int NOT NULL,


departamento varchar(255),
PRIMARY KEY (dep)
)

CREATE TABLE personas


(
per int NOT NULL,
nombre varchar(255),
apellido1 varchar(255),
dep int NOT NULL,
PRIMARY KEY (per),
FOREIGN KEY (dep) REFERENCES departamentos(dep)
)

Si la clave externa o foránea (FOREIGN KEY) está compuesta por varias columnas o queremos
ponerle un nombre, utilizaremos la fórmula siguiente:

CONSTRAINT fkpersonas FOREIGN KEY (dep, id) REFERENCES departamentos(dep,id).

4
Base de Datos IV UNIVERSIDAD POLITECNICA Y ARTISTICA DEL PARAGUAY - UPAP

Ejemplo FOREIGN KEY con ALTER TABLE

ALTER TABLE ADD FOREIGN KEY (dep) REFERENCES departamentos(dep)

Ejemplo FOREIGN KEY múltiple (varias columnas) con ALTER TABLE:

ALTER TABLE ADD CONSTRAINT fkpersonas FOREIGN KEY (dep) REFERENCES


departamentos(dep)

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.

Se pueden definir varias restricciones CHECK en una tabla.

Ejemplo CHECK en MySQL

CREATE TABLE departamentos ( dep int NOT NULL, departamento varchar(255), CHECK
(dep>0) )

Ejemplo CHECK en ALTER TABLE en MySQL

ALTER TABLE departamentos ADD CHECK (dep>0)

Ejemplo CHECK (con múltiples columnas) en ALTER TABLE en MySQL

ALTER TABLE personas ADD CHECK (per>0, edad>35)

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.

SQL DEFAULT en la sentencia CREATE TABLE

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.

SQL DEFAULT en la sentencia ALTER TABLE para MySQL

ALTER TABLE pedidos ALTER fecha DEFAULT '2012-01-01'

Para borrar DEFAULT en MySQL

ALTER TABLE pedidos ALTER fecha DROP DEFAULT

Вам также может понравиться