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.
Clé primaire:
NULL
- par exemple. MySQL ajoute NOT NULL
Clé unique:
NULL
NULL
; plusieurs lignes peuvent avoir la valeur NULL
et ne peuvent donc pas être considérées comme "uniques"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:
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
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:
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.
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.
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
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.
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à!
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
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
_.
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:
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:
source: ici
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.
Simplement la clé primaire est unique et ne peut pas être nulle, unique peut être nulle et ne pas être unique.
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