
A diferença essencial entre a chave primária e a chave exclusiva é que a chave primária não aceita valores NULL, enquanto os valores NULL são permitidos dentro de restrições de chave exclusivas.
Gráfico de comparação
Base para comparação | Chave primária | Chave única |
---|---|---|
Basic | Ele é usado para servir como um identificador exclusivo para cada linha de uma tabela. | Ele também determina exclusivamente uma linha, que não é definida como uma chave primária. |
Aceitação do valor NULL | A chave primária não aceita valores NULL. | Unique aceitará um valor NULL. |
Número de chaves que podem ser definidas na tabela | Apenas uma chave primária | Mais de um |
Índice | Cria um índice clusterizado | Cria um índice não clusterizado |
Definição da chave primária
Uma coluna pode ser chamada como uma chave primária de sua tabela se ela identifica exclusivamente cada tupla (linha) nessa tabela. Ele impõe restrições de integridade à tabela. Apenas uma chave primária é permitida em uma tabela. A chave primária não aceita os valores duplicados e NULL. A chave primária é escolhida com cuidado, onde as alterações podem ocorrer de forma raramente, significa que uma chave primária em uma tabela muda muito raramente.
Vamos entender a noção de chave primária com a ajuda de uma tabela. Aqui estamos criando uma tabela nomeada como tabela Student, que possui atributos como Roll_number, Name, Batch, Phone_number, Citizen_ID.

Uma chave primária pode ser referenciada por chave estrangeira. Ele cria um índice clusterizado exclusivo na tabela. Em um índice clusterizado, as linhas de dados são classificadas e armazenadas em uma tabela ou exibições com base em seus valores-chave. Pode haver apenas um índice clusterizado em uma tabela, a razão por trás disso é que as linhas de dados em uma tabela podem ser classificadas em apenas uma ordem.
Definição de chave exclusiva
Semelhante a uma chave primária, as restrições de chave exclusiva também identificam uma tupla individual em uma relação. Mas há certas diferenças entre eles. Uma tabela pode ter mais de uma chave exclusiva. Restrições de chave exclusivas podem aceitar apenas um valor NULL para uma coluna.
Vamos entender isso com o exemplo semelhante, em que tivemos uma tabela de alunos com os atributos Roll_number, Name, Batch, Phone_number e Citizen_ID. O atributo do número de rolo é atribuído com a chave primária.

Restrições exclusivas também são referenciadas pela chave estrangeira. Pode ser usado quando alguém deseja impor restrições a uma coluna e a um grupo de colunas que não é uma chave primária. Ao contrário da chave primária, gera o índice não agrupado . Índices não clusterizados têm uma estrutura distinta das linhas de dados. Cada entrada de valor-chave nela aponta para a linha de dados que contém o valor-chave, portanto, usa ponteiros.
Principais diferenças entre chave primária e chave única
- Quando um atributo é declarado como chave primária, ele não aceita valores NULL. Por outro lado, quando um atributo declarado como Unique, ele pode aceitar um valor NULL.
- Uma tabela pode ter apenas a chave primária, enquanto pode haver várias restrições exclusivas em uma tabela.
- Um índice em cluster criado automaticamente quando uma chave primária é definida. Por outro lado, a chave exclusiva gera o índice não agrupado.
Conclusão
A chave primária e a chave única servem a finalidade de um identificador exclusivo para as linhas de uma tabela com os valores exclusivos em uma coluna ou grupo de colunas. Essas principais restrições são significativamente diferenciadas, onde cada tabela pode ter no máximo uma chave primária, enquanto uma tabela pode ter várias chaves exclusivas que não são primárias.