lunes, 18 de julio de 2011

PROPIEDAD 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 ] UNIQUE

A nivel de tabla:

[CONSTRAINT ] UNIQUE ([,…])

donde:

Nombre de la restricción

Nombre de la columna

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 ] CHECK ()

donde:

Nombre de la restricción

Una expresión que debe ser cierta para todas las filas de la tabla. A

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