Propiedades de tablas
Restricción UNIQUE
Es una restricción de unicidad.
Impide que pueden existir dos filas con el valor de la columna (unique key) o columnas
(composite unique key).
Permite la entrada de valores nulos salvo que se establezca a la vez una restricción NOT
NULL. Basta con que una de las columnas tome para el valor nulo para que se considere que
se cumple la restricción de unicidad.
Las “composite unique key” sólo se pueden crear a nivel de tabla.
El ORACLE Server crea un índice de valores únicos como mecanismo para controlar este
tipo de restricciones.
Sintaxis:
A nivel de columna:
[CONSTRAINT
A nivel de tabla:
[CONSTRAINT
donde:
Ejemplo:
CREATE TABLE Empleados (
…
apellidos VARCHAR2(40) NOT NULL,
nombre VARCHAR2(20),
…
email VARCHAR2(25) UNIQUE,
…
CONSTRAINT apel_nom_unico UNIQUE (apellidos,nombre),
);
existe la cláusula ON UPDATE (modos de modificación).
7. Restricción CHECK
Define una condición que deben cumplir todas las filas de la tabla.
La condición es igual que las condiciones de la cláusula WHERE del SELECT salvo porque
no puede incluir:
- Referencias a pseudocolumnas (CURRVAL, NEXTVAL, LEVEL, ROWNUM).
- Llamadas a las funciones SYSDATE, UID, USER y USERENV.
- Consultas que refieren a otros valores en otras filas.
- Subconsultas (subqueries).
Una columna puede tener asociadas tantas restricciones CHECK como se desee.
Sintaxis:
[CONSTRAINT
donde:
nivel de columna sólo puede referir a dicha columna. A nivel de tabla
puede referir a otras columnas, pero a los valores de la misma fila.
Ejemplo a nivel de columna:
CREATE TABLE Empleados (
…
salario NUMBER(8,2)
CONSTRAINT salario_positivo CHECK (salario>0),
…
);
Ejemplo a nivel de tabla:
CREATE TABLE Empleados (
…
salario NUMBER(8,2),
neto NUMBER(8,2),
…
CONSTRAINT neto_max
CHECK (neto<=salario*0’8)
);
No hay comentarios:
Publicar un comentario