logo

Cómo agregar una clave externa en SQL

En este artículo aprenderemos cómo agregar una clave externa a la columna de la tabla de nuestra base de datos SQL.

El CLAVE EXTERNA en SQL se utiliza para unir el registro de dos tablas en la base de datos. La columna definida como CLAVE EXTRANJERA en una tabla debe ser la CLAVE PRIMARIA en otra tabla de la misma base de datos.

Podemos agregar fácilmente una clave externa a la columna de las dos maneras siguientes:

  1. Agregue una clave externa usando la declaración Crear tabla
  2. Agregar clave externa usando la declaración Alter Table

Si desea agregar una CLAVE EXTRANJERA a la columna de la tabla SQL, debe seguir los pasos a continuación en la secuencia indicada:

  1. Crear la base de datos en el sistema.
  2. Crea dos tablas en la misma base de datos.
  3. Ver la estructura de la tabla antes de agregar la clave externa.
  4. Agregue una clave externa a la tabla.
  5. Ver la estructura de la tabla.

Ahora, vamos a explicar los pasos anteriores con un ejemplo:

Paso 1: crear una base de datos

En el lenguaje de consulta estructurado, la creación de una base de datos es el primer paso para almacenar las tablas estructuradas en la base de datos.

Utilice la siguiente sintaxis SQL para crear una base de datos:

 CREATE DATABASE Database_Name; 

Supongamos que desea crear el Vehículos base de datos. Para esto, debe escribir el siguiente comando en lenguaje de consulta estructurado:

 CREATE DATABASE Vehicles; 

Paso 2: crear dos tablas en la base de datos

Ahora, debe utilizar la siguiente sintaxis SQL para crear las tablas en su base de datos:

 CREATE TABLE table_name ( column_Name_1 data type (size of the column_1), column_Name_2 data type (size of the column_2), column_Name_3 data type (size of the column_3), ... column_Name_N data type (size of the column_1) ); 

La siguiente consulta SQL crea el Coches_Detalles mesa en el Vehículos base de datos.

 CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT PRIMARY KEY, Model INT, Cars_Name VARCHAR (20), Colour VARCHAR (20), ); 

La siguiente consulta crea Coches_Precio_Detalles mesa en el Vehículos base de datos:

 CREATE TABLE Cars_Price_Details ( Model INT NOT NULL PRIMARY KEY, Cars_Price INT NOT NULL ); 

Paso 3: ver la estructura de la tabla antes de agregar la clave externa

Después de la creación de la tabla y la inserción de datos, puede ver la estructura de ambas tablas escribiendo la siguiente consulta en su aplicación SQL:

 DESC Cars or DESCRIBE Cars ; 

Campo Tipo NULO Llave Por defecto Extra
Número de coche EN T NO EN NULO autoincremento
Modelo EN T - NULO -
Nombre_auto Varchar(20) - NULO
Color Varchar(20) - NULO -

 DESC Cars_Price_Details; 

Campo Tipo NULO Llave Por defecto Extra
Modelo de auto EN T No EN NULO -
Precio_coche EN T No - NULO

Paso 4: agregue una clave externa a la columna de la tabla

Si desea agregar la clave externa en el momento de la creación de la tabla, debe usar la siguiente sintaxis CREATE TABLE en SQL:

 CREATE TABLE table_name1 ( Column_Name_1 data type (size of the column_1), Column_Name_2 data type (size of the column_2), ......, Column_Name_N data type (size of the column_N) FOREIGN KEY REFERENCES Table_Name2 (Column_Name) ) ; 

Ejemplo

La siguiente consulta agrega la CLAVE EXTRANJERA en la columna 'Modelo' en la tabla Cars_Details:

 CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT, Model INT FOREIGN KEY REFERENCES Cars_Price_Details (Car_Model), Cars_Name VARCHAR (20), Color VARCHAR (20) UNIQUE, Price INT NOT NULL ) ; 

Esta consulta en SQL se une los autos_detalles mesa con el Coches_Precio_Detalles tabla con la ayuda de una clave externa.

Paso 5: ver la estructura de la tabla después de agregar la clave externa

Para comprobar el resultado de la consulta ejecutada en el 4thpaso, tienes que escribir el siguiente comando DESC en SQL:

 DESC Cars_Details; 

Campo Tipo NULO Llave Por defecto Extra
Número de coche EN T PRIMARIO NULO autoincremento
Modelo EN T No EXTRANJERO NULO -
Nombre_auto Varchar(20) - NULO -
Color Varchar(20) - NULO -
Precio EN T NO - NULO -
Promedio EN T NO - 0 -

Como se muestra en el resultado anterior, la columna Modelo se crea como clave externa.

Agregar clave externa a la tabla existente

Si desea agregar la clave externa a la tabla existente, debe usar la siguiente sintaxis ALTER en SQL:

 ALTER TABLE Table_Name1 ADD CONSTRAINT ForeignKey_Name FOREIGN KEY (Column_Name) REFERENCES Table_Name2 (Column_Name); 

La siguiente consulta agrega una CLAVE EXTRANJERA en la columna Modelo cuando la tabla Cars_Details ya existe en el sistema de base de datos:

 ALTER TABLE Cars_Details ADD CONSTRAINT FK_Cars_Details FOREIGN KEY (Model) REFERENCES Cars_Price_Details (Car_Model); 

Esta consulta ALTER en SQL se une los autos_detalles mesa con el Coches_Precio_Detalles tabla con la ayuda de una clave externa.

Eliminar clave externa de la tabla

Si desea eliminar la clave externa de la columna de la tabla, debe utilizar lo siguiente ALTERAR sintaxis en SQL:

 ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name; 

La siguiente consulta elimina la CLAVE EXTRANJERA creada de la columna Modelo de la tabla Cars_Details:

 ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;