web-dev-qa-db-fra.com

différence entre la clé primaire et la clé unique

J'utilise la base de données mysql. J'ai une confusion entre clé primaire et clé unique.

S'il vous plaît aidez-moi où dois-je créer une clé primaire et unique. Je veux dire dans quelle situation nous créons une clé unique ou une clé primaire.

230
Anuj

Clé primaire:

  • Il ne peut y avoir qu'une seule clé primaire dans une table
  • Dans certains SGBD, il ne peut pas s'agir de NULL - par exemple. MySQL ajoute NOT NULL
  • La clé primaire est un identifiant de clé unique de l'enregistrement

Clé unique:

  • Peut être plus d'une clé unique dans une table
  • La clé unique peut avoir les valeurs NULL
  • Ça peut être une clé candidate
  • La clé unique peut être NULL; plusieurs lignes peuvent avoir la valeur NULL et ne peuvent donc pas être considérées comme "uniques"
205
Mr. KB

Clé unique (UK) : il s'agit d'une colonne ou d'un groupe de colonnes pouvant identifier une unicité dans une ligne.

Clé primaire (PK) : C'est aussi une colonne ou un groupe de colonnes qui peut identifier une unicité dans une rangée.

La clé primaire est donc simplement un autre nom pour la clé unique, mais l'implémentation par défaut dans SQL Server est différente pour les clés primaire et unique.

Par défaut:

  1. PK crée un index clusterisé et UK crée un index non clusterisé.
  2. PK n'est pas nul, mais le Royaume-Uni autorise les valeurs nulles (Remarque: par défaut)
  3. Il ne peut y avoir qu'un et un seul PK sur une table, mais il peut y avoir plusieurs Royaume-Uni
  4. Vous pouvez remplacer l'implémentation par défaut en fonction de vos besoins.

Cela dépend vraiment de votre objectif lorsque vous décidez de créer un UK ou un PK. Il en résulte une analogie du type "S'il y a une équipe de trois personnes, elles sont donc toutes des pairs, mais il y en aura une qui sera une paire de pairs: PK et UK ont une relation similaire.". Je suggérerais de lire cet article: L'exemple donné par l'auteur peut ne pas sembler approprié, mais essayez de vous faire une idée globale.

http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html

73
dhi

Pour une organisation ou une entreprise, il existe de nombreuses entités physiques (telles que des personnes, des ressources, des machines, etc.) et des entités virtuelles (leurs tâches, leurs transactions, leurs activités). En règle générale, les entreprises doivent enregistrer et traiter les informations de ces entités. Ces entités commerciales sont identifiées dans un domaine commercial complet par une clé.

Selon les perspectives du SGBDR, Clé (a.k.a Candidate Key) est une valeur ou un ensemble de valeurs qui identifie de manière unique une entité.

Pour une table de base de données, il y a tellement de clés existantes qui pourraient être éligibles pour la clé primaire. Ainsi, toutes les clés, clés primaires, clés uniques, etc. sont collectivement appelées clés candidates. Toutefois, DBA a sélectionné une clé parmi les clés candidates pour la recherche d'enregistrements 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 Unique-key empêche les doublons de valeurs dans une colonne (à l'exception d'une entrée NULL).

2. Indexation: Par défaut, SQL-engine crée un index clusterisé sur une clé primaire s'il n'existe pas et un index non clusterisé sur une clé unique.

3. Nullability: La clé primaire n'inclut pas les valeurs Null, alors que Unique-key le peut.

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 à clé unique le peuvent.

Pour plus d'informations et exemples:

http://dotnetauthorities.blogspot.in/2013/11/Microsoft-SQL-Server-Training-Online-Learning-Classes-Integrity-Constraints-PrimaryKey-Unique-Key_27.html

40

Une clé primaire doit être unique.

Une clé unique ne doit pas nécessairement être la clé primaire - voir clé candidate .

Autrement dit, il peut exister plusieurs combinaisons de colonnes dans une table pouvant identifier une ligne de manière unique. Seule l'une d'entre elles peut être sélectionnée comme clé primaire. Les autres, bien que uniques, sont des clés candidates.

26
Oded

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.

De plus, pour la même raison, une clé primaire ne peut pas être NULL (du moins dans Oracle, pas sûr des autres bases de données)

Puisqu'il identifie la ligne, il ne devrait jamais changer. Changer les clés primaires est voué à causer une douleur grave et probablement une damnation éternelle.

Par conséquent, dans la plupart des cas, vous souhaitez un identifiant artificiel pour la clé primaire qui n’est utilisé que pour l’identification de lignes uniques dans la table.

Les touches uniques peuvent en revanche changer autant que vous le souhaitez.

16
Jens Schauder

Différence entre clé primaire et 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

15
Omer K

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 être NULL car NULL n'est pas une valeur.

7
Buhake Sindi
  • Pensez que le nom de la table est employe.
  • Clé primaire
  • La clé primaire ne peut pas accepter les valeurs nulles. La clé primaire applique l'unicité d'une colonne. Nous ne pouvons avoir qu'une seule clé primaire dans une table.
  • Clé unique
  • Une clé unique peut accepter des valeurs nulles. clé unique applique également le caractère unique d'une colonne. Vous pouvez penser que si une clé unique contient des valeurs NULL, pourquoi peut-elle être unique? oui, bien qu'il puisse accepter des valeurs NULL, il impose l'unicité d'une colonne. jetez un coup d’œil sur la photo.ici Emp_ID est primaire et ID de citoyen est unique. J'espère que tu as compris. Nous pouvons utiliser plusieurs clés uniques dans une table. enter image description here
6

Je sais que cette question a plusieurs années mais j'aimerais apporter une réponse à cette explication 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 instance unique du type d'entité modélisé par la table. Une clé primaire applique l'intégrité d'une entité, AKA Entity Integrity. La clé primaire est un index clusterisé, c’est-à-dire qu’il définit l’ordre dans lequel les données sont physiquement stockées dans une table.

But 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 colonne est unique, elle peut être candidate pour appliquer l'intégrité de l'entité. Mais pour autant que nous sachions, cette colonne peut contenir des données provenant d'une organisation externe pour lesquelles je peux avoir un doute sur mon caractère unique. Je ne peux pas lui faire confiance pour assurer l'intégrité de l'entité. Je viens d'en faire une clé unique pour répondre aux besoins de mon entreprise.

Voilà!

3
Manuri

Si la conception de votre base de données est telle qu'elle ne nécessite pas de clé étrangère, vous pouvez utiliser la clé unique ( mais n'oubliez pas que la clé unique autorise une valeur NULL unique ). .

Si votre base de données demande une clé étrangère, vous ne laissez aucun choix, vous devez utiliser une clé primaire.

Pour voir la différence entre visite unique et clé principale ici

1
user2903536

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_ n'autorise pas _NULL value_, cependant _a Unique Key_ autorise _one NULL value_.

0
Gufran Hasan

Clés primaires

L'objectif principal de la clé primaire est de fournir un moyen d'identifier chaque enregistrement de la table.

La clé primaire permet d'identifier la ligne à l'aide des données qu'elle contient. Une clé primaire peut être basée sur une ou plusieurs colonnes, telles que prénom et nom; Toutefois, dans de nombreux modèles, 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:

  1. Il ne peut y avoir qu'une seule clé primaire pour une table.
  2. La clé primaire comprend une ou plusieurs colonnes.
  3. La clé primaire applique l'intégrité d'entité de la table.
  4. Toutes les colonnes définies doivent être définies comme NOT NULL.
  5. La clé primaire identifie de manière unique une ligne.
  6. Les clés primaires génèrent par défaut des index uniques CLUSTERED.

Touches uniques

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 faisons-nous pas déjà cela avec la clé primaire? Oui, nous le faisons, mais une table peut avoir plusieurs jeux de colonnes que vous voulez uniques.

Dans SQL Server, la clé unique présente les caractéristiques suivantes:

  1. Il peut y avoir plusieurs clés uniques définies sur une table.
  2. Les clés uniques génèrent par défaut des index uniques NONCLUSTERED.
  3. Une ou plusieurs colonnes constituent une clé unique.
  4. La colonne peut être NULL, mais une seule NULL par colonne est autorisée.
  5. Une contrainte unique peut être référencée par une contrainte de clé étrangère.

source: ici

0
Manish Vadher

Les principales caractéristiques d’une clé primaire sont les suivantes:

Il doit contenir une valeur unique pour chaque ligne de données. Il ne peut pas contenir de valeur null. Une seule clé primaire dans une table.

Les principales caractéristiques d’une clé unique sont les suivantes:

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.

0
Nischal Tyagi

Simplement la clé primaire est unique et ne peut pas être nulle, unique peut être nulle et ne pas être unique.

0
Mohammed F. Ghazo

Clé unique: - Elle doit être utilisée lorsque vous devez donner une valeur unique. Dans le cas d'une clé unique, cela signifie également que les valeurs NULL sont également autorisées. Les clés uniques sont les clés uniques et non similaires dans cette colonne, comme par exemple votre nom d'animal. .it peut ne rien ressembler à null et si vous posez une question dans le contexte d'une 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


primary key: - Elle doit être utilisée lorsque vous devez identifier de manière unique une ligne. primaire est la clé qui est unique pour chaque ligne d'une contrainte de base de données, car elle n'autorise pas la valeur null en it.so, vous avez peut-être vu que la base de données avoir une colonne qui est incrémenté automatiquement et c’est la clé primaire de la table. De plus, il peut être utilisé comme clé étrangère dans une autre table.exemple peut être orderId sur une table de commande, BillId dans une table de facturation.

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 une table qui n'a pas d'incidence dans la table ou dans l'ensemble de la base de données, que vous preniez la valeur null pour la colonne en question, comme pour les collations au restaurant, il est possible que vous ne preniez pas de collations dans un restaurant

0
ayushs27