Está en la página 1de 2

Restricciones (UNIQUE, CHECK, DEFAULT)

Restriccin UNIQUE
La restriccin UNIQUE establece que el valor de cada columna de una fila sea nico, Por
ejemplo, en la tabla clientes podemos tener una clave primaria como ID, y adems tener
una columna NIF que establecemos que sea nica: lo que internamente implementa SQL
Server, es que cada vez que se intente hacer una modificacin, o insercin de un valor para
esa columna, antes de realizar la operacin, se asegura que el nuevo/modificado valor es
nico en el conjunto de filas de la tabla.
La restriccin UNIQUE se implementa en T-SQL con la palabra clave UNIQUE; por
ejemplo, si queremos que la columna Nombre de la tabla Clientes sea nica, podriamos
ejecutar el siguiente cdigo T-SQL:

ALTER TABLE dbo.Clientes
ADD CONSTRAINT RestriccionNombreUnico UNIQUE (Nombre).
Restriccin CHECK
La restriccin CHECK establece que el valor de la columna se ajuste a ciertas condiciones.
Se define para limitar el valor que pueda tener la columna; por ejemplo, se puede definir
que la columna Importe sea de un valor positivo mayor que cero. SQL Server, se encargar
de "validar" el valor que tendr la columna cuando se intente hacer una modificacin, o
insercin de un valor para esa columna. En caso de que el valor no cumpla la restriccin, se
generar una excepcin y se cancelar la operacin en curso.
La restriccin CHECK se implementa en T-SQL con la palabra clave CHECK; por
ejemplo, si queremos que la columna Cantidad de la tabla Pedidos sea un valor mayor que
cero, podriamos ejecutar el siguiente cdigo T-SQL:

ALTER TABLE dbo.Pedidos
ADD CONSTRAINT RestriccionCantidad CHECK (Cantidad>0).
Restriccin DEFAULT
La restriccin DEFAULT establece el valor para una columna cuando no se ha especificado
valor en la sentencia de insercin. SQL Server, comprobar si la sentencia de insercin
establece un valor para la columna, y en caso negativo, establecer el valor por defecto.
La restriccin DEFAULT se implementa en T-SQL con la palabra clave DEFAULT; por
ejemplo, si queremos aadir una columna Importe a la tabla Pedidos, y su valor por defecto
sea cero, podriamos ejecutar el siguiente cdigo T-SQL:

ALTER TABLE dbo.Pedidos
ADD Importe DEFAULT (0).

Implementando en la base de datos

ALTER TABLE dbo.EMPLOYEES
ADD CONSTRAINT TelefonoUnico UNIQUE (phone_number)

ALTER TABLE dbo.EMPLOYEES
ADD CONSTRAINT EmailUnico UNIQUE (email)

ALTER TABLE dbo.locations
ADD CONSTRAINT DireccionUnica UNIQUE (street_address)

ALTER TABLE dbo.EMPLOYEES
ADD CONSTRAINT ManagerUnico UNIQUE (manager_id)

-----********************* DEFAULT ***********************--------

ALTER TABLE dbo.COUNTRIES
ADD contry_name varchar(30) DEFAULT ('PERU')

ALTER TABLE dbo.locations
ADD postal_code varchar(10) DEFAULT ('05176')

insert into regions(region_id,region_name)
values (22111,'NORTHEM')

insert into countries(country_id,region_id)
values (22001,22111)

SELECT* FROM countries


------***************check *********---------
ALTER TABLE dbo.employees
ADD CONSTRAINT salario CHECK (salary>=450 and salary<20000)

También podría gustarte