Estou usando o banco de dados mysql. Eu tenho uma confusão entre chave primária e chave exclusiva.
Por favor, ajude-me onde devo criar a chave primária e única. Quero dizer em que situação criamos chave única ou chave primária.
Estou usando o banco de dados mysql. Eu tenho uma confusão entre chave primária e chave exclusiva.
Por favor, ajude-me onde devo criar a chave primária e única. Quero dizer em que situação criamos chave única ou chave primária.
PRIMARY KEY = UNIQUE KEY + Not Null CONSTRAINT
Respostas:
Chave primária:
NULL
- por exemplo, o MySQL adicionaNOT NULL
Chave única:
NULL
valoresNULL
; várias linhas podem terNULL
valores e, portanto, não podem ser consideradas "únicas"fonte
Chave exclusiva (Reino Unido) : é uma coluna ou um grupo de colunas que pode identificar uma exclusividade em uma linha.
Chave primária (PK) : também é uma coluna ou grupo de colunas que pode identificar uma exclusividade em uma linha.
Portanto, a chave Primária é apenas outro nome para a chave exclusiva, mas a implementação padrão no SQL Server é diferente para Chave Primária e Exclusiva.
Por padrão:
Depende realmente de qual é o seu objetivo ao decidir criar um Reino Unido ou PK. Segue uma analogia como "Se há uma equipe de três pessoas, então todas são colegas, mas haverá uma que será um par de colegas: PK e UK têm uma relação semelhante". Eu sugeriria a leitura deste artigo: O exemplo dado pelo autor pode não parecer adequado, mas tente ter uma idéia geral.
http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html
fonte
[table_name]_pkey
) é adicionada à tabela (eu ouvi isso chamado de chave substituta). Fonte: postgresqltutorial.com/postgresql-primary-key Eu sou novo nisso tudo, então eu apreciaria um pôster com mais conhecimento para apontar as nuances que eu perdi.Para uma organização ou empresa, existem muitas entidades físicas (como pessoas, recursos, máquinas, etc.) e entidades virtuais (suas tarefas, transações, atividades). Normalmente, os negócios precisam registrar e processar informações dessas entidades comerciais. Essas entidades comerciais são identificadas em um domínio comercial inteiro por uma Chave.
Conforme o RDBMS em potencial, Key (também conhecida como Chave do Candidato) é um valor ou conjunto de valores que identificam exclusivamente uma entidade.
Para uma tabela de banco de dados, existem tantas chaves que podem ser elegíveis para chave primária. Para que todas as chaves, chave primária, chave exclusiva, etc. sejam chamadas coletivamente como Chave de Candidato. No entanto, o DBA selecionou uma chave da chave candidata para pesquisar registros, chamada Chave Primária.
Diferença entre chave primária e chave exclusiva
1. Comportamento: Chave Primária é usada para identificar uma linha (registro) em uma tabela, enquanto Chave Única é para evitar valores duplicados em uma coluna (com exceção de uma entrada nula).
2. Indexação: Por padrão, o mecanismo SQL cria o Índice em Cluster na chave primária, se não existir, e o Índice Não em Cluster na Chave Exclusiva.
3. Nulabilidade: A chave primária não inclui valores nulos, enquanto a chave exclusiva pode.
4. Existência: uma tabela pode ter no máximo uma chave primária, mas pode ter várias chaves exclusivas.
5. Modificabilidade: você não pode alterar ou excluir valores primários, mas os valores de chave exclusiva podem.
Para mais informações e exemplos:
http://dotnetauthorities.blogspot.in/2013/11/Microsoft-SQL-Server-Training-Online-Learning-Classes-Integrity-Constraints-PrimaryKey-Unique-Key_27.html
fonte
Uma chave primária deve ser exclusiva.
Uma chave exclusiva não precisa ser a chave primária - veja a chave candidata .
Ou seja, pode haver mais de uma combinação de colunas em uma tabela que pode identificar exclusivamente uma linha - apenas uma delas pode ser selecionada como chave primária. Os outros, embora únicos, são chaves candidatas.
fonte
Você pode encontrar informações detalhadas em:
http://www.dotnet-tricks.com/Tutorial/sqlserver/V2bS260912-Difference-between-Primary-Key-and-Unique-Key.html
fonte
Uma chave primária tem a semântica de identificação da linha de um banco de dados. Portanto, pode haver apenas uma chave primária para uma determinada tabela, enquanto pode haver muitas chaves exclusivas.
Também pelo mesmo motivo, uma chave primária não pode ser NULL (pelo menos no Oracle, não tenho certeza sobre outros bancos de dados)
Uma vez que identifica a linha, nunca deve mudar. A alteração das chaves primárias provavelmente causará graves dores e provavelmente condenação eterna.
Portanto, na maioria dos casos, você deseja algum ID artificial para chave primária que não seja usado para nada, mas para identificar linhas únicas na tabela.
As teclas exclusivas, por outro lado, podem mudar o quanto você desejar.
fonte
Uma chave primária é uma chave exclusiva.
Cada tabela deve ter no máximo UMA chave primária, mas pode ter várias chaves exclusivas. Uma chave primária é usada para identificar exclusivamente uma linha da tabela. Uma chave primária não pode ser,
NULL
poisNULL
não é um valor.fonte
fonte
Sei que esta pergunta tem vários anos, mas gostaria de fornecer uma resposta para isso, explicando por que, e não como
Objetivo da chave primária : identificar uma linha em um banco de dados exclusivamente => Uma linha representa uma única instância do tipo de entidade modelada pela tabela. Uma chave primária reforça a integridade de uma entidade, AKA Entity Integrity. Chave Primária seria um índice em cluster, ou seja, define a ordem em que os dados são fisicamente armazenados em uma tabela.
Objetivo da chave exclusiva : Ok, com a chave primária, temos uma maneira de identificar exclusivamente uma linha. Mas eu tenho uma necessidade de negócios que, outra coluna / um conjunto de colunas deve ter valores únicos. Bem, tecnicamente, considerando que essas colunas são únicas, pode ser um candidato para reforçar a integridade da entidade. Mas, pelo que sabemos, esta coluna pode conter dados originários de uma organização externa que podem ter dúvidas sobre ser único. Posso não confiar nisso para fornecer integridade à entidade. Eu apenas a tornei uma chave exclusiva para atender aos meus requisitos de negócios.
Ai está!
fonte
Se o design do banco de dados for tal que não há necessidade de chave estrangeira, você poderá usar a chave Exclusiva ( mas lembre-se de que a chave exclusiva permite um valor nulo único ).
Se o seu banco de dados exige chave estrangeira, você sai sem opção, mas com a chave primária.
Para ver a diferença entre a chave única e a chave primária, visite aqui
fonte
1) chave primária na coluna que não pode ser nula na tabela e você está usando como chave estrangeira em outra tabela para criar relacionamento
2) chave exclusiva na tabela onde isso não afeta na tabela ou no banco de dados inteiro, se você toma o nulo para uma coluna específica, como lanches no restaurante, é possível que você não tome lanches no restaurante
fonte
diferença entre chave primária e chave exclusiva
Ambos
Primary key
eUnique Key
são usados para definir exclusivamente uma linha em uma tabela.Primary Key
cria aclustered index
da coluna enquanto aUnique creates an unclustered index of the column
.A Primary Key
não permiteNULL value
, no entantoa Unique Key
, permiteone NULL value
.fonte
A Chave Primária Simplesmente é única e não pode ser nula, única pode ser nula e pode não ser única.
fonte
may not be unique
significa aqui?Chaves Primárias
O principal objetivo da chave primária é fornecer um meio para identificar cada registro na tabela.
A chave primária fornece um meio de identificar a linha, usando dados dentro da linha. Uma chave primária pode ser baseada em uma ou mais colunas, como nome e sobrenome; no entanto, em muitos modelos, a chave primária é um número gerado automaticamente a partir de uma coluna de identidade.
Uma chave primária possui as seguintes características:
Chaves exclusivas
Uma chave exclusiva também é chamada de restrição exclusiva. Uma restrição exclusiva pode ser usada para garantir que as linhas sejam exclusivas no banco de dados.
Já não fazemos isso com a chave primária? Sim, sim, mas uma tabela pode ter vários conjuntos de colunas que você deseja que sejam únicos.
No SQL Server, a chave exclusiva possui as seguintes características:
fonte: aqui
fonte
Os principais recursos de uma chave primária são:
Ele deve conter um valor exclusivo para cada linha de dados. Não pode conter valores nulos. Apenas uma chave primária em uma tabela.
Os principais recursos de uma chave exclusiva são:
Também pode conter um valor exclusivo para cada linha de dados.
Também pode conter valores nulos.
Várias chaves exclusivas em uma tabela.
fonte