logo

Differenza tra chiave primaria e chiave univoca

Le chiavi in ​​MySQL sono la colonna o l'insieme di colonne utilizzate per costruire una relazione tra una o più di due tabelle. Vengono utilizzati anche per accedere ai record dalla tabella. Entrambe le chiavi forniscono un'unicità garantita per una colonna o un insieme di colonne in una tabella o relazione. La differenza principale tra loro è che la chiave primaria identifica ogni record nella tabella e la chiave univoca impedisce voci duplicate in una colonna ad eccezione di un valore NULL . In questo articolo confronteremo le differenze essenziali tra le chiavi primarie e univoche in base a vari parametri. Prima di fare un confronto, discuteremo brevemente di queste chiavi.

la data viene convertita in stringa
Chiave primaria e chiave univoca

Cos'è la chiave primaria?

La chiave primaria è a unico o non nullo chiave che identifica in modo univoco ogni record in quella tabella o relazione. La colonna della chiave primaria non può archiviare valori duplicati, il che significa che i valori della colonna della chiave primaria sono sempre univoci. È anche chiamato a super chiave minima ; pertanto, non possiamo specificare più di una chiave primaria in qualsiasi relazione. È possibile fare riferimento a una colonna di chiave primaria di una tabella da una colonna di chiave esterna di un'altra tabella.

Per esempio , abbiamo una tabella denominata studenti con attributi come Stud_ID, Roll_No, Nome, Cellulare ed Email.

Chiave primaria e chiave univoca

Qui solo il Rotolo_No la colonna non può mai contenere un valore identico e NULL. Sappiamo che ogni studente ha un numero di matricola univoco. Pertanto due studenti non potranno mai avere lo stesso numero di matricola. Questa funzionalità aiuta a identificare in modo univoco ciascun record nel database. Quindi, possiamo rendere l'attributo Roll_No una chiave primaria.

Caratteristiche della chiave primaria

Di seguito sono riportate le caratteristiche essenziali della chiave primaria:

  • La colonna della chiave primaria non può contenere valori duplicati.
  • La chiave primaria implementa l'integrità dell'entità della tabella.
  • Una tabella non può avere più di una colonna di chiave primaria.
  • Possiamo creare la chiave primaria da uno o più campi della tabella.
  • La colonna della chiave primaria deve avere vincoli NOT NULL.

Cos'è una chiave univoca?

IL chiave unica è una singola colonna o una combinazione di colonne in una tabella per identificare in modo univoco i record del database. Una chiave unica impedisce dall'archiviazione valori duplicati nella colonna. Una tabella può contenere più colonne chiave univoche, a differenza di una colonna chiave primaria. Questa chiave è simile alla chiave primaria, tranne per il fatto che nella colonna della chiave univoca è possibile archiviare un valore NULL. Viene anche chiamata la chiave univoca vincoli unici e può essere referenziato dalla chiave esterna di un'altra tabella.

Per esempio , consideriamo la stessa tabella denominata studenti con attributi come Stud_ID, Roll_No, Nome, Cellulare ed Email.

inttostr java
Chiave primaria e chiave univoca

Qui Stud_ID può essere assegnato come vincolo univoco perché ogni studente deve avere un numero identificativo univoco. Se uno studente cambiasse università, non avrebbe alcuna tessera studentesca. In tal caso, la voce può contenere a NULLO valore perché un vincolo di chiave univoco consente di memorizzare NULL, ma dovrebbe essere solo uno.

Caratteristiche della chiave unica

Di seguito sono riportate le caratteristiche chiave uniche ed essenziali:

sorella di kat timpf
  • Possiamo costruire la chiave univoca da uno o più campi della tabella.
  • Una tabella può definire più colonne chiave univoche.
  • Per impostazione predefinita, una chiave univoca si trova negli indici univoci non cluster.
  • La colonna del vincolo univoco può memorizzare il valore NULL, ma è consentito solo un NULL per colonna.
  • La chiave esterna può fare riferimento al vincolo univoco nel preservare l'unicità di una tabella.

Differenze chiave tra chiave primaria e chiave univoca

I seguenti punti spiegano le differenze chiave tra le chiavi primarie e quelle candidate:

  • Una chiave primaria può costituire uno o più campi di una tabella per identificare in modo univoco i record di una tabella. D'altro canto, una chiave univoca impedisce a due righe di avere voci duplicate in una colonna.
  • Una tabella non può avere più di una chiave primaria in un database relazionale, mentre possono esserci più chiavi univoche per tabella.
  • Una colonna di chiave primaria non può contenere valori NULL, mentre una chiave univoca può avere valori NULL, ma in una tabella è consentito solo un NULL.
  • Una chiave primaria dovrebbe essere univoca, ma una chiave univoca non può necessariamente essere la chiave primaria.
  • Per impostazione predefinita, la chiave primaria è un indice cluster in cui i dati sono organizzati fisicamente nell'indice sequenziale. Al contrario, la chiave univoca è un indice univoco non cluster.
  • La chiave primaria implementa l'integrità dell'entità, mentre la chiave univoca impone dati univoci.

Grafico di confronto tra chiave primaria e chiave univoca

La seguente tabella comparativa spiega rapidamente le principali differenze:

Base di confronto Chiave primaria Chiave Unica
Di base La chiave primaria viene utilizzata come identificatore univoco per ciascun record nella tabella. La chiave univoca è anche un identificatore univoco per i record quando la chiave primaria non è presente nella tabella.
NULLO Non possiamo memorizzare valori NULL nella colonna della chiave primaria. Possiamo memorizzare il valore NULL nella colonna chiave univoca, ma è consentito solo un NULL.
Scopo Rafforza l'integrità dell'entità. Applica dati univoci.
Indice La chiave primaria, per impostazione predefinita, crea un indice cluster. La chiave univoca, per impostazione predefinita, crea un indice non cluster.
Numero di chiavi Ogni tabella supporta solo una chiave primaria. Una tabella può avere più di una chiave univoca.
Modifica del valore Non possiamo modificare o eliminare i valori della chiave primaria. Possiamo modificare i valori univoci della colonna chiave.
Usi Viene utilizzato per identificare ciascun record nella tabella. Impedisce la memorizzazione di voci duplicate in una colonna ad eccezione di un valore NULL.
Sintassi Possiamo creare una colonna di chiave primaria nella tabella utilizzando la sintassi seguente:
CREATE TABLE Employee ( Id INT PRIMARY KEY, name VARCHAR(150), address VARCHAR(250) )
Possiamo creare una colonna chiave univoca nella tabella utilizzando la sintassi seguente:
CREATE TABLE Person ( Id INT UNIQUE, name VARCHAR(150), address VARCHAR(250) )

Conclusione

In questo articolo, abbiamo fatto un confronto tra i vincoli di chiave primaria e di chiave univoca. Qui abbiamo concluso che una chiave univoca è utile quando vogliamo che le colonne non contengano valori duplicati. E la chiave primaria è utile quando non vogliamo mantenere il valore NULL nella tabella. Può anche essere l'ideale quando abbiamo una chiave esterna in un'altra tabella per creare una relazione tra tabelle.