Vous êtes sur la page 1sur 8

LES CONTRAINTES EN SQL

LDD : Langage de définition des données par exemple les comandes:


Create, Drop

SQL LMD : Langage de manipulation des données, exemple les commandes:


Insert , Update, Delete, Select.

1. Spécification des contraintes en SQL :

Les contraintes peuvent être spécifiées avec la commande CREATE TABLE,


ou après que la table est créée avec la commande ALTER TABLE.

Syntaxe :

CREATE TABLE nom_table (

colonne1 type contrainte ,

colonne2 type contrainte,

colonne3 type contrainte,

);

50
2. Les différentes contraintes

2.1. Contrainte NOT NULL

La contrainte NOT NULL signifie que la valeur doit être non-nulle.

Exemple :

CREATE TABLE personnes (

ID int NOT NULL,

Nom varchar (255) NOT NULL,

Prénom varchar (255) NOTNULL,

Age int

);

Dans cet exemple lorsqu’on crée la table personnes, on spécifie la contrainte


NOT NULL sur l’attribut ID. Dans ce cas la valeur de ID doit être non nulle.

2.2 Contrainte UNIQUE

Cette contrainte signifie que la valeur doit être unique.

Exemple 1 :

CREATE TABLE personnes (

ID int NOT NULL UNIQUE,

Nom …….

);

Pour cet exemple la valeur de la clé primaire ID doit être non-nulle et unique.

51
Exemple 2 :

CREATE TABLE personnes (

ID int NOT NULL,

Nom ……

UNIQUE (ID)

);

Cet exemple présente une deuxième manière d’utiliser la contrainte UNIQUE


pour la clé primaire ID.

Nous avons utilisé la fonction UNIQUE (ID) pour ajouter la contrainte


UNIQUE à l’attribut ID.

2.2.1 Nommer une contrainte :

Pour nommer (créer) une contrainte nous utilisons la fonction CONSTRAINT.

Exemple :

CREATE TABLE personnes (

ID int NOT NULL,

Nom varchar NOT NULL,

……

CONSTRAINT UC_Personnes UNIQUE (ID, Nom)

);

52
Pour cet exemple, nous avons créé une contrainte nommée UC_personnes. Cette
contrainte veut dire que les deux attributs ID et Nom sont Uniques.

2.2.2 Contrainte UNIQUE avec la commande ALTER :


La commande ALTER est utilisée pour modifier une table.

Exemple :
Nous voulons modifier la table personnes, en lui ajoutant la contrainte
« l’attribut ID doit être unique ».

Solution :

Premièrement nous créons de la table personnes en utilisant la commande


(CREATE TABLE personnes).

Pour ajouter la contrainte, nous utilisons les commandes suivantes :

ALTER TABLE Personnes

ADD UNIQUE (ID) ;

La commande ALTER TABLE Personnes signifie que nous voulons modifier la


table personnes.

Si nous voulons ajouter la contrainte nommée UC_contrainte qui signifie que les
attributs ID et Nom sont uniques, nous utilisons les commandes suivantes :

ALTER TABLE Personnes

ADD CONSTRAINT UC_personnes UNIQUE (ID, Nom) ;

53
2.2.3 Supprimer une contrainte :

Pour supprimer une contrainte nous utilisons la commande DROP


CONSTRAINT.

Exemple :

Si nous voulons supprimer la contrainte UC_Personnes nous utilisons les


commandes suivantes :

ALTER TABLE personnes


DROP CONSTRAINT UC_personnes ;

2.3 Contrainte de clé primaire

Pour spécifier qu’un attribut est une clé primaire nous utilisons la commande
PRIMARY KEY.

Exemple 1 :

CREATE TABLE personnes (

ID int NOT NULL,

……….

PRIMARY KEY (ID)

);

54
Exemple 2 :

CREATE TABLE personnes (

ID int NOT NULL,

……

CONSTRAINT PC_personnes PRIMARY KEY (ID, Nom)

);

Dans cette exemple nous avons créé une contrainte nommée PC_personnes qui
signifie que les deux attributs ID et Nom sont la clé primaire de la table
personnes.

2.3.1 Ajouter une clé primaire

Si après création de la table personnes, nous voulons ajouter la contrainte « ID


est une clé primaire », nous utilisons les commandes suivantes :

ALTER TABLE personnes

ADD PRIMARY KEY (ID);

Si nous voulons modifier la table personnes, en lui ajoutant la contrainte


nommée PC_contrainte qui signifie que les attributs ID et Nom sont une clé
unique, nous utilisons les commandes suivantes :

ALTER TABLE personnes

ADD CONSTRAINT PC_personnes PRIMARY KEY (ID, Nom) ;

55
2.3.2 Supprimer une clé primaire

Pour supprimer une clé primaire nous utilisons la commande DROP PRIMARY
KEY.

Si nous voulons par exemple supprimer la clé primaire de la table personne,


nous utilisons les commandes suivantes :

ALTER TABLE personnes

DROP PRIMARY KEY;

2.4. Contrainte de clé étrangère:

La commande FOREIGN KEY permet de créer une clé étrangère.

Exemple :

Au moment de la création de la table commandes, nous voulons ajouter la


contrainte « IdClient est une clé étrangère » :

CREATE TABLE commandes (

numCommande int PRIMARY KEY,

……

IdClient int,

FOREIGN KEY (IdClient) REFERENCES personnes

);

56
La commande « FOREIGN KEY (IdClient) REFERENCES personnes »
signifie que IdClient est une clé étrangère de la table commandes référencié dans
la table personnes c’est à dire que IdClient est contenu dans la table personnes
(IdClient est une clé primaire de la table personnes).

2.5 La contrainte SQL CHECK

La contrainte CHECK permet de vérifier une condition.

Exemple:

CREATE TABLE personnes (

ID int PRIMARY KEY,

Age int,

CHECK (Age >= 18)

);

La commande « CHECK (Age >= 18) » vérifie que l’âge soit supérieur ou
égale à 18 ans.

57

Vous aimerez peut-être aussi