Cuando una columna de atributo no principal en una tabla hace referencia a la clave principal y tiene la misma columna que la columna de la tabla que es el atributo principal, se denomina clave externa. Establece la relación entre las dos tablas, lo que ayuda en gran medida a la normalización de las tablas. Una tabla puede tener varias claves externas según el requisito.
En este artículo, veamos cómo crear una tabla con varias claves externas en MSSQL.
Sintaxis:
column_name(non_prime) data_type REFERENCES table_name(column_name(prime)
Paso 1: crear una base de datos
Usamos el siguiente comando para crear una base de datos llamada GeeksforGeeks:
Consulta:
CREATE DATABASE GeeksforGeeks
Paso 2: Uso de la base de datos
Para usar la base de datos GeeksforGeeks, use el siguiente comando:
Consulta:
USE GeeksforGeeks
Paso 3: Creación de 3 tablas. La tabla detalles_estudiante contiene dos claves externas que hacen referencia a las tablas detalles_sucursal_estudiante y dirección_estudiante.
Consulta:
CREATE TABLE student_details( stu_id VARCHAR(8) NOT NULL PRIMARY KEY, stu_name VARCHAR(20), stu_branch VARCHAR(20) FOREIGN KEY REFERENCES student_branch_details(stu_branch), stu_pin_code VARCHAR(6) FOREIGN KEY REFERENCES student_address(stu_pin_code) ); CREATE TABLE student_branch_details( stu_branch VARCHAR(20) PRIMARY KEY, subjects INT, credits INT ); CREATE TABLE student_address( stu_pin_code VARCHAR(6) PRIMARY KEY, stu_state VARCHAR(20), student_city VARCHAR(20) );
Producción:
El número y el tipo de claves se pueden verificar en la sección de tablas del explorador de objetos en el lado izquierdo de la interfaz de usuario.
Paso 4: Insertar datos en la tabla
Insertar filas en las tablas student_branch_details y student_address usando la siguiente consulta SQL:
Consulta:
INSERT INTO student_branch_details VALUES ('E.C.E',46,170), ('E.E.E',47,178), ('C.S.E',44,160) INSERT INTO student_address VALUES ('555555', 'xyz','abc'), ('666666', 'yyy','aaa'), ('777777','zzz','bbb'), ('888888','www','ccc'), ('999999','vvv','ddd')
Insertar filas en student_details
Consulta:
INSERT INTO student_details VALUES ('1940001','PRATHAM','E.C.E','555555'), ('1940002','ASHOK','C.S.E','666666'), ('1940003','PAVAN KUMAR','C.S.E','777777'), ('1940004','SANTHOSH','E.C.E','888888'), ('1940005','THAMAN','E.C.E','999999'), ('1940006','HARSH','E.E.E','888888')
Paso 5: Verificación de los datos insertados
Ver las tablas detalles_del_estudiante, detalles_de_la_sucursal_del_estudiante, dirección_del_estudiante después de insertar filas usando la siguiente consulta SQL:
Consulta:
SELECT * FROM student_details SELECT * FROM student_branch_details SELECT * FROM student_address
Producción:
Publicación traducida automáticamente
Artículo escrito por lokeshpotta20 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA