Vous êtes sur la page 1sur 14

Les contraintes en SQL | Développement Informatique

Developpement-informatique.com

adplus-dvertising
Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre
navigation sur ce site, vous acceptez l'utilisation de cookies.
Accepter & Fermer

Politique de confidentialité
• Linked In
• Facebook
• (+212) 616 374 790
• contact@developpement-informatique.com
• Se connecter
• Inscription
• Politiques & Termes
– Politiques de confidentialité
– Politique de cookies
– Termes et conditions
• Contact
développement informatique développement informatique

Appelez-nous (+212) 616 374 790

Envoyez-nous un e-mail contact@developpement-informatique.com

école numérique

Cours et exercices

Structures de données

Théorie des graphes

Algorithmes

Analyse des algorithmes

Algorithmes Gloutons

Diviser pour régner

Programmation dynamique

Algorithmes de tri

Programmation

Langage C

Langage c++

Langage java

Langage Python

Langage Scilab

JavaScript

Bases de données

Langage SQL

Oracle PL/SQL

Gestion de base de données

CPGE

MPSI, PCSI et la PTSI

MP, PSI et la TSI

2ème année ECT

1ère année ECT

2ème année ECS

1ère année ECS

Modules informatique

Système d'exploitation

Réseaux informatiques et sécurité

Administration Linux

Tutoriels

Blog IT

Quiz

Qui sommes-nous

Introduction
• Introduction au langage SQL
• Concepts de base de SGBDR
• Syntaxe SQL
• Opérateurs SQL

Définition de données
• Création et suppression d'une base de données
• Types de données
• Création et suppression des tables
• Modifier la structure d'une Table
• Les contraintes

Manipulation de données
• INSERT, UPDATE et DELETE
• Instruction SELECT
• Clause WHERE
• Clause LIKE
• Clause ORDER BY
• Les jointures - JOIN
• SUM, AVG, COUNT, MIN et MAX
• GROUP BY et HAVING
• Les sous-requêtes
• UNION et UNION ALL
• Manipulation de date

Exercices et problèmes
• Exercices corrigés
• Devoir en SQL
Les contraintes en SQL
1. Accueil
2. Cours & problèmes
Dernières actualités
Langage C++- Guide complet avec des exercices corrigés
Le moyen le plus simple pour apprendre les réseaux informatiques
Langage SQL - Guide complet avec des exercices corrigés
Langage Python - Guide complet avec des exercices corrigés
Langage C++- Guide complet avec des exercices corrigés
Le moyen le plus simple pour apprendre les réseaux informatiques

Les contraintes en SQL


• 22-09-2019
• ESSADDOUKI
• Langage SQL, MP, PSI et la TSI, 2ème année ECT,

Les contraintes sont les règles appliquées aux colonnes de données d'une table. Celles-ci
sont utilisées pour limiter le type de données pouvant aller dans une table. Cela garantit
l'exactitude et la fiabilité des données de la base de données.
Les contraintes peuvent être au niveau de la colonne ou de la table. Les contraintes de
niveau de colonne ne sont appliquées qu'à une seule colonne, alors que les contraintes de
niveau de table s'appliquent à l'ensemble de la table.
Les contraintes les plus communes sont :
•  NOT NULL
•  DEFAULT
•  UNIQUE
•  CHECK
•  PRIMARY KEY
•  FOREIGN Key
•  INDEX
Contrainte NOT NULL
Par défaut, une colonne peut contenir des valeurs NULL. Si vous ne souhaitez pas qu'une
colonne ait une valeur NULL, vous devez définir une telle contrainte sur cette colonne en
spécifiant que NULL n'est plus autorisé pour cette colonne.
NULL n'est pas la même chose que pas de données, il représente plutô t des données
inconnues.

Exemple 1 :
Par exemple, la requête SQL suivante crée une nouvelle table appelée Employes et ajoute
quatre colonnes, dont trois sont Id, Nom et Age, nous spécifions pour ne pas accepter les
valeurs NULL.
?

1 CREATE TABLE Employes(


2     Id INT              NOT NULL,
3     Nom VARCHAR (20)    NOT NULL,
4     Age  INT            NOT NULL,
5     Salaire   DECIMAL (18, 2),      
6     PRIMARY KEY (Id)
7 );

Exemple 2 :
Si la table Employes a déjà été créée, pour ajouter une contrainte NOT NULL à la colonne
Salaire dans MySQL, vous devez écrire une requête comme suit :
?

1 ALTER TABLE Employes


2     MODIFY Salaire  DECIMAL (18, 2) NOT
NULL;

Contrainte DEFAULT
La contrainte DEFAULT fournit une valeur par défaut à une colonne lorsque l'instruction
INSERT INTO ne fournit pas de valeur spécifique.

Exemple 3 :
Par exemple, le code SQL suivant crée la même table Employes, mais ici, la colonne Salaire
est définie sur 5000.00 par défaut.
?

1 CREATE TABLE Employes(


2     Id INT              NOT NULL,
3     Nom VARCHAR (20)    NOT NULL,
4     Age  INT            NOT NULL,
5     Salaire   DECIMAL (18, 2) DEFAULT
6 5000.00,      
7     PRIMARY KEY (Id)
);

Exemple 4 :
Si la table Employes a déjà été créée, pour ajouter une contrainte DEFAULT à la colonne
Salaire dans MySQL, vous devez écrire une requête comme suit :
?

1 ALTER TABLE Employes


2     MODIFY Salaire  DECIMAL (18, 2)
DEFAULT 5000.00;

Pour supprimer une contrainte DEFAULT, utilisez la requête suivante :


?

1 ALTER TABLE Conges


2     ALTER COLUMN Salaire DROP
DEFAULT;

Contrainte UNIQUE
La contrainte UNIQUE empêche que deux enregistrements aient des valeurs identiques
dans une colonne.

Exemple 5 :
Par exemple, la requête SQL suivante crée la même table Employes, mais dans ce cas, la
colonne Nom est définie sur UNIQUE, de sorte que vous ne pouvez pas avoir deux
enregistrements portant le même Nom.
?

1 CREATE TABLE Employes(


2     Id INT              NOT NULL,
3     Nom VARCHAR (20)    NOT NULL
4 UNIQUE,
5     Age  INT            NOT NULL,
6     Salaire   DECIMAL (18, 2),      
7     PRIMARY KEY (Id)
);

Exemple 6 :
Si la table Employes a déjà été créée, pour ajouter une contrainte UNIQUE à la colonne
Nom dans MySQL, vous devez écrire une requête comme suit :
?

1 ALTER TABLE Employes


2     MODIFY Nom VARCHAR(20) NOT NULL
UNIQUE;

Contrainte CHECK
La contrainte CHECK active une condition permettant de vérifier la valeur saisie dans un
enregistrement. Si la condition est évaluée à false, l'enregistrement viole la contrainte et
n'est pas entré dans la table.

Exemple 7 :
Par exemple, la requête SQL suivante crée la même table Employes, mais dans ce cas, la
colonne Age est définie sur CHECK, de sorte que vous ne pouvez pas avoir un employe de
moins de 18 ans.
?

1 CREATE TABLE Employes(


2     Id INT              NOT NULL,
3     Nom VARCHAR (20)    NOT NULL,
4     Age  INT            NOT NULL CHECK (Age
5 >= 18),
6     Salaire   DECIMAL (18, 2),      
7     PRIMARY KEY (Id)
);

Exemple 8 :
Si la table Employes a déjà été créée, pour ajouter une contrainte CHECK à la colonne Age
dans MySQL, vous devez écrire une requête comme suit :
?

1 ALTER TABLE Employes


2     MODIFY Age INT NOT NULL CHECK
(Age >= 18);
Contrainte INDEX
L'INDEX est utilisé pour créer et récupérer des données de la base de données très
rapidement. Un index peut être créé en utilisant une seule colonne ou un groupe de
colonnes dans une table. Lors de la création de l'index, un ROWID est attribué à chaque
ligne avant le tri des données.
Les index appropriés sont bons pour les performances dans les bases de données
volumineuses, mais vous devez être prudent lors de la création d'un index. Une sélection de
champs dépend de ce que vous utilisez dans vos requêtes SQL.
Vous pouvez créer un index sur une ou plusieurs colonnes en utilisant la syntaxe donnée ci-
dessous.
?

1 CREATE INDEX nom_index


2     ON nom_table ( colonne1, colonne1, ...);

Pour créer un index sur la colonne Age, afin d'optimiser la recherche d'employés pour un
â ge spécifique, vous pouvez utiliser la syntaxe suivante :
?

1 CREATE INDEX idx_age


2     ON Employes (Age);

Pour supprimer une contrainte INDEX, utilisez la syntaxe SQL suivante.


?

1 ALTER TABLE Employes


2     DROP INDEX idx_age;

Contrainte PRIMARY KEY


Une clé primaire est un champ dans une table qui identifie de manière unique chaque
ligne/enregistrement dans une table de base de données. Les clés primaires doivent
contenir des valeurs uniques. Une colonne de clé primaire ne peut pas avoir de valeur
NULL.
Une table ne peut avoir qu'une seule clé primaire, qui peut consister en un ou plusieurs
champs. Lorsque plusieurs champs sont utilisés comme clé primaire, ils sont appelés clé
composite.
Si une table a une clé primaire définie sur un ou plusieurs champs, vous ne pouvez pas
avoir deux enregistrements ayant la même valeur pour pour ces champs.
Exemple 9 :
Voici la syntaxe pour définir l'attribut Id en tant que clé primaire dans une table Employes.
?

1 CREATE TABLE Employes(


2     Id INT              NOT NULL,
3     Nom VARCHAR (20)    NOT NULL,
4     Age  INT            NOT NULL,
5     Salaire   DECIMAL (18, 2),      
6     PRIMARY KEY (Id)
7 );

Exemple 10 :
Pour créer une contrainte PRIMARY KEY sur la colonne "Id" alors que la table Employes
existe déjà , utilisez la syntaxe SQL suivante :
?

1 ALTER TABLE Employes


2     ADD PRIMARY KEY (ID);

Attention ! Si vous utilisez l'instruction ALTER TABLE pour ajouter une clé primaire, les
colonnes de clé primaire doivent déjà avoir été déclarées comme ne contenant pas de
valeurs NULL (lors de la création de la table).

Exemple 11 :
Pour définir une contrainte PRIMARY KEY sur plusieurs colonnes, utilisez la syntaxe
donnée ci-dessous.
?

1 CREATE TABLE Employes(


2     Id INT              NOT NULL,
3     Nom VARCHAR (20)    NOT NULL,
4     Age  INT            NOT NULL,
5     Salaire   DECIMAL (18, 2),      
6     PRIMARY KEY (Id, Nom)
7 );

Exemple 12 :
Pour créer une contrainte PRIMARY KEY sur les colonnes "Id" et "Nom" alors que la table
Employes existe déjà , utilisez la syntaxe suivante :
?

1 ALTER TABLE Employes


2     ADD PRIMARY KEY (Id, Nom);

Vous pouvez supprimer les contraintes de clé primaire de la table avec la syntaxe donnée
ci-dessous.
?

1 ALTER TABLE Employes DROP PRIMARY


KEY ;

Contrainte FOREIGN KEY


Une clé étrangère est une clé utilisée pour relier deux tables. Ceci est parfois appelé aussi
clé de référencement.
Une clé étrangère est une colonne ou une combinaison de colonnes dont les valeurs
correspondent à une clé primaire dans une autre table.
La relation entre 2 tables correspond à la clé primaire dans l'une des tables avec une clé
étrangère dans la seconde table.

Exemple 13 :
Considérez la structure des deux tableaux suivants.
?

1 CREATE TABLE Employes(


2     Id INT              NOT NULL,
3     Nom VARCHAR (20)    NOT NULL,
4     Age  INT            NOT NULL,
5     Salaire   DECIMAL (18, 2),      
6     PRIMARY KEY (Id, Nom)
7 );

1 CREATE TABLE Conges(


2     Id INT              NOT NULL,
3     Date_debut  DATE,
4     Date_fin  DATE,
5     ID_EMP  INT REFERENCES
6 Employes(Id),   
7     PRIMARY KEY (Id)
);
Ou
?

1 CREATE TABLE Conges(


2     Id INT              NOT NULL,
3     Date_debut  DATE    NOT NULL,
4     Date_fin  DATE      NOT NULL,
5     ID_EMP  INT,   
6     PRIMARY KEY (Id),
7     FOREIGN KEY (ID_EMP) REFERENCES
8 Employes(Id)
);

Exemple 14 :
Si la table Conges a déjà été créée et que la clé étrangère n'a pas encore été définie, utilisez
la syntaxe suivante pour spécifier une clé étrangère en modifiant une table.
?

1 ALTER TABLE Conges


2     ADD FOREIGN KEY (ID_EMP)
REFERENCES Employes(Id);

Pour supprimer une contrainte FOREIGN KEY, utilisez la syntaxe suivante :


?

1 ALTER TABLE Conges


2     DROP FOREIGN KEY;

Suppression des contraintes


Toute contrainte que vous avez définie peut être supprimée à l'aide de la commande
ALTER TABLE avec l'option DROP CONSTRAINT.

Syntaxe :
?

1 ALTER TABLE Nom_table DROP


CONSTRAINT nom_contrainte;

Partager ce cours avec tes amis :


⇐ Modifier la structure d'une table - ALTER TABLE
Insertion et modifications des enregistrements - INSERT, UPDATE et DELETE ⇒
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach,
mentor, nurture and inspire.

Derniers cours

Les dictionnaires en C++ : Classe map (Bibliothèque STL)


• 16-02-2022

Les ensembles en C++ (Classe set <set> - Bibliothèque STL)


• 11-02-2022

La file d'attente prioritaire (classe priority_queue) - Bibliothèque STL


• 10-02-2022

La classe queue (File d'attente) en C++ (bibliothèque STL) <queue>


• 10-02-2022

La classe stack (Pile) en C++ (bibliothèque STL) <stack>


• 10-02-2022

La classe array en C++ (bibliothèque STL) <array>


• 09-02-2022

La classe list en C++ (bibliothèque STL) <list>


• 09-02-2022

La classe deque en C++ ( Bibliothèque STL)


• 08-02-2022

Mots clés
Exercices java Exercices langage c Exercices python récursivité Tableaux Complexité POO
héritage arbres arbres binaires arbre binaire de recherche graphe orienté Exercices oracle
SQL Exercices SQL Bibliothèque STL Structures de données

Page facebook
Développement informatique
Copyrights © 2020 - Développement Informatique
Accueil / Qui sommes-nous / Termes et conditions / Politique de confidentialité / Contact
(+212) 616 374 790 / e-mail : contact@developpement-informatique.com

Vous aimerez peut-être aussi