0% encontró este documento útil (0 votos)
14 vistas12 páginas

7 SQL Constraints

Este documento explica los diferentes tipos de constraints o restricciones que se pueden aplicar en las tablas de una base de datos SQL, como NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK y DEFAULT.

Cargado por

pablopd2701
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
14 vistas12 páginas

7 SQL Constraints

Este documento explica los diferentes tipos de constraints o restricciones que se pueden aplicar en las tablas de una base de datos SQL, como NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK y DEFAULT.

Cargado por

pablopd2701
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 12

CONSTRAINTS

Constraints
 Las CONSTRINTS o RESTRICCIONES se utilizan en SQL para especificar ciertas
condiciones o reglas que deben cumplir los datos de las tablas.
 Si alguna de estas reglas especificadas no se cumple, la constraint aborta la acción
 Las constraints se pueden especificar al crear la tabla, dentro de la instrucción
CREATE o posteriormente utilizando la instrucción ALTER. Asimismo, en la instrucción
ALTER se pueden definir de dos formas, dándole nombre a la constraint o sin
especificar nombre
 La constraint podrá ser revocada por medio de la instrucción ALTER con DROP.
 Por tanto para cada constraint tendremos que aprender:
 Definirla en la CREATE (con o sin nombre)
 Crearla posteriormente con ALTER (con o sin nombre)
 Borrar Constraints con nombre
Constraints
En SQL tenemos las siguientes Constraints:
 NOT NULL: Indica que una columna no puede guardar el valor NULL (ausencia de
dato)
 UNIQUE: Asegura que cada fila tiene un valor distinto de esta columna
 PRIMARY KEY: Especifica que una o varias columnas forman la clave primaria de
la tabla
 FOREIGN KEY: Especifica que una o varias columnas forman clave ajena que
relaciona su valor con otra tabla. Asegura la integridad referencial.
 CHECK: Asegura que los valores de la columna cumple una condición específica
 DEFAULT: Especifica el valor por defecto que tomará la columna cuando no se
especifica ninguno.

3
Constraint: NOT NULL

 NOT NULL obliga a especificar un valor en la columna donde es espcificado.


 No podremos insertar o modificar una fila sin especificar un valor para el campo
que tenga la restricción NOT NULL.
 Definicion:
 En CREATE:
 CREATE TABLE Personas
( Codigo int NOT NULL,
Nombre nvarchar(30) ,
Apellidos nvarchar(30) NOT NULL)
Los campos Codigo y Apellidos deben tener siempre un valor especificado

 Posteriormente en ALTER:
 ALTER TABLE Personas
ALTER column Nombre nvarchar(30) NOT NULL

4
Constraint: UNIQUE

 La restricción UNIQUE hace que el campo definido con ella sea un identificador de
la fila.
 Esta propiedad la cumplen los campos definidos con UNIQUE y con PRIMARY KEY
 Al definir PRIMARY KEY se tiene por defecto la restricción UNIQUE.
 Podemos definir tantos campos como quereamos con la restricción UNIQUE pero
solo uno con PRIMARY KEY
 Definición:
 En CREATE:
 CREATE TABLE Personas CREATE TABLE Personas
( Codigo int NOT NULL, ( Codigo int NOT NULL,
Nombre nvarchar(30) , Nombre nvarchar(30) ,
Apellidos nvarchar(30) UNIQUE) Apellidos nvarchar(30) ,
UNIQUE (Nombre, Apellidos))
 Posteriormente en ALTER:
 ALTER TABLE Personas ALTER TABLE Personas
ADD UNIQUE (Codigo) ADD CONSTRAINT uc_PersonaID UNIQUE (Codigo)

5
Constraint: PRIMARY KEY

 La restricción PRIMARY KEY identifica una fila de la tabla. Especificar esta


restricción implica las restricciones UNIQUE y NOT NULL
 Solo se puede definir una PRIMARY KEY por tabla y toda tabla debe tener una
PRIMARY KEY
 Definición:
 En CREATE:
 CREATE TABLE Personas CREATE TABLE Personas
( Codigo int PRIMARY KEY, ( Codigo int NOT NULL,
Nombre nvarchar(30) , Nombre nvarchar(30) ,
Apellidos nvarchar(30) ) Apellidos nvarchar(30) ,
PRIMARY KEY (Nombre, Apellidos))
 Posteriormente en ALTER:
 ALTER TABLE Personas ALTER TABLE Personas
ADD PRIMARY KEY (Codigo) ADD CONSTRAINT pk_perId PRIMARY KEY (Codigo)

6
Constraint: FOREIGN KEY

 La restricción FOREIGN KEY definida sobre un o varios campos de una tabla hace
que sus valores deban coincidir con los valores de la clave primaria de otra tabla
 Definición:
 En CREATE:
 CREATE TABLE Personas CREATE TABLE Departamentos
( Codigo int PRIMARY KEY, ( Codigo int,
Nombre nvarchar(30) , Descrip nvarchar(30)
Apellidos nvarchar(30) CONSTRAINT pk_Dtos PRIMARY KEY (Codigo))
Departamento int FOREIGN KEY REFERENCES Departamentos)

 Posteriormente en ALTER:
 ALTER TABLE Personas ALTER TABLE Personas
ADD FOREIGN KEY (Departamento) ADD CONSTRAINT fk_perDto FOREIGN KEY (Departamento)
REFERENCES Departamentos REFERENCES Departamentos

7
Constraint: FOREIGN KEY- INTEGRIDAD

 Las restricciones de integridad referencial en cascada permiten definir las acciones


que SQL Server lleva a cabo cuando un usuario intenta eliminar o actualizar una
clave a la que apuntan las claves externas existentes
 Las cláusulas REFERENCES de las instrucciones CREATE TABLE y ALTER TABLE
admiten las cláusulas ON DELETE y ON UPDATE
 ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
 [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
 NO ACTION: es la opción por defecto
 SET NULL/SET DEFAULT: establecerá las claves ajenas a NULL o al valor por
defecto cuando se borren/modifiquen los valores de la clave primaria a la que
apuntan.
 ON DELETE CASCADE: Especifica que si se intenta eliminar una fila con una clave a
la que hacen referencia claves externas de filas existentes en otras tablas, todas
las filas que contienen dichas claves externas también se eliminan.

8
Constraint: FOREIGN KEY- INTEGRIDAD

 ON UPDATE CASCADE: Especifica que si se intenta actualizar un valor de clave de una


fila a cuyo valor de clave hacen referencia claves externas de filas existentes en otras
tablas, también se actualizan todos los valores que conforman la clave externa al nuevo
valor especificado para la clave.

 CREATE TABLE Personas CREATE TABLE Departamentos


( Codigo int PRIMARY KEY, ( Codigo int PRIMARY KEY,
Nombre nvarchar(30) , Descrip nvarchar(30) )
Apellidos nvarchar(30)
Departamento int FOREIGN KEY REFERENCES Departamentos
ON DELETE CASCADE
ON UPDATE CASCADE)
 ALTER TABLE Personas
ADD FOREIGN KEY (Departamento) REFERENCES Departamentos
ON DELETE CASCADE
ON UPDATE CASCADE

9
Constraint: CHECK

 La restricción CHECK limita los valores que pueden tomar las columnas de una tabla
 Si se especifica sobre una columna limitará los valores de esa columna. Si se
especifica sobre una tabla limitará los valores de una columna basándose en los
valores de otra
 Definición:
 En CREATE:
 CREATE TABLE Personas CREATE TABLE Curso
( Codigo int PRIMARY KEY CHECK (Codigo>0), ( Codigo int PRIMARY KEY,
Nombre nvarchar(30) , FechaInicio date,
Apellidos nvarchar(30)) FechaFin date,
CHECK (FechaInicio<FechaFin))
 Posteriormente en ALTER:
 ALTER TABLE Personas ALTER TABLE Personas
ADD CHECK(Codigo>0) ADD CONSTRAINT ck_cursos CHECK (FechaInicio<FechaFin)

10
Constraint: DEFAULT

 La restricción DEFAULT proporciona un valor por defecto a una columna


 Definición:
 En CREATE:
 CREATE TABLE Curso
( Codigo int PRIMARY KEY,
FechaInicio date DEFAULT Getdate(),
FechaFin date)

 Posteriormente en ALTER:
 ALTER TABLE Cursos
ADD DEFAULT Getdate() for FechaInicio
 ALTER TABLE Personas
ADD CONSTRAINT dk_cursos DEFAULT GetDate() for FechaInicio

11
DROP CONSTRAINT
 Para borrar cualquier restricción que hayamos creado con nombre, utilizaremos la
siguiente variante del la instrucción ALTER:

ALTER TABLE nombre


DROP CONSTRAINT nombre_Constraint

 ALTER TABLE Personas

DROP CONSTRAINT ck_cursos

12

También podría gustarte