J'utilise la base de données mysql. J'ai une confusion entre la clé primaire et la clé unique.
Veuillez m'aider où dois-je créer la clé primaire et unique. Je veux dire dans quelle situation nous créons une clé unique ou une clé primaire.
J'utilise la base de données mysql. J'ai une confusion entre la clé primaire et la clé unique.
Veuillez m'aider où dois-je créer la clé primaire et unique. Je veux dire dans quelle situation nous créons une clé unique ou une clé primaire.
Réponses:
Clé primaire:
NULL
- par exemple, MySQL ajouteNOT NULL
Clé unique:
NULL
valeursNULL
; plusieurs lignes peuvent avoir des NULL
valeurs et ne peuvent donc pas être considérées comme "uniques"Clé unique (Royaume-Uni) : il s'agit d'une colonne ou d'un groupe de colonnes qui peut identifier l'unicité d'une ligne.
Clé primaire (PK) : c'est également une colonne ou un groupe de colonnes qui peut identifier l'unicité d'une ligne.
La clé primaire n'est donc qu'un autre nom pour la clé unique, mais l'implémentation par défaut dans SQL Server est différente pour la clé primaire et unique.
Par défaut:
Cela dépend vraiment de votre objectif lorsque vous décidez de créer un Royaume-Uni ou un PK. Il s'ensuit une analogie comme "S'il y a une équipe de trois personnes, alors tous sont des pairs, mais il y en aura un qui sera une paire de pairs: PK et UK ont une relation similaire.". Je suggère de lire cet article: l'exemple donné par l'auteur peut ne pas sembler convenable, mais essayez de vous faire une idée globale.
http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html
[table_name]_pkey
) est ajoutée à la table (j'ai entendu cela appelé une clé de substitution). Source: postgresqltutorial.com/postgresql-primary-key Je suis nouveau dans tout cela, donc j'apprécierais une affiche plus compétente pour souligner les nuances que j'ai manquées.
Pour une organisation ou une entreprise, il y a tellement d'entités physiques (telles que des personnes, des ressources, des machines, etc.) et des entités virtuelles (leurs tâches, transactions, activités). En règle générale, les entreprises doivent enregistrer et traiter les informations de ces entités commerciales. Ces entités commerciales sont identifiées dans un domaine commercial complet par une clé.
Selon la prospective du SGBDR, la clé (ou clé candidate) est une valeur ou un ensemble de valeurs qui identifie de manière unique une entité.
Pour une table DB, il y a tellement de clés qui existent et peuvent être éligibles pour la clé primaire. Pour que toutes les clés, clé primaire, clé unique, etc. soient appelées collectivement comme clé candidate. Cependant, DBA a sélectionné une clé dans la clé candidate pour rechercher des enregistrements est appelée clé primaire.
Différence entre la clé primaire et la clé unique
1. Comportement: la clé primaire est utilisée pour identifier une ligne (enregistrement) dans une table, tandis que la clé unique sert à empêcher les valeurs en double dans une colonne (à l'exception d'une entrée nulle).
2. Indexation: par défaut, le moteur SQL crée un index clusterisé sur la clé primaire s'il n'existe pas et un index non clusterisé sur la clé unique.
3. Nullabilité: la clé primaire n'inclut pas les valeurs Null, contrairement à la clé unique.
4. Existence: une table peut avoir au plus une clé primaire, mais peut avoir plusieurs clés uniques.
5. Modifiabilité: vous ne pouvez pas modifier ou supprimer les valeurs primaires, mais les valeurs de clé unique le peuvent.
Pour plus d'informations et d'exemples:
Une clé primaire doit être unique.
Une clé unique ne doit pas nécessairement être la clé primaire - voir clé candidate .
C'est-à-dire qu'il peut y avoir plus d'une combinaison de colonnes sur une table qui peut identifier de manière unique une ligne - une seule d'entre elles peut être sélectionnée comme clé primaire. Les autres, bien que uniques, sont des clés candidates.
Différence entre la clé primaire et la clé unique
+-----------------------------------------+-----------------------------------------------+ | Primary Key | Unique Key | +-----------------------------------------+-----------------------------------------------+ | Primary Key can't accept null values. | Unique key can accept only one null value. | +-----------------------------------------+-----------------------------------------------+ | By default, Primary key is clustered | By default, Unique key is a unique | | index and data in the database table is | non-clustered index. | | physically organized in the sequence of | | | clustered index. | | +-----------------------------------------+-----------------------------------------------+ | We can have only one Primary key in a | We can have more than one unique key in a | | table. | table. | +-----------------------------------------+-----------------------------------------------+ | Primary key can be made foreign key | In SQL Server, Unique key can be made foreign | | into another table. | key into another table. | +-----------------------------------------+-----------------------------------------------+
Vous pouvez trouver des informations détaillées sur:
http://www.dotnet-tricks.com/Tutorial/sqlserver/V2bS260912-Difference-between-Primary-Key-and-Unique-Key.html
Une clé primaire a la sémantique d'identifier la ligne d'une base de données. Par conséquent, il ne peut y avoir qu'une seule clé primaire pour une table donnée, alors qu'il peut y avoir plusieurs clés uniques.
Aussi pour la même raison, une clé primaire ne peut pas être NULL (au moins dans Oracle, je ne suis pas sûr des autres bases de données)
Puisqu'il identifie la ligne, il ne devrait jamais changer. Changer les clés primaires causera inévitablement de graves douleurs et probablement une damnation éternelle.
Par conséquent, dans la plupart des cas, vous voulez un identifiant artificiel pour la clé primaire qui n'est utilisé que pour identifier des lignes uniques dans la table.
En revanche, les clés uniques peuvent changer autant que vous le souhaitez.
Une clé primaire est une clé unique.
Chaque table doit avoir au plus UNE clé primaire mais elle peut avoir plusieurs clés uniques. Une clé primaire est utilisée pour identifier de manière unique une ligne de table. Une clé primaire ne peut pas l'être NULL
car NULL
n'est pas une valeur.
Je sais que cette question remonte à plusieurs années, mais j'aimerais y répondre en expliquant pourquoi plutôt que comment.
Objectif de la clé primaire : Identifier une ligne dans une base de données de manière unique => Une ligne représente une seule instance du type d'entité modélisée par la table. Une clé primaire applique l'intégrité d'une entité, AKA Entity Integrity. La clé primaire serait un index clusterisé, c'est-à-dire qu'elle définit l'ordre dans lequel les données sont physiquement stockées dans une table.
Objectif de la clé unique : Ok, avec la clé primaire, nous avons un moyen d'identifier de manière unique une ligne. Mais j'ai un besoin commercial tel qu'une autre colonne / un ensemble de colonnes doit avoir des valeurs uniques. Eh bien, techniquement, étant donné que cette ou ces colonnes sont uniques, elles peuvent être candidates à l'application de l'intégrité de l'entité. Mais pour tout ce que nous savons, cette colonne peut contenir des données provenant d'une organisation externe dont je doute peut-être d'être unique. Je ne peux pas lui faire confiance pour assurer l'intégrité de l'entité. J'en fais juste une clé unique pour répondre à mes besoins commerciaux.
Voilà!
Si la conception de votre base de données est telle qu'elle n'a pas besoin de clé étrangère, vous pouvez utiliser la clé unique ( mais n'oubliez pas que la clé unique autorise une valeur nulle unique ).
Si votre base de données demande une clé étrangère, vous ne partez pas avec le choix de choisir la clé primaire.
Pour voir la différence entre la clé unique et la clé primaire, visitez ici
Clé unique: - Elle doit être utilisée lorsque vous devez donner une valeur unique.Dans le cas d'une clé unique, cela signifie que les valeurs nulles sont également autorisées.Les clés uniques sont les clés qui sont uniques et non similaires dans cette colonne comme par exemple le nom de votre animal de compagnie .it ne peut rien avoir comme null et si vous demandez dans le contexte de la base de données, il faut noter que chaque null est différent d'un autre null dans la base de données. EXCEPT-SQL Server où null = null est vrai
Clé primaire: - Elle doit être utilisée lorsque vous devez donner une ligne de manière unique. La clé primaire est unique pour chaque ligne d'une contrainte de base de données, car elle n'autorise pas la valeur NULL dans celle-ci. avoir une colonne qui est incrémentation automatique et c'est la clé primaire de la table. De plus, il peut être utilisé comme clé étrangère dans une autre table. L'exemple peut être orderId sur une table de commande , billId dans une table de facture .
revenons maintenant à la situation quand l'utiliser: -
1) clé primaire dans la colonne qui ne peut pas être nulle dans la table et que vous utilisez comme clé étrangère dans une autre table pour créer une relation
2) clé unique dans la table où cela n'affecte pas dans la table ou dans la base de données entière que vous preniez la valeur nulle pour la colonne particulière comme les collations dans le restaurant, il est possible que vous ne preniez pas de collations dans un restaurant
différence entre la clé primaire et la clé unique
Les deux Primary key
et Unique Key
sont utilisés pour définir de manière unique une ligne dans une table.
Primary Key
crée un clustered index
de la colonne alors qu'un Unique creates an unclustered index of the column
.
A Primary Key
ne permet pas NULL value
, mais a Unique Key
permet one NULL value
.
Simplement, la clé primaire est unique et ne peut pas être nulle, unique peut être nulle et peut ne pas être unique.
may not be unique
signifie ici?
L'objectif principal de la clé primaire est de fournir un moyen d'identifier chaque enregistrement du tableau.
La clé primaire fournit un moyen d'identifier la ligne en utilisant des données à l'intérieur de la ligne. Une clé primaire peut être basée sur une ou plusieurs colonnes, telles que le prénom et le nom; cependant, dans de nombreuses conceptions, la clé primaire est un numéro généré automatiquement à partir d'une colonne d'identité.
Une clé primaire présente les caractéristiques suivantes:
Une clé unique est également appelée contrainte unique. Une contrainte unique peut être utilisée pour garantir que les lignes sont uniques dans la base de données.
Ne le faisons-nous pas déjà avec la clé primaire? Oui, nous le faisons, mais une table peut avoir plusieurs ensembles de colonnes que vous voulez uniques.
Dans SQL Server, la clé unique a les caractéristiques suivantes:
source: ici
Les principales caractéristiques d'une clé primaire sont:
Il doit contenir une valeur unique pour chaque ligne de données. Il ne peut pas contenir de valeurs nulles. Une seule clé primaire dans une table.
Les principales caractéristiques d'une clé unique sont:
Il peut également contenir une valeur unique pour chaque ligne de données.
Il peut également contenir des valeurs nulles.
Plusieurs clés uniques dans une table.
PRIMARY KEY = UNIQUE KEY + Not Null CONSTRAINT