La siguiente tabla muestra los diferentes de restricciones manejados por Oracle.
CONSTRAINT | USO |
PRIMARY KEY | Identifica de manera única a cada fila de la tabla |
CHECK | Especifica una condición que cada fila en la tabla debe satisfacer. |
FOREIGN KEY(columna) | Designa una columna o combinación de columnas como la clave foránea. |
REFERENCES(columna) | Establece y obliga una relación entre esta columna de la clave primaria de la tabla referenciada. |
[NOT] NULL | Especifica que esta columna no puede contener un valor nulo. |
UNIQUE | Especifica que una o mas columnas deben tener valores únicos a través de de todas las filas. Oracle crea un índice único para asegurar este constraint. |
ON DELETE CASCADE | Especifica que Oracle mantendrá la integridad automáticamente removiendo los valores de la clave foránea dependiente si se remueven los valores de la clave primaria o única |
Ejemplo:
- Crear una tabla que utilice los diferentes tipos de constraints. La tabla tendrá nombres de constraints creados por el propio Oracle.
Create table emp1
(Codigo number(4) Primary Key,
Nombre varchar2(10) Unique,
Trabajo varchar2(9) Not Null,
Jefe number(4) Null,
Ingreso date Default Sysdate,
Salario number(7,2) Default 0 Check(salario >= 0),
Comision number(7,2) Default 0 Check(comision > 0),
Dpto number(2) Check(dpto IN (10,20)));
http://liang.armstrong.edu:5560/isqlplus
Mostramos los constraints creados por defecto por Oracle.
Select Constraint_name Nombre, Column_name Columna
From User_cons_columns
Where Table_name='EMP1';
Ejemplo:
- Elimine varias restricciones simultáneamente.
alter table emp1
drop constraint SYS_C005310
drop constraint SYS_C005309
drop constraint SYS_C005308
drop constraint SYS_C005307
drop constraint SYS_C005306
drop constraint SYS_C005311 ;
Ejemplo:
- Crear una tabla que utilice los diferentes tipos de constraints. La tabla tendrá nombres de constraints creados por nosotros.
Create table emp_x
(codigo number(4) Constraint Pk_emp_x Primary Key,
Nombre varchar2(10) Constraint Un_nom Unique,
Trabajo varchar2(9) Constraint Nn_trab Not Null,
Jefe number(4) Null,
Ingreso date Default Sysdate,
Salario number(7,2) Default 0 Constraint Ck_sal Check(salario >= 0),
Comm number(7,2) Default 0 Constraint Ck_com Check(comm> 0),
Dpto number(2) Constraint Ck_dep Check(dpto IN (10,20)), Constraint Ck_sal_com Check(salario>=comm));
Ahora mostramos los nombres de constraints.
Select Constraint_name Nombre, Column_name Columna
From User_cons_columns
Where Table_name='EMP_X';