Meu trabalho
Uma chave primária é única e contém apenas uma para uma tabela.
Existem muitas chaves exclusivas que podem conter em uma tabela.
No SQL Server, a chave primária não é anulável. Mas, uma chave exclusiva pode conter apenas um valor nulo.
Minha pergunta:
Praticamente no SQL Server, a chave primária não é anulável. Mas quando se trata de teoria, por que não podemos ter exatamente apenas um valor Null na chave primária quando permite um valor Null na chave exclusiva?
Obrigado por responder minha pergunta
Desculpe por fazer uma pergunta geral, depois de ler a resposta, tive uma ideia clara sobre valores nulos no banco de dados.
Além disso, confundi com linguagens de programação como em C++, Jave, onde o valor nulo pode ser comparável. Depois de fazer algum trabalho, entendo que Null não é comparável em SQL.
Em linguagens de programação como em C++, Jave...
Null==Null
retorna VERDADEIRO
Mas, em SQL
Null==Null
retorna FALSE, porque o valor Null é desconhecido e pode ser qualquer valor.
Nenhum atributo que faça parte de uma chave pode conter nulos; se uma coluna for anulável, ela não fará parte de nenhuma chave. Também é o caso que o conjunto de colunas definido por uma restrição UNIQUE ou PRIMARY KEY NÃO é uma chave, a menos que seja uma superchave mínima e também não anulável .
Por que as chaves não podem permitir nulos? Existem muitas razões potenciais: