Constraints Alumno
CREACION DE TABLAS Y CONSTRAINTS EN ORACLE-PARTE02
CREACION DE TABLAS Y CONSTRAINTS – PARTE 02
RESTRICCIONES – CONSTRAINTS
Las restricciones de entidad aseguran que los datos de una tabla cumplan con ciertas
reglas
Las restricciones de integridad referencial previenen el borrado de datos o de una tabla si
hay otras tablas que dependen de ella
Oracle soporta las siguientesrestricciones:
TIPO
DESCRIPCIÓN
NOT NULL
Especifica que la columna no puede recibir valores nulos
UNIQUE
Especifica que los valores de la columna (o combinación de columnas)
deben ser únicos, no se pueden repetir. Recuerde que NULL es diferente de
todo, hasta de NULL
PRIMARY KEY
Especifica que los valores de la columna (o combinación de columnas)
identifican cada fila de latabla
FOREIGN KEY
Establece y asegura una relación de dependencia entre la columna (o
combinación de columnas) con otras en otra tabla
CHECK
Establece una condición que deben cumplir los valores
Recomendaciones:
Asigne un nombre con significado a la restricción, esto ayuda a identificar fácilmente los
mensajes de error.
Si no asigna un nombre, Oracle genera uno usando elformato SYS_Cn, donde n es una
secuencia numérica para generar nombres únicos.
Las restricciones se pueden definir:
En el momento en que se crea la tabla a nivel de columna o de tabla.
Después de que se ha creado la tabla (ALTER TABLE)
Las restricciones se pueden consultar en el diccionario de datos (USER_CONSTRAINTS)
PROFESOR: LIÑÁN RODRÍGUEZ, Julio César
Página 1
2
CREACIONDE TABLAS Y CONSTRAINTS EN ORACLE-PARTE02
DEFINIENDO RESTRICCIONES
CREATE TABLE [Esquema.]Tabla
(
Columna1 TipoDeDato [DEFAULT Expresión][RestricciónC]
*, Columna2 …+
[RestricciónT] [, ...]
);
RestricciónC: Lugar donde se define una restricción a nivel de columna
RestricciónT: Lugar donde se define una restricción a nivel de tabla
SINTAXIS PARA DEFINIR CONSTRAINTS
Al nivel decolumna
Columna TipoDato **CONSTRAINT Nombre+ Tipo,…+
Este tipo de sintaxis permite definir una restricción solo para la columna que se
esta definiendo
Puede definir cualquier tipo de restricción si sólo se implica una columna (la que
se esta definiendo)
Al nivel de tabla
Columna, …
**CONSTRAINT Nombre+ Tipo (ColumnasT, …), …+
Esta sintaxis permite definir una restricción para una omás columnas (separadas
por comas) de la tabla
A nivel de tabla no se puede definir la restricción NOT NULL
RESTRICCION NOT NULL
Sólo se puede definir a nivel de columna
RESTRICCION UNIQUE
Se puede definir a nivel de columna o de tabla. Crea automáticamente un índice único
para la restricción
La restricción de unicidad no tiene en cuenta las columnas con valores NULL. Si sedesea
controlar esto último se necesita colocar una restricción adicional de NOT NULL sobre la
columna o columnas.
No se pueden tener valores duplicados en columnas NO nulas de un conjunto de columnas
con restricción de unicidad
PROFESOR: LIÑÁN RODRÍGUEZ, Julio César
Página 2
3
CREACION DE TABLAS Y CONSTRAINTS EN ORACLE-PARTE02
RESTRICCION PRIMARY KEY
Se puede definir a nivelde columna o de tabla (llaves compuestas).
Sólo se permite una llave primaria por cada tabla pero si se pueden varias restricciones de
unicidad
La llave primaria identifica cada fila de la tabla y automáticamente crea un índice único
Las columnas que forman la llave primaria son únicas y no permiten valores NULL
RESTRICCION FOREIGN KEY
La restricción de llave foránea, establece unarelación de una o varias columnas en una
tabla, con otras de la misma tabla o de otra tabla que cuentan con una restricción
PRIMARY KEY o UNIQUE
Se puede definir a nivel de columna y de tabla.
Acepta valores NULL
Es una restricción lógica entre los valores de las filas, no es física (no son apuntadores)
SINTAXIS:
[CONSTRAINT Nombre] FOREIGN KEY (Columnas)
REFERENCES TablaPadre...
Regístrate para leer el documento completo.