Database
 sql >> Base de données >  >> RDS >> Database

Clés SQL, uniques et primaires

Avec une table créée avec cette commande :

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

Nous pouvons insérer un élément plusieurs fois.

Et en particulier, on peut avoir des colonnes qui répètent la même valeur.

Nous pouvons forcer une colonne à n'avoir que des valeurs uniques en utilisant le UNIQUE contrainte de clé :

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

Maintenant, si vous essayez d'ajouter le "Flavio" deux fois :

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

Vous obtiendrez une erreur :

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

Une clé primaire est une clé unique qui a une autre propriété :c'est le principal moyen d'identifier une ligne dans le tableau.

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

La clé primaire peut être un e-mail dans une liste d'utilisateurs, par exemple.

La clé primaire peut être un id unique que nous attribuons automatiquement à chaque enregistrement.

Quelle que soit cette valeur, nous savons que nous pouvons l'utiliser pour référencer une ligne dans le tableau.