Je voudrais demander dans quels cas il est approprié d'utiliser le mot clé UNIQUE en SQL. Je sais que si je déclare une colonne en tant que clé primaire, elle est unique, mais que se passe-t-il avec d'autres attributs comme le pays? Est-il convenable d'y utiliser une contrainte unique?
3 Réponses :
La contrainte UNIQUE garantit que toutes les valeurs d'une colonne sont différentes. Les contraintes UNIQUE et PRIMARY KEY fournissent une garantie d'unicité pour une colonne ou un ensemble de colonnes. Une contrainte PRIMARY KEY a automatiquement une contrainte UNIQUE.
En outre, une colonne de clé primaire est NOT NULL, tandis que la contrainte UNIQUE n'interdit pas les valeurs NULL.
Comme toute autre contrainte, la contrainte UNIQUE
applique un certain niveau de qualité des données . Si vous ajoutez cette contrainte à une colonne, toutes les valeurs de cette colonne seront différentes.
Par exemple, sur une table où EMPLOYEE_PK
est déjà unique (car c'est le PK), vous pouvez vouloir appliquer la colonne CARD_NUMBER
est également unique; c'est le numéro affiché sur la carte d'employé. Dans votre modèle, le numéro de la carte peut être différent du PK, et vous devrez peut-être également vous assurer qu'il est unique.
Un autre avantage supplémentaire d'une contrainte UNIQUE est que d'autres tables peuvent y lier des clés étrangères. Puisqu'une colonne UNIQUE agit effectivement comme une "clé de table", toute autre table peut établir une clé étrangère pointant vers elle. J'ai rencontré de nombreuses personnes qui pensent [à tort] que les clés étrangères ne peuvent pointer que vers des clés primaires.
au cas où il y aurait déjà un PK dans la table, la colonne UNIQUE peut-elle agir à nouveau comme clé de table?
Une table peut avoir plusieurs clés candidates. Cependant, un seul d'entre eux est choisi comme clé primaire.
Le mot-clé unique
en sql est utilisé chaque fois que vous voulez que chaque entrée de ligne de cette colonne soit différente l'une de l'autre. Une colonne de clé primaire est automatiquement unique, mais dans certains cas, vous souhaiterez peut-être que plus de colonnes soient uniques.
Par exemple, si vous avez un product_id
comme clé primaire, cela garantira qu'aucune autre ligne n'aura un produit avec product_id
comme ligne. Et en plus de cela, vous voulez qu'aucune ligne ne contienne le même product_imei
, alors vous pouvez rendre le product_imei
unique.
Vous pouvez créer une clé primaire composite telle que Primary Key (column1, column2)
mais cela signifie que la combinaison que vous obtenez de product_id
et product_imei code> sera unique.
Par exemple
(DLK-22,356938035643809)
et (DLK-22, 11111111111111)
peuvent tous deux exister dans une table si (product_id, product_imei)
est le clé primaire.
Vous pouvez donc utiliser une contrainte unique
sur autant de colonnes que vous le souhaitez et son besoin dépend du scénario du problème auquel vous êtes confronté. Vous pouvez utiliser la contrainte unique
avec le pays
si cela vous aide, cela ne pose aucun problème
Il certifiera qu'aucune valeur exacte en double n'est entrée dans votre champ. Le comportement des valeurs nulles peut être spécifique à l'implémentation