Database
 sql >> Database >  >> RDS >> Database

Chiavi SQL, Univoche e Primarie

Con una tabella creata con questo comando:

CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL
);

Possiamo inserire un elemento più di una volta.

E in particolare, possiamo avere colonne che ripetono lo stesso valore.

Possiamo forzare una colonna ad avere solo valori univoci usando UNIQUE vincolo chiave:

CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL UNIQUE
);

Ora se provi ad aggiungere il "Flavio" due volte:

INSERT INTO people VALUES (37, 'Flavio');
INSERT INTO people VALUES (20, 'Flavio');

Riceveresti un errore:

ERROR:  duplicate key value violates unique constraint "people_name_key"
DETAIL:  Key (name)=(Flavio) already exists.

Una chiave primaria è una chiave univoca che ha un'altra proprietà:è il modo principale per identificare una riga nella tabella.

CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL PRIMARY KEY
);

La chiave primaria può essere, ad esempio, un'e-mail in un elenco di utenti.

La chiave primaria può essere un id univoco che assegniamo automaticamente a ciascun record.

Qualunque sia il valore, sappiamo che possiamo usarlo per fare riferimento a una riga nella tabella.