Table des matières

Les Contraintes SQL

La contrainte PRIMARY KEY

Une clé primaire indique qu'une colonne ou un groupe de colonnes peut être utilisé(e) comme identifiant unique des lignes de la table. Une table a au plus une clé primaire.

Exemple avec une colonne :

Methode 1 :

CREATE TABLE exemple (
id_exemple serial PRIMARY KEY,
nom_exemple varchar
);

Methode 2 :

CREATE TABLE exemple (
id_exemple serial,
nom_exemple varchar,
PRIMARY KEY (id_exemple)
);

Methode 3 :

CREATE TABLE exemple(
id_exemple serial,
nom_exemple varchar,
CONSTRAINT exemple_PK PRIMARY KEY (id_exemple)
);

Exemple avec un groupe de colonnes :

CREATE TABLE exemple (
a integer,
b integer,
c integer,
PRIMARY KEY (a, c)
);

Les contraintes d'intégrité referentielles

Une CIF permet de préciser que les valeurs d'une attribut doivent correspondre aux valeurs qui apparaissent dans les enregistrements d'une autre table. Cela sous entend qu'il existe un ordre de creation d'une table. Dans cette exemple, nous ne pouvons créer SALARIE que lorsque la table SERVICE est déjà créer

SERVICE(Numero_service, Nom_service, Telephone) SALARIE(Numero_salarie, Nom_salarie, Fonction, Salaire, #Numero_service)

Le #Numero_service fait reference à Numero_service de la table SERVICE

Methode 1 :

CREATE TABLE SALARIE(
Numero_salarie serial PRIMARY KEY,
Nom_salarie varchar,
Fonction varchar,
Salaire integer,
Numero_service integer REFERENCES SERVICE (Numero_service)
);

Methode 2 :

CREATE TABLE SALARIE(
Numero_salarie serial PRIMARY KEY,
Numero_service integer,
Nom_salarie varchar,
Fonction varchar,
Salaire integer,
FOREIGN KEY (Numero_service) REFERENCES SERVICE (Numero_service)
);

Il est possible d'ajouter des contraintes à la clé étrangère comme “ON DELETE CASCADE”.

Si vous indiquez cette option, lorsque vous supprimerez une ligne de la table parent, le serveur de base de données supprimera également toutes les lignes qui y sont associées (clés externes) dans la table enfant. L'option ON DELETE CASCADE évite d'avoir à saisir un trop grand nombre d'instructions SQL pour procéder à des suppressions.

Exemple :

CREATE TABLE SALARIE (
Numero_salarie serial PRIMARY KEY,
Numero_service integer,
Nom_salarie varchar,
Fonction varchar,
Salaire integer,
CONSTRAINT id_service FOREIGN KEY (Numero_service) REFERENCES SERVICE (Numero_service) ON DELETE CASCADE
);

La contrainte CHECK

La contrainte de vérification est utilisée pour limiter la plage de valeurs qui peut être placé dans une colonne.

Par exemple dans ce cas la contrainte CHECK assure que vous ne pouvez pas avoir un exemple avec un numero_exemple inferieur a 18.

Exemple :

CREATE TABLE exemple(
id_exemple int,
nom_exemple varchar,
numero_exemple integer CHECK (numero_exemple >= 18),
ville_exemple varchar CHECK (ville_exemple = 'Lannion'),
PRIMARY KEY (id_exemple)
);

La contrainte NOT NULL

Cette contrainte oblige à saisir une valeur pour l'attribut concerné.

Exemple :

CREATE TABLE exemple (
id_exemple serial PRIMARY KEY,
nom_exemple varchar not null
);

La contrainte UNIQUE

La contrainte UNIQUE garantit que toutes les valeurs d'une colonne sont différents. (Un PRIMARY KEY a automatiquement la contrainte UNIQUE)

Exemple :

CREATE TABLE exemple (
id_exemple serial PRIMARY KEY,
email_exemple varchar UNIQUE
);