Restricciones de integridad se utilizan para aplicar las reglas de negocio para las tablas de bases de datos.
Las restricciones disponibles en SQL son clave externa, no es nulo, único, Check.
Las restricciones se pueden definir de dos maneras
1) Las restricciones se pueden especificar inmediatamente después de la definición de la columna. Esto se denomina nivel de columna definición.
2) Las restricciones se pueden especificar después de todas las columnas están definidas. Esto se conoce como el nivel de tabla de definición.
Esta restricción define una columna o combinación de columnas que identifica unívocamente cada fila de la tabla.
Sintaxis para definir una clave principal a nivel de la columna:
nombre de la columna tipo de datos [constraint_name RESTRICCIÓN] PRIMARY KEY
Sintaxis para definir una clave principal a nivel de tabla:
[Constraint_name RESTRICCIÓN] PRIMARY KEY (column_name1, column_name2, ..)
- column_name1, column_name2 son los nombres de las columnas que definen la clave principal.
- La sintaxis es decir, en el soporte [constraint_name RESTRICCIÓN] es opcional.
Por ejemplo: Para crear una tabla de empleados con restricción de clave primaria, la consulta sería como.
Clave principal a nivel de tabla:
CREATE TABLE empleado
(número de identificación (5) PRIMARY KEY,
nombre char (20),
departamento de char (10),
número de años de edad (2),
número de salarios (10),
lugar char (10)
);
o
CREATE TABLE empleado
(número de identificación (5) restricción de clave emp_id_pk PRIMARIA,
nombre char (20),
departamento de char (10),
número de años de edad (2),
número de salarios (10),
lugar char (10)
);
Clave principal a nivel de tabla:
CREATE TABLE empleado
(número de identificación (5),
nombre char (20),
departamento de char (10),
número de años de edad (2),
número de salarios (10),
lugar char (10),
restricción de clave emp_id_pk PRIMARIA (id)
);
Esta restricción se identifica cualquier columna referencia a la clave primaria en otra tabla. Se establece una relación entre dos columnas en la misma tabla o entre tablas diferentes. Para una columna que se define como una clave externa, que debe ser un definido como una clave principal en la tabla que se está refiriendo. Uno o más columnas se puede definir como clave externa.
Sintaxis para definir una clave externa a nivel de la columna:
[CONSTRAINT] Referencias Referenced_Table_name (column_name)
Sintaxis para definir una clave externa a nivel de tabla:
[CONSTRAINT] FOREIGN KEY (column_name) referenced_table_name Referencias (column_name);
Por ejemplo:
1) Vamos a usar el "producto" mesa "order_items". clave externa a nivel de la columna:
CREAR tabla de productos
(número de Product (5) restricción de clave pd_id_pk PRIMARIA,
product_name char (20),
supplier_name char (20),
número de unit_price (10)
);
CREAR MESA order_items
(número order_id (5) restricción de clave od_id_pk PRIMARIA,
número de Product (5) Referencias CONSTRAINT pd_id_fk, producto (Product),
product_name char (20),
supplier_name char (20),
número de unit_price (10)
);
Clave externa a nivel de tabla:
CREAR MESA order_items
(número order_id (5),
número de Product (5),
product_name char (20),
supplier_name char (20),
número de unit_price (10)
RESTRICCIÓN od_id_pk PRIMARY KEY (order_id),
RESTRICCIÓN pd_id_fk FOREIGN KEY (Product) referencias de productos (Product)
);
2) Si la tabla de empleados tiene un 'mgr_id ", es decir, Identificación del gerente como una clave externa que hace referencia a' id 'clave primaria de la misma tabla, la consulta sería como,
CREATE TABLE empleado
(número de identificación (5) PRIMARY KEY,
nombre char (20),
departamento de char (10),
número de años de edad (2),
número de mgr_id (5) referencias de los empleados (id),
número de salarios (10),
lugar char ( 10)
);
Esta limitación garantiza que todas las filas de la tabla contiene un valor definido para la columna que se especifica como no nulo. Lo que significa un valor nulo no está permitido.
Sintaxis para definir una restricción NOT NULL:
[CONSTRAINT nombre de restricción] NOT NULL
Por ejemplo: Para crear una tabla de empleados con un valor nulo, la consulta sería
CREATE TABLE empleado
(número de identificación (5),
nombre char (20) nm_nn restricción NOT NULL,
departamento de char (10),
número de años de edad (2),
número de salarios (10),
lugar char (10)
);
Esta restricción asegura que una columna o un grupo de columnas en cada fila tiene un valor distinto. Una columna (s) puede tener un valor nulo, pero los valores no puede ser duplicada.
Sintaxis para definir una clave única a nivel de la columna:
[CONSTRAINT] UNIQUE
Sintaxis para definir una clave única a nivel de tabla:
[CONSTRAINT] UNIQUE (column_name)
Por ejemplo: Para crear una tabla de empleados con una única clave, la consulta sería como,
Clave Única a nivel de la columna:
CREATE TABLE empleado
(número de identificación (5) PRIMARY KEY,
nombre char (20),
departamento de char (10),
número de años de edad (2),
número de salarios (10),
lugar char (10) UNIQUE
);
o
CREATE TABLE empleado
(número de identificación (5) PRIMARY KEY,
nombre char (20),
departamento de char (10),
número de años de edad (2),
número de salarios (10),
lugar char (10) RESTRICCIÓN ÚNICA loc_un
);
Clave Única a nivel de tabla:
CREATE TABLE empleado
(número de identificación (5) PRIMARY KEY,
nombre char (20),
departamento de char (10),
número de años de edad (2),
número de salarios (10),
lugar char (10),
RESTRICCIÓN ÚNICA loc_un (ubicación)
);
Esta restricción se define una regla de negocio en una columna.Todas las filas deben cumplir esta regla. La restricción puede ser aplicado para una sola columna o un grupo de columnas.
Sintaxis para definir una restricción de comprobación:
[Constraint_name RESTRICCIÓN] CHECK (condiciones)
Por ejemplo: En la tabla de empleados para seleccionar el sexo de una persona, la consulta sería
Restricción de comprobación a nivel de la columna:
CREATE TABLE empleado
(número de identificación (5) PRIMARY KEY,
nombre char (20),
departamento de char (10),
número de años de edad (2),
de género char (1) CHECK (de género en la ('M', 'F')),
sueldo número (10),
lugar char (10)
);
Restricción de comprobación a nivel de tabla:
CREATE TABLE empleado
(número de identificación (5) PRIMARY KEY,
nombre char (20),
departamento de char (10),
número de años de edad (2),
de género char (1),
número de salarios (10),
lugar char (10),
gender_ck RESTRICCIÓN VER (de género en la ('M', 'F'))
);