Conceptos Esenciales de SQL: Restricciones y Comandos DDL

Clasificado en Informática

Escrito el en español con un tamaño de 4,58 KB

Clave Ajena (`FOREIGN KEY`)

Una Clave Ajena está formada por una o varias columnas que están asociadas a una clave primaria de otra o de la misma tabla. Se pueden definir tantas claves ajenas como sea preciso, y pueden estar o no en la misma tabla que la clave primaria. El valor de la columna o columnas que son claves ajenas debe ser NULL o igual a un valor de la clave referenciada (regla de integridad referencial).

Formato de Restricción de Columna

La clave ajena se define en la descripción de la columna usando la cláusula REFERENCES:

CREATE TABLE nombre_tabla
(
  Columna1 TIPO_DE_DATO
  CONSTRAINT nombre_restricción
  REFERENCES nombre_tabla [(columna)] [ON DELETE CASCADE],
  Columna2 TIPO_DE_DATO, ...
) [TABLESPACE espacio_de_tabla];

Formato de Restricción de Tabla

La clave ajena se define al final de todas las columnas empleando las cláusulas FOREIGN KEY y REFERENCES:

CREATE TABLE nombre_tabla
(
  Columna1 TIPO_DE_DATO,
  Columna2 TIPO_DE_DATO,
  [CONSTRAINT nombre_restricción] FOREIGN KEY (columna
  [, columna]) REFERENCES nombre_tabla [(columna[,
  columna])] [ON DELETE CASCADE]
) [TABLESPACE espacio_de_tabla];

En la cláusula REFERENCES indicamos la tabla a la cual remite la clave ajena. A la derecha de FOREIGN KEY y, entre paréntesis, indicamos la columna o columnas que forman parte de la clave ajena.

Cláusula `ON DELETE CASCADE`

La cláusula ON DELETE CASCADE se define cuando al borrar las filas asociadas con claves primarias deseamos que se eliminen las filas con claves ajenas que referencien a dichas claves.

Otras Restricciones y Especificaciones

Especificación `DEFAULT`

La especificación DEFAULT: la cláusula DEFAULT a una columna le proporciona un valor por omisión cuando el valor de la columna no se especifica en la cláusula INSERT. Es posible incluir varias expresiones: constantes, funciones SQL y variables UID y SYSDATE. No se pueden hacer referencias a columnas o a funciones PL/SQL.

Restricción `CHECK`

La restricción CHECK actúa como una cláusula WHERE. Puede hacer referencia a una o a más columnas, pero no a valores de otras filas. En una cláusula CHECK no cabe incluir subconsultas ni las pseudocolumnas SYSDATE, UID y USER.

Restricción `UNIQUE`

La restricción UNIQUE crea un índice automáticamente al igual que PRIMARY KEY.

Vistas del Diccionario de Datos

  • USER_CONSTRAINTS: Definiciones de restricciones de tablas propiedad del usuario.
  • ALL_CONSTRAINTS: Definiciones de restricciones sobre tablas a las que puede acceder el usuario.
  • DBA_CONSTRAINTS: Todas las definiciones de restricciones sobre todas las tablas.

Comandos DDL Fundamentales

Comando `TRUNCATE`

TRUNCATE: Permite suprimir todas las filas de una tabla y liberar el espacio ocupado para otros usos sin que desaparezca la definición de la tabla de la base de datos. Es una orden del lenguaje de definición de datos (DDL) y no genera información de retroceso (ROLLBACK).

Ejemplo:

TRUNCATE TABLE [usuario.]nombre_tabla [{DROP|REUSE} STORAGE];

Comando `ALTER TABLE`

ALTER TABLE: La modificación de tablas nos permitirá: añadir, modificar o eliminar columnas de una tabla existente, añadir o eliminar restricciones y activar o desactivar restricciones. Ejemplos: ADD, MODIFY, DROP COLUMN...

Activar/Desactivar Restricción

Activar Restricción: ALTER TABLE nombre_tabla ENABLE CONSTRAINT nombre_restricción;

Desactivar Restricción: ALTER TABLE nombre_tabla DISABLE CONSTRAINT nombre_restricción;

Creación de Sinónimo

Creación de Sinónimo: Es un nuevo nombre que se puede dar a una tabla o vista. Con los sinónimos se pueden utilizar dos nombres diferentes para referirse a un mismo objeto.

Ejemplo:

CREATE [PUBLIC] SYNONYM nombre_sinónimo FOR [usuario.]nombre_tabla;

Entradas relacionadas: