logo

Diferència entre clau primària i clau única

Les claus a MySQL són la columna o el conjunt de columnes que s'utilitzen per construir una relació entre una o més de dues taules. També s'utilitzen per accedir als registres de la taula. Ambdues claus proporcionen una unicitat garantida per a una columna o un conjunt de columnes en una taula o relació. La principal diferència entre ells és que la clau primària identifica cada registre de la taula i la clau única impedeix entrades duplicades en una columna excepte per a un valor NULL. . En aquest article, compararem les diferències essencials entre les claus primàries i les úniques en funció de diversos paràmetres. Abans de fer una comparació, parlarem breument d'aquestes claus.

Madhuri va dir vinga
Clau primària vs clau única

Què és la clau primària?

La clau primària és a únic o no nul clau que identifica de manera única tots els registres d'aquesta taula o relació. La columna de clau primària no pot emmagatzemar valors duplicats, la qual cosa significa que els valors de la columna de clau primària sempre són únics. També s'anomena a super clau mínima ; per tant, no podem especificar més d'una clau primària en cap relació. Es pot fer referència a una columna de clau primària d'una taula mitjançant una columna de clau estrangera d'una altra taula.

Per exemple , tenim una taula anomenada estudiants amb atributs com ara Stud_ID, Roll_No, Name, Mobile i Email.

Clau primària vs clau única

Aquí només el Roll_No La columna mai pot contenir un valor idèntic i NULL. Sabem que cada estudiant té un número de registre únic. Per tant, dos estudiants mai poden tenir el mateix número de registre. Aquesta característica ajuda a identificar cada registre de la base de dades de manera única. Per tant, podem fer de l'atribut Roll_No una clau primària.

Característiques de la clau primària

Les següents són les principals característiques clau:

  • La columna de clau primària no pot contenir valors duplicats.
  • La clau primària implementa la integritat de l'entitat de la taula.
  • Una taula no pot tenir més d'una columna de clau primària.
  • Podem fer la clau primària a partir d'un o més camps de la taula.
  • La columna de clau primària hauria de tenir restriccions NOT NULL.

Què és una clau única?

El clau única és una única columna o combinació de columnes en una taula per identificar de manera única els registres de la base de dades. Una clau única impedeix des de l'emmagatzematge valors duplicats a la columna. Una taula pot contenir diverses columnes de clau úniques, a diferència d'una columna de clau primària. Aquesta clau és similar a la clau primària, excepte que es pot emmagatzemar un valor NULL a la columna de clau única. També s'anomena la clau única restriccions úniques i es pot fer referència amb la clau estrangera d'una altra taula.

Per exemple , considerem la mateixa taula anomenada estudiants amb atributs com Stud_ID, Roll_No, Name, Mobile i Email.

java hola món
Clau primària vs clau única

Aquí Stud_ID es pot assignar com a restricció única perquè cada alumne ha de tenir un número d'identificació únic. Si un estudiant canvia de universitat, no tindria cap identificació d'estudiant. En aquest cas, l'entrada pot contenir a NUL valor perquè una restricció de clau única permet emmagatzemar NULL, però només hauria de ser una.

Característiques de la clau única

Les següents són les característiques clau essencials úniques:

ordenació de matrius java
  • Podem construir la clau única a partir d'un o més camps de taula.
  • Una taula pot definir diverses columnes clau úniques.
  • Per defecte, una clau única es troba en índexs únics no agrupats.
  • La columna de restricció única pot emmagatzemar un valor NULL, però només es permet un NULL per columna.
  • La clau estrangera pot fer referència a la restricció única per preservar la singularitat d'una taula.

Diferències clau entre clau primària i clau única

Els punts següents expliquen les diferències clau entre les claus primàries i candidates:

  • Una clau primària pot constituir un o més camps d'una taula per identificar els registres d'una taula de manera única. D'altra banda, una clau única evita que dues files tinguin entrades duplicades en una columna.
  • Una taula no pot tenir més d'una clau primària en una base de dades relacional, mentre que hi pot haver diverses claus úniques per taula.
  • Una columna de clau primària no pot contenir valors NULL, mentre que una clau única pot tenir valors NULL, però només es permet un NULL en una taula.
  • Una clau primària hauria de ser única, però una clau única no pot ser necessàriament la clau primària.
  • La clau primària per defecte és un índex agrupat on les dades s'organitzen físicament a l'índex seqüencial. En canvi, la clau única és un índex únic no agrupat.
  • La clau primària implementa la integritat de l'entitat, mentre que la clau única fa complir les dades úniques.

Gràfic de comparació de clau primària i clau única

El següent gràfic de comparació explica les seves principals diferències d'una manera ràpida:

Base de comparació Clau primària Clau única
Bàsic La clau primària s'utilitza com a identificador únic per a cada registre de la taula. La clau única també és un identificador únic per als registres quan la clau primària no està present a la taula.
NUL No podem emmagatzemar valors NULL a la columna de clau primària. Podem emmagatzemar el valor NULL a la columna de clau única, però només es permet un NULL.
Propòsit Impulsa la integritat de l'entitat. Impulsa dades úniques.
Índex La clau primària, per defecte, crea un índex agrupat. La clau única, per defecte, crea un índex no agrupat.
Número de clau Cada taula només admet una clau primària. Una taula pot tenir més d'una clau única.
Modificació de valors No podem canviar ni suprimir els valors de la clau primària. Podem modificar els valors de la columna de clau única.
Usos S'utilitza per identificar cada registre de la taula. Impedeix emmagatzemar entrades duplicades en una columna excepte per a un valor NULL.
Sintaxi Podem crear una columna de clau primària a la taula utilitzant la sintaxi següent:
CREATE TABLE Employee ( Id INT PRIMARY KEY, name VARCHAR(150), address VARCHAR(250) )
Podem crear una columna de clau única a la taula utilitzant la sintaxi següent:
CREATE TABLE Person ( Id INT UNIQUE, name VARCHAR(150), address VARCHAR(250) )

Conclusió

En aquest article, hem fet una comparació entre les restriccions de clau primària i clau única. Aquí hem conclòs que una clau única és útil quan volem que les columnes no continguin valors duplicats. I la clau primària és útil quan no volem mantenir el valor NULL a la taula. També pot ser ideal quan tenim una clau estrangera en una altra taula per crear una relació entre taules.