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;