Antes de aprender a diferença entre a chave primária e a chave estrangeira, vamos aprender:
O que são chaves?
Chaves são atributos que ajudam a identificar uma linha (tupla) em uma relação (tabela). Eles permitem que você encontre a relação entre duas tabelas. As chaves ajudam a identificar de maneira única uma linha em uma tabela por uma combinação de uma ou mais colunas dessa tabela. A chave do banco de dados também é útil para localizar um registro ou linha exclusiva da tabela.
O que é relacionamento com o banco de dados?
O relacionamento do banco de dados é associações entre uma ou mais tabelas que são criadas usando instruções de junção. Ele é usado para recuperar dados do banco de dados de maneira eficiente. Existem basicamente três tipos de relacionamento 1) Um para Um, 2) Um para muitos, 3) Muitos para muitos.
O que é chave primária?
Uma restrição de chave primária é uma coluna ou grupo de colunas que identifica exclusivamente cada linha na tabela do sistema de gerenciamento de banco de dados relacional. Não pode ser uma duplicata, o que significa que o mesmo valor não deve aparecer mais de uma vez na tabela.
Uma tabela pode ter mais de uma chave primária. A chave primária pode ser definida no nível da coluna ou da tabela. Se você criar uma chave primária composta, ela deve ser definida no nível da tabela.
O que é chave estrangeira?
Chave estrangeira é uma coluna que cria um relacionamento entre duas tabelas. O objetivo da chave estrangeira é manter a integridade dos dados e permitir a navegação entre duas instâncias diferentes de uma entidade. Ele atua como uma referência cruzada entre duas tabelas, pois faz referência à chave primária de outra tabela. Cada relacionamento no banco de dados deve ser suportado por uma chave estrangeira.
PRINCIPAIS DIFERENÇAS:
- Uma restrição de chave primária é uma coluna que identifica exclusivamente cada linha na tabela do sistema de gerenciamento de banco de dados relacional, enquanto a chave estrangeira é uma coluna que cria um relacionamento entre duas tabelas.
- A chave primária nunca aceita valores nulos, enquanto a chave estrangeira pode aceitar vários valores nulos.
- Você pode ter apenas uma única chave primária em uma tabela, enquanto pode ter várias chaves estrangeiras em uma tabela.
- O valor da chave primária não pode ser removido da tabela pai, enquanto o valor da chave estrangeira pode ser removido da tabela filho.
- Duas linhas não podem ter valores idênticos para uma chave primária, por outro lado, uma chave estrangeira pode conter valores duplicados.
- Não há limitação em inserir os valores na coluna da tabela ao inserir qualquer valor na tabela de chave estrangeira, certifique-se de que o valor está presente em uma coluna de uma chave primária.
Por que usar a chave primária?
Aqui estão os contras / benefícios de usar a chave primária:
- O principal objetivo da chave primária é identificar cada registro na tabela do banco de dados.
- Você pode usar uma chave primária quando não permitir que alguém insira valores nulos.
- Se você excluir ou atualizar registros, a ação especificada será realizada para garantir a integridade dos dados.
- Execute a operação de restrição para rejeitar a operação de exclusão ou atualização da tabela pai.
- Os dados são organizados em uma sequência de índice agrupado sempre que você organiza fisicamente a tabela DBMS.
Por que usar chave estrangeira?
Aqui estão as razões importantes para usar a chave estrangeira:
- As chaves estrangeiras ajudam a migrar entidades usando uma chave primária da tabela pai.
- Uma chave estrangeira permite vincular duas ou mais tabelas.
- Isso torna os dados do seu banco de dados consistentes.
- Uma chave estrangeira pode ser usada para combinar uma coluna ou combinação de colunas com a chave primária em uma tabela pai.
- A restrição de chave estrangeira SQL é usada para garantir que a integridade referencial do pai dos dados corresponda aos valores da tabela filha.
Exemplo de chave primária
Sintaxe:
Abaixo está a sintaxe da chave primária:
CREATE TABLE(Column1 datatype,Column2 datatype, PRIMARY KEY (Column-Name).);
Aqui,
- Table_Name é o nome da tabela que você deve criar.
- Column_Name é o nome da coluna que possui a chave primária.
Exemplo:
StudID | Núm. da lista | Primeiro nome | Sobrenome | O email |
---|---|---|---|---|
1 | 11 | Tom | Preço | Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo. |
2 | 12 | usuario | Wright | Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo. |
3 | 13 | Dana | Natan | Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo. |
No exemplo acima, criamos uma tabela de alunos com colunas como StudID, Roll No, First Name, Last Name e Email. StudID é escolhido como uma chave primária porque pode identificar exclusivamente outras linhas na tabela.
Exemplo de chave estrangeira
Sintaxe:
Abaixo está a sintaxe da chave estrangeira:
CREATE TABLE