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:
- Adicione a chave estrangeira usando a instrução Create table
- 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:
- Crie o banco de dados no sistema.
- Crie duas tabelas no mesmo banco de dados.
- Visualize a estrutura da tabela antes da adição da chave estrangeira.
- Adicione uma chave estrangeira à tabela.
- 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;