SQL é uma linguagem de programação muito popular e neste tutorial, você aprenderá tudo sobre chave estrangeira SQL. Vamos começar!
O que é uma chave estrangeira no SQL?
Uma chave estrangeira em SQL é uma restrição no banco de dados que liga duas tabelas. Pode ser simplesmente entendido como uma coluna (ou uma combinação de colunas) em uma tabela cujos valores devem corresponder aos da coluna de outra tabela. A restrição de chave estrangeira no banco de dados impõe uma integridade referencial na tabela, o que significa que se a coluna A corresponder à coluna B, então a coluna B deve ocorrer.
Sintaxe de chave estrangeira
CRIAR TABELA
tipo de dados coluna1,
tipo de dados coluna2,
restrição (nome da restrição)
CHAVE ESTRANGEIRA [coluna1, coluna2..]
REFERÊNCIAS [nome da tabela de chave primária] (Lista da coluna da tabela de chave primária)..);
Uso de chave estrangeira
Conforme mencionado anteriormente, o objetivo principal de usar uma chave estrangeira é reforçar a integridade referencial e melhorar o desempenho. Esta restrição é usada para prevenir qualquer ação que possa resultar na destruição das relações entre duas tabelas. A chave estrangeira também ajuda a manter a integridade dos dados da tabela e permite fácil navegação entre duas instâncias. Ele também é usado em SQL para tornar os dados do banco de dados consistentes.
Diferença entre chave primária e chave estrangeira em SQL
Aqui estão algumas diferenças importantes entre a chave primária e a chave estrangeira no SQL:
Chave primária |
Chave estrangeira |
Uma restrição de chave primária é usada para identificar exclusivamente um registro no banco de dados |
Uma chave estrangeira é um campo em uma tabela que é a chave primária em outra tabela |
Uma chave primária nunca pode aceitar um valor NULL |
A chave estrangeira pode ser NULL |
Existe apenas uma chave primária para cada tabela |
Pode haver várias chaves estrangeiras para uma única tabela no banco de dados |
Uma vez que a chave primária é usada para identificar um registro de maneira única, duas linhas não podem ter o mesmo valor para uma chave primária |
A chave estrangeira pode conter os mesmos valores ou valores duplicados |
Uma chave primária está relacionada a uma única tabela apenas |
Uma chave estrangeira está relacionada a duas ou mais tabelas ao mesmo tempo |
É um índice agrupado, por padrão |
Por padrão, não é um índice agrupado |
Uma restrição de chave primária pode ser definida em tabelas temporárias |
A restrição de chave estrangeira não pode ser definida em uma tabela temporária |
Chave estrangeira SQL em CREATE TABLE
Antes de pular em um exemplo para criar uma chave estrangeira em CREATE TABLE, vamos dar uma olhada na sintaxe da mesma, para que seja mais fácil de entender.
Sintaxe para criação de chave estrangeira em CREATE TABLE-
CRIAR TABELA child_table
(
tipo de dados da coluna1 [NULL | NÃO NULO],
…
CONSTRAINT fk_name
CHAVE ESTRANGEIRA (criança_col1,… criança_col_n)
REFERÊNCIAS parent_table (parent_col1… parent_col_n)
[APAGAR {SEM AÇÃO | CASCADE | SET NULL | DEFINIR PADRÃO}]
[NA ATUALIZAÇÃO {SEM AÇÃO | CASCADE | SET NULL | DEFINIR PADRÃO}]
);
child_table
Será o nome da tabela filha que queremos criar.
coluna1… n
Estas serão as colunas que queremos adicionar à child_table. Podemos adicionar quantas colunas quisermos e cada coluna deve ter um tipo de dados definido. Se nenhum valor for passado nessas colunas, ele será automaticamente considerado NULL.
fk_name
Este será o nome da chave estrangeira que desejamos criar.
child_col1… n
Estas serão as colunas que farão referência à chave primária na parent_table.
parent_col1… n
Estas são as colunas que servirão como chave primária para a tabela pai.
Agora que vimos a sintaxe, vamos dar uma olhada em um exemplo.
Aqui, primeiro criamos a tabela-pai como trilhas. A tabela pai possui uma chave primária, o campo track_id.
A próxima etapa que fizemos foi criar uma tabela filho como gênero. A instrução CREATE TABLE é usada para criar uma chave estrangeira na tabela filha como fk_inv_track_id. Esta chave estrangeira aqui fará uma relação entre o track_id da tabela pai e o track_id na tabela filho.
Depois de executar a consulta acima, as duas tabelas ficarão parecidas com esta
Chave estrangeira SQL em ALTER TABLE
A sintaxe para criar uma chave estrangeira em ALTER TABLE é fornecida a seguir.
ALTER TABLE child_table
ADICIONE CONSTRAINT fk_name
CHAVE ESTRANGEIRA (criança_col1, criança_col2,… child_col_n)
REFERÊNCIAS parent_table (parent_col1, parent_col2,… parent_col_n);
child_table
A tabela que deve ser alterada ou modificada.
fk_name
O nome da chave estrangeira que queremos criar.
Exemplo-
Neste exemplo, criamos uma chave estrangeira na tabela de gênero que fará referência ao track_id na tabela de faixas.
DROP uma restrição de chave estrangeira
Para eliminar uma chave estrangeira, a instrução ALTER TABLE é usada no SQL. Vejamos a sintaxe fornecida abaixo.
Sintaxe
ALTER TABLE nome_tabela
DROP CONSTRAINT fk_name;
nome_tabela
Este é o nome da tabela onde a chave estrangeira foi criada.
Exemplo-
No primeiro exemplo que vimos, criamos uma chave estrangeira fk_inv_track_id na tabela gênero.
Usando a consulta abaixo, podemos descartar essa chave estrangeira.
Ganhe experiência nas mais recentes ferramentas e técnicas de análise de negócios com o Programa de Pós-Graduação em Análise de Negócios . Inscreva-se agora!
Agora que aprendemos o que é uma chave estrangeira e como ela é criada, vamos fazer um rápido resumo. Em primeiro lugar, vimos o que é uma chave estrangeira. Portanto, uma chave estrangeira em resumo é uma restrição que ajuda a manter um relacionamento entre duas tabelas em um banco de dados. Depois disso, vimos algumas diferenças importantes entre uma chave primária e uma chave estrangeira no SQL. E, por fim, vimos como podemos criar uma chave estrangeira usando as instruções CREATE e ALTER e também como excluir uma chave estrangeira criada anteriormente usando a instrução DROP. E se você deseja dominar SQL completamente, você deve se inscrever no treinamento de certificação de SQL da Simplilearn agora mesmo!
Além disso, leia nosso próximo tutorial sobre Chave composta a > para obter mais detalhes sobre as chaves em SQL.
Por outro lado, se você tiver alguma dúvida sobre este assunto, pode escrever para nós na seção de comentários abaixo, e nossos especialistas o ajudarão em breve.