Requisito previo: restricciones de SQL
Podemos crear una tabla con más de una restricción en sus columnas. El siguiente ejemplo muestra cómo podemos definir diferentes restricciones en una tabla.
Adición de restricciones en el comando Crear:
- Sr_no es una clave principal.
- Branch_no es la clave externa que hace referencia a la tabla Branch.
- El tipo de empresa tendrá cualquiera de los valores: ‘1C’, ‘2C’, ‘3C’
Sintaxis:
Create table Fd_master(Sr_no varchar2(10), Branch_no varchar2(10), account_no varchar2(20), company_type varchar2(20), constraint pk primary key(Sr_no), constraint fk foreign key (Branch_no) references Branch, constraint chk check(company_type in (‘1C’, ’2C’, ’3C’)));
- Restricción de clave principal:
Sr_no en Fd_master donde pk es el nombre definido por el usuario dado a la clave principal. - Restricción de clave externa:
Branch_no en Fd_master, donde fk es el nombre de la clave externa que hace referencia a la tabla de sucursales. - Restricción de verificación:
company_type en Fd_master donde chk es el nombre que verificará los valores dados, es decir, ‘1C’, ‘2C’, ‘3C’
Adición de restricciones en el comando Alterar:
se pueden agregar restricciones de nivel de varias columnas a través del comando Alterar. Se puede agregar en la tabla padre-hijo en un orden en serie.
Restricción 1 (Predeterminada):
Crear dos tablas –
- Padre que tiene una restricción predeterminada en ID con el valor predeterminado 1. El nombre dado a la restricción es DF_ParentTable.
- Tabla externa con columna de ID.
ID en ambas tablas se hace ‘NO NULO’.
Sintaxis:
CREATE TABLE ParentTable (ID int not null constraint DF_ParentTable default (1), name varchar2(5));
CREATE TABLE ForeignTable (ID int not null, Col2 VARCHAR(5));
Restricción 2 (Comprobar):
ALTER TABLE ParentTable ADD CONSTRAINT CK_ParentTable_ID CHECK(ID<100);
Restricción 3 (clave externa):
clave externa
ALTER TABLE ParentTable ADD CONSTRAINT FK_parent_foreign FOREIGN KEY (ID) REFERENCES ForeignTable(ID);
Publicación traducida automáticamente
Artículo escrito por dhatriganda07 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA