web-dev-qa-db-fra.com

SQL - Clé unique, clé primaire et clé étrangère

Quelles sont les différences entre clé unique, clé primaire et clé étrangère par rapport au concept de SQL?

Comment sont-ils différents les uns des autres?

8
Jaipal Reddy K

Une contrainte PRIMARY Key et UNIQUE Key sont toutes les deux similaires et elles fournissent l'unicité unique de la colonne sur laquelle elles sont définies.

Clé primaire

  • La clé primaire ne peut pas avoir de valeur NULL.
  • Chaque table ne peut avoir qu'une seule clé primaire.
  • Par défaut, la clé primaire est un index clusterisé et les données de la table de base de données sont physiquement organisées dans la séquence d'index clusterisé.
  • La clé primaire peut être associée à une autre table en tant que clé étrangère.
  • Nous pouvons générer automatiquement l'ID à l'aide du champ Incrémentation automatique. La clé primaire prend en charge la valeur d'incrémentation automatique.

Clé unique

  • La contrainte unique peut avoir une valeur NULL.
  • Chaque table peut avoir plusieurs contraintes uniques.
  • Par défaut, la clé unique est un index non cluster unique.
  • La contrainte unique ne peut pas être liée à une autre table en tant que clé étrangère.
  • La contrainte unique ne prend pas en charge la valeur d'incrémentation automatique.

Foreign Key

  • La clé étrangère est un champ de la table qui est la clé primaire d'une autre table.
  • La clé étrangère peut accepter plusieurs valeurs nulles.
  • La clé étrangère ne crée pas automatiquement un index, en cluster ou non en cluster. Vous pouvez créer manuellement un index sur une clé étrangère.
  • Nous pouvons avoir plusieurs clés étrangères dans une table.
  • Il existe de réels avantages à prendre en charge une clé étrangère avec un index cluster, mais vous n'en obtenez qu'une par table. Quel est l'avantage? Si vous sélectionnez le parent et tous les enregistrements enfants, vous souhaitez que les enregistrements enfants soient côte à côte. Ceci est facile à réaliser en utilisant un index clusterisé.
  • Avoir une clé étrangère nulle est généralement une mauvaise idée. Dans l'exemple ci-dessous, l'enregistrement dans [dbo]. [Enfant] est ce qui serait appelé un "enregistrement orphelin". Réfléchissez bien et longuement avant de faire cela.
23
Jaipal Reddy K

Remarque: nous utilisons la contrainte pour appliquer l'intégrité des données

Clé primaire
1) ne peut pas insérer de valeur nulle
2) une table a une clé primaire

Clé unique 1) insérer une valeur nulle une à la fois 2) une table a plusieurs clés uniques 3) vous pouvez également arbitrer comme clé candidate

clé étrangère 1) maintenir la relation entre deux tables et également plusieurs Remarque: sans aucune contrainte, vous obtenez des données dans plusieurs tables mais vous ne pouvez pas obtenir des données de manière homogène

1
Dattatray Ghevade