logo

Como adicionar chave estrangeira em SQL

Neste artigo, aprenderemos como adicionar uma chave estrangeira à coluna da tabela do nosso banco de dados SQL.

O CHAVE ESTRANGEIRA em SQL é usado para unir o registro de duas tabelas no banco de dados. A coluna definida como FOREIGN KEY em uma tabela deve ser a PRIMARY KEY em outra tabela no mesmo banco de dados.

Podemos facilmente adicionar chave estrangeira à coluna das duas maneiras a seguir:

  1. Adicione a chave estrangeira usando a instrução Create table
  2. Adicione chave estrangeira usando a instrução Alter Table

Se você deseja adicionar uma FOREIGN KEY à coluna da tabela SQL, você deve seguir as etapas abaixo na sequência fornecida:

  1. Crie o banco de dados no sistema.
  2. Crie duas tabelas no mesmo banco de dados.
  3. Visualize a estrutura da tabela antes da adição da chave estrangeira.
  4. Adicione uma chave estrangeira à tabela.
  5. Veja a estrutura da tabela.

Agora, vamos explicar as etapas acima com um exemplo:

Etapa 1: Crie um banco de dados

Na Structured Query Language, criar um banco de dados é a primeira etapa para armazenar as tabelas estruturadas no banco de dados.

Use a seguinte sintaxe SQL para criar um banco de dados:

 CREATE DATABASE Database_Name; 

Suponha que você queira criar o Veículos base de dados. Para isso, você deve digitar o seguinte comando em Structured Query Language:

 CREATE DATABASE Vehicles; 

Etapa 2: Crie duas tabelas no banco de dados

Agora, você deve usar a seguinte sintaxe SQL para criar as tabelas em seu banco de dados:

 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) ); 

A consulta SQL a seguir cria o Carros_Detalhes mesa no Veículos base de dados.

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

A consulta a seguir cria Carros_Price_Detalhes mesa no Veículos base de dados:

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

Etapa 3: visualizar a estrutura da tabela antes da adição da chave estrangeira

Após a criação da tabela e inserção dos dados, você pode visualizar a estrutura de ambas as tabelas digitando a seguinte consulta em sua aplicação SQL:

 DESC Cars or DESCRIBE Cars ; 

Campo Tipo NULO Chave Padrão Extra
Número_do_carro INT NÃO NO NULO Incremento automático
Modelo INT Sim - NULO -
Carro_Nome Varchar(20) Sim - NULO
Cor Varchar(20) Sim - NULO -

 DESC Cars_Price_Details; 

Campo Tipo NULO Chave Padrão Extra
Modelo_carro INT Não NO NULO -
Preço_carro INT Não - NULO

Etapa 4: adicione uma chave estrangeira à coluna da tabela

Se você deseja adicionar a chave estrangeira no momento da criação da tabela, você deve usar a seguinte sintaxe CREATE TABLE em 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) ) ; 

Exemplo

A consulta a seguir adiciona a FOREIGN KEY na coluna 'Model' na tabela 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 em SQL junta os Carros_Detalhes mesa com o Carros_Price_Detalhes tabela com a ajuda de uma chave estrangeira.

Etapa 5: visualizar a estrutura da tabela após a adição da chave estrangeira

Para verificar o resultado da consulta executada em o 4ºetapa, você deve digitar o seguinte comando DESC em SQL:

 DESC Cars_Details; 

Campo Tipo NULO Chave Padrão Extra
Número_do_carro INT Sim PRIMÁRIO NULO Incremento automático
Modelo INT Não ESTRANGEIRO NULO -
Carro_Nome Varchar(20) Sim - NULO -
Cor Varchar(20) Sim - NULO -
Preço INT NÃO - NULO -
Média INT NÃO - 0 -

Conforme mostrado na saída acima, a coluna Modelo é criada como chave estrangeira.

Adicionar chave estrangeira à tabela existente

Se quiser adicionar a chave estrangeira à tabela existente, você deve usar a seguinte sintaxe ALTER em SQL:

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

A consulta a seguir adiciona uma FOREIGN KEY na coluna Model quando a tabela Cars_Details já existe no sistema de banco de dados:

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

Esta consulta ALTER em SQL une os Carros_Detalhes mesa com o Carros_Price_Detalhes tabela com a ajuda de uma chave estrangeira.

Exclua a chave estrangeira da tabela

Se você deseja excluir a chave estrangeira da coluna da tabela, você deve usar o seguinte ALTERAR sintaxe em SQL:

 ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name; 

A consulta a seguir exclui a FOREIGN KEY criada da coluna Model da tabela Cars_Details:

 ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;