0% ont trouvé ce document utile (0 vote)
63 vues20 pages

Chapitre SQL

Le document décrit le langage SQL, y compris sa définition, ses principales clauses et fonctions. SQL est un langage largement utilisé pour interroger et gérer des bases de données relationnelles.

Transféré par

Seghiri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
63 vues20 pages

Chapitre SQL

Le document décrit le langage SQL, y compris sa définition, ses principales clauses et fonctions. SQL est un langage largement utilisé pour interroger et gérer des bases de données relationnelles.

Transféré par

Seghiri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Module : Sources et base de données année universitaire:2023/2024

Management stratégique et système d'informations Semestre : 1

Le langage SQL

I. Introduction

Le langage SQL (Structured Query Language) est un langage d’interrogation structuré qui sert
à effectuer des opérations sur des bases de données. Il est l’un des langages les plus complet
pour la gestion des bases données. Il est aujourd’hui le langage le plus utilisé dans son
domaine.

Le langage SQL a été créé par IBM en 1970. Aujourd’hui il est devenu le langage par
excellence dans son domaine. Il est utilisé dans plusieurs SGBD, par exemple : Oracle,
MySQL, Access , Microsoft SQL Server...ect.

II. Définition

Le langage SQL (Structured Query Language) est un langage d’interrogation de haut niveau
et déclaratif. Le langage SQL peut être divisé en 4 Parties :
 Le langage de définition des données (LDD)
 Le langage de manipulation des données (LMD)
 Le langage de contrôle de données (LCD)
 Le langage d’interrogation de données (LID)

II.1. Le langage d’interrogation de données

Il s’agit d’un ensemble de commandes exprimé sous forme de requêtes pour récupérer des
résultats de la base de données.

La forme générale d’une requête SQL est :

Select */[Distinct]Champ1 [,Champ2,…]


Form table1[,table2,…,Vue,…]
[Where condition]
[Order by Champ1 [asc\desc] [, Champ2, …]
Group by champ1 [, champ2,…]

1
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

II.1.1. Description des clauses

Select : indique les champs à sélectionner


(*) permet de Sélectionner tous les champs de la table
(Distinct) permet de sélectionner les valeurs différentes du champ précédé par
Distinct.
(/) Signifie ou le choix
From : Indique la table ou les tables à interroger.

Exemple 1

Soit la BDD suivante :

Acteur (NA, Nom, Prénom, Adresse, Age).

Veste (NV, Marque, taille, couleur).

Porter(NA, NV, Durée, date).

1. Afficher tous les acteurs.


Select*
Form Acteur

2. Afficher les noms et prénoms de tous les acteurs.

Select Nom, Prénom


From Acteur

3. Afficher les différents Âges de tous les acteurs .

Select Age
Affiche les valeurs avec redondance
From Acteur

Ou

Select Distinct Age


Affiche les valeurs sans redondance
From Acteur

Where : Indique la condition de Sélection.

2
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

Remarques

 La condition est une expression Booléenne (Logique)

 La condition peut être Simple ou Composée en utilisant les operateurs logiques AND,
OR, NOT.

 La condition est exprimée avec les Opérateurs relationnels (>, <, >=, <=, =, <>) Ou
d’autres types d’operateurs tels que :

 Like: permet d’effectuer une recherche sur un modèle particulier. Il est par
exemple possible de rechercher les enregistrements dont la valeur d’une colonne
commence par telle ou telle lettre.

(%) Pour remplacer plusieurs Caractères

( _ ) Pour remplacer un seul caractère

Exemple 2
Afficher tous les acteurs dont le nom commence par 'S'

Select *
From Acteur
Where Nom Like 'S%'

 Between val1 and val2 pour exprimer un Intervalle de valeurs

Exemple 3

1. Afficher le nom et prénom de tous les Acteurs âgés entre 20 et 40 ans

Select Nom, Prénom


From Acteur
Where Age Between 20 and 40

Ou

Select Nom,Prenom
From Acteur
Where (Age>=20) And (Age <=40)

2. Afficher le nom et le prénom des acteurs âgés de 30 ans

Select Nom, prénom


From Acteur
Where (Age =30)

3
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

3. Afficher les marques des vestes de taille 32 et de couleur rouge.

Select marque
From Veste
Where (Taille =32) And (couleur ='Rouge')

4. Afficher tous les acteurs dont le nom commence par 'S'

Select *
From Acteur
Where Nom Like 'S%'

5. Afficher le nom et l’âge des acteurs dont le prénom commence par 'A' et se termine par 'S'

Select Nom, Age


From Acteur
Where Prénom Like 'A%S'

6. Afficher le nom des Acteurs dont la 2éme Lettre du prénom est 'e'.

Select Nom
From Acteur
Where Prénom Like '_e%'

Order by : Permet d’ordonner les Résultats d’une Requête Selon des Critères (Champ) et
selon un certain Ordre (Ascendant/Croissant, Descendant/Décroissant)

Exemple 4

Select *
From Acteur
Order By Nom, Prénom Desc.

Le Résultat Permet d’afficher tous les acteurs ordonnés par ordre croissant des noms et ordres
décroissant des prénoms.

Group by : Permet de grouper les Résultats de la Requête sous forme de groupes en fonction
d’un critère.

Exemple 5

Afficher les noms et Prénoms des acteurs Groupés par adresse.

Select Nom, Prénom, Adresse


From Acteur
Group By Adresse.

4
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

Having : Permet d’exprimer un critère sur le groupe.

Exemple 6

Afficher les noms et prénoms des acteurs groupés par adresse qui commence par 't'

Select Nom, Prénom, Adresse


From Acteur
Group By adresse
Having Adresse Like ' T% '

II.2. Jointures internes


Elles sont spécifiées dans la clause FROM. Dans une jointure interne, les valeurs des colonnes
jointes sont comparées à l’aide de l’opérateur d’égalité « = ».

1ere Expression

Select */Liste de champs


From Table 1 inner Join Table2 On table 1.Champ c =Table2.Champ c

Champ C : est le champ commun entre les deux tables

2éme expression

Select*/Liste de champ
From table1,Table2
Where Table1.Champ C=Table2.Champ c

Remarque : une jointure interne peut être écrite en utilisant la clause WHERE

Exemple 7

Soit le schéma relationnel suivant :

Employé (Nom, Prénom, DateNaissance, Adresse, N°Avs, Salaire, N°Dep) ;


N°Dep REFERENCE Département.N°Dep
Département (NomD, N°Dep, Directeur) ;
2 identifiants : (NomD) et (N°Dep)
Directeur REFERENCE Employé.N°Avs
Projet (NomP, N°Pro, Lieu, N°Dep) ;
2 identifiants : (NomP) et (N°Pro)
N°Dep REFERENCE Département.N°Dep
Travaille (N°Avs, N°Pro, Heures) ;
N°Pro REFERENCE Projet.N°Pro
N°Avs REFERENCE Employé.N°Avs

5
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

Précisions : Chaque employé appartient à un département et travaille sur zéro, un ou plusieurs


projets. Chaque projet est rattaché à un département qui – attention – peut être différent de
celui des employés travaillant sur ce projet.

Exprimer les requêtes suivantes en SQL :

1. Nom et adresse des employés qui travaillent au département de recherche.

2. Nom des employés qui travaillent plus de 10 heures sur un projet à Genève.

3. Nom des projets sur lesquels travaillent Jean Muller ou bien Annie Grandjean.

4. Nom des projets sur lesquels travaillent à la fois Jean Muller et Annie Grandjean.

5. Nom et prénom des employés qui ne travaillent sur aucun projet.

Correction

1. SELECT Nom, Adresse


FROM Employé, Département
WHERE (Employé.N°Dep=Département.N°Dep) AND (NomD='Recherche' );

2. SELECT Nom
FROM Employé, Travaille, Projet
WHERE Employé.N°AVS=Travaille.N°AVS AND Travaille.N°Pro=Projet.N°Pro AND
Lieu='Genève' AND Heures>10;

3. SELECT NomP
FROM Employé, Travaille, Projet
WHERE Employé.N°AVS=Travaille.N°AVS AND Travaille.N°Pro=Projet.N°Pro AND
((Nom='Muller' AND Prénom='Jean') OR (Nom='Greanjean' AND Prénom='Annie')) ;

4. ( SELECT NomP
FROM Employé, Travaille, Projet
WHERE Employé.N°AVS=Travaille.N°AVS AND Travaille.N°Pro=Projet.N°Pro AND
Nom='Muller' AND Prénom='Jean')
INTERSECT
( SELECT NomP
FROM Employé, Travaille, Projet
WHERE Employé.N°AVS=Travaille.N°AVS AND Travaille.N°Pro=Projet.N°Pro AND
Nom='Greanjean' AND Prénom='Annie') ;

5. SELECT Nom, Prénom


FROM Employé
WHERE N°AVS NOT IN (SELECT N°AVS FROM Travaille) ;

6
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

II.3.Les fonctions d’agrégation

Les fonctions d’agrégation dans le langage SQL permettent d’effectuer des opérations
statistiques sur un ensemble d’enregistrements. Étant donné que ces fonctions s’appliquent à
plusieurs lignes en même temps, elle permettent des opérations qui servent à récupérer
l’enregistrement le plus petit, le plus grand ou bien encore de déterminer la valeur moyenne
sur plusieurs enregistrements.

II.3.1. Count ()
permet de compter le nombre d'enregistrements dans une table.

Syntaxe
Select count (*/champ)
From table
[where condition]

Exemple 9

1. Combien d’acteurs ont porté des vestes rouges.

Select count (NA)


From acteur, veste, porter
Where acteur.NV = porter.NV
And porter.NV = veste.NV
And couleur = 'rouge'

2. Quel est le nombre total de vestes

Select count (*)


From veste

II.3.2. Sum ()
Permet de calculer la somme totale d'une colonne contenant des valeurs numériques.

Syntaxe

Select sum ([distinct] champ)


From table

Exemple 9

Calculer la durée totale pendant la quelle les vestes de taille 32 ont été portées.

Select sum (durée)


From porter, veste
Where (porter.NV = veste.NV
And taille = 32)

7
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

II.3.3. Avg ( )

Permet de calculer la valeur moyenne sur un ensemble d'enregistrements de type numérique et


non nul.

Syntaxe

Select avg ([distinct] champ)


From table

Exemple 10

Calculer la moyenne des durées.

Select avg (durée)


From porter

II.3.4. Min ( )

Permet de renvoyer la plus petite valeur parmi les valeurs d’un champ de type numérique

Syntaxe

Select min ([distinct] champ)


From table

Exemple 11

Déterminer la plus petite taille parmi les vestes rouges.

Select min (taille)


From veste
Where couleur = 'rouge'

II.3.5. Max ( )
Permet de renvoyer la plus grande valeur parmi les valeurs d’un champ de type numérique

Syntaxe

Select max ([distinct] champ)


From table

Exemple 12
Déterminer la plus grande valeur des durées

Select max (durée)


From porter

8
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

II.4. Notion de sous requête

C’est une requête qui renvoie des résultats et qui sont exploités dans une requête appelée
requête principale.
Pour lier une sous-requête à une requête principale, on utilise des opérateurs à savoir :

 Opérateurs relationnels qui peuvent être accompagnés par des opérateurs ALL ou
ANY
 Opérateur IN ou NOT IN

ANY : la condition est vraie si elle est vérifiée pour au moins une des valeurs renvoyées par
la sous-requête.

ALL : la condition est vraie si elle est vérifiée pour chacune des valeurs renvoyées par la
sous-requête

IN : la condition est vraie si elle est vérifiée pour une des valeurs renvoyées par la sous-
requête

Syntaxe
1ere forme

2eme forme

Select ….
From ….
Where <exp1> IN/NOT IN (Select <exp1>
From ….
Where ….)

9
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

Exemple 13

Sélectionner toutes les vestes portées pendant 2 heures et dont la taille est supérieure à au
moins une veste de couleur rouge.

Select *
From veste, porter
Where veste.NV = porter.NV
And durée = 2
And taille > ANY (select taille
From veste
Where couleur = 'rouge')

Exercice 1

Soit le schéma relationnel de la BDD suivante:

ABONNÉ(NumAb, NomAb, PrénomAb, AdrAb, DateAb)


LIVRE (ISBN, Titre, Éditeur, Année)
AUTEUR(NumAut, NomAut, PrénomAut)
ÉCRIT(ISBN, NumAut)
EMPRUNT(NumEmp, NumAb, ISBN, DateEmp, DateRet)

Questions

1. Afficher tous les emprunts du livre intitulé « Base de Données » édité par Eyrolles.

2. Afficher tous les emprunts effectués après l’abonné 10.

3. Afficher les livres qui ont déjà été empruntés.

4. Afficher les livres qui n’ont pas été empruntés depuis le 1er mars 2019.

5. Afficher tous les abonnés qui ont emprunté un livre édité par Eyrolles.

6. Afficher la liste des abonnés inscrits en dernier.

7. Afficher la liste des abonnés inscrits avant au moins un des abonnés.

10
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

1. Afficher tous les emprunts du livre intitulé « Base de Données » édité par Eyrolles.
SELECT *
FROM Emprunt
WHERE ISBN = (SELECT ISBN
FROM Livre
WHERE (Titre = 'Bases de Données') AND ( Éditeur = 'Eyrolles'));

2. Afficher tous les emprunts effectués après l'emprunt de l’abonné 10.


SELECT *
FROM Emprunt
WHERE DateEmp > (SELECT DateEmp
FROM Emprunt
WHERE NumAb = 10);

3. Afficher les livres qui ont déjà été empruntés.


SELECT *
FROM Livre
WHERE ISBN IN (SELECT ISBN
FROM Emprunt);

4. Afficher les livres qui n’ont pas été empruntés depuis le 1er mars 2019.
SELECT *
FROM Livre
WHERE ISBN NOT IN (SELECT ISBN
FROM Emprunt
WHERE DateEmp >= '2019-03-01');

5. Afficher tous les abonnés qui ont emprunté un livre édité par Eyrolles.
SELECT *
FROM Abonné
WHERE NumAb IN (SELECT NumAb
FROM Emprunt
WHERE ISBN IN (SELECT ISBN
FROM Livre
WHERE Éditeur = 'Eyrolles'));
6. Afficher la liste des abonnés inscrits en dernier.
SELECT *
FROM Abonné
WHERE DateAb >= ALL (SELECT DateAb
FROM Abonné);

7.SELECT *
FROM Abonné
WHERE DateAb < ANY (SELECT DateAb
FROM Abonné);

11
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

Exercice 2

Soit le schéma relationnel suivant :

Produit (Réf, Désignation, Qte stock, Couleur)


Vente (NumV, Nom client, Réf, Qte Vendue, Date V)
Achat (NumA, NomFour, Réf, Qte Achetée, Date A)

Exprimer en en SQl les requêtes suivantes.

1. La liste de tous les produits


2. La liste des produits dont la quantité en stock est supérieure à 10
3. La désignation et la quantité en stock des produits de couleur 'rouge'
4. La désignation et la quantité vendue pour les clients dont le nom commence par 'A' en
2015
5. Quelle est la quantité totale vendue par produit
6. Quel est le produit ayant le plus grand stock
7. Quel est le produit ayant le plus faible stock
8. Les ventes effectuées le mois de mars et qui portent sur des produits de couleur 'jaune'
9. La désignation des produits dont la quantité vendue est supérieure à la quantité achetée

Correction
1. Select *
From produit

2. Select *
From produit
Where Qte stock >10

3.Select désignation, Qte stock


From produit
Where couleur = 'rouge'

4. Select désignation, Qte vendu


From produit, vente
Where produit.ref = vente.ref
And nom client like 'A% '
And date V between '01/01/2015' and '31/12/2015'
ou Date V >= '01/01/2015' and date V <= '31/12/2015'
ou year (date V) = 2015

5. Select Sum (Qte vendu), ref


From vente
Groupe by ref

12
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

6. Select désignation
From produit
Where Qte stock = (Select max (Qte stock)
From produit)

7. Select désignation
From produit
Where Qte stock = (Select min (Qte stock)
From produit)

8. Select NumV
From produit P, vente V
Where P.Ref = V.Ref
And month (Date V) = 3
And couleur = 'jaune'

9.Select désignation
From produit P, vente V, achat A
Where P.Ref = V.Ref
And V.Ref = A.Ref
And Qte vendue > Qte achatée

II.5. Autres jointures

II.5.1. INNER JOIN : jointure interne pour retourner les enregistrements quand la condition
est vrai dans les 2 tables. C’est l’une des jointures les plus communes.

SELECT *
FROM table1 INNER JOIN table2 ON table1.id = table2.fk_id

II.5.2. LEFT JOIN (ou LEFT OUTER JOIN) : jointure externe pour retourner tous les
enregistrements de la table de gauche (LEFT = gauche) même si la condition n’est pas
vérifiée dans l’autre table.

SELECT *
FROM table1 LEFT JOIN table2 ON table1.id = table2.fk_id

Exemple

Pour lister tous les utilisateurs avec leurs commandes et afficher également les utilisateurs qui
n’ont pas effectué d’achats, il est possible d’utiliser la requête suivante:

SELECT *
FROM utilisateur LEFT JOIN commande ON utilisateur.id = commande.utilisateur_id

13
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

II.5.3. RIGHT JOIN (ou RIGHT OUTER JOIN) : jointure externe pour retourner tous les
enregistrements de la table de droite (RIGHT = droite) même si la condition n’est pas vérifiée
dans l’autre table.

SELECT *
FROM table1 RIGHT JOIN table2 ON table1.id = table2.fk_id

II.5.4. FULL JOIN (ou FULL OUTER JOIN) : jointure externe pour retourner les résultats
quand la condition est vérifiée dans au moins une des 2 tables.

SELECT *
FROM table1 FULL JOIN table2 ON table1.id = table2.fk_id

Exemple

Prenons l’exemple d’une base de données qui contient une table utilisateur ainsi qu’une
table commande qui contient toutes les ventes. On veut lister tous les utilisateurs ayant
effectué ou non une vente, et de lister toutes les ventes qui sont associées ou non à un
utilisateur.

SELECT id, prenom, nom, utilisateur_id, date_achat, num_facture


FROM utilisateur FULL JOIN commande ON utilisateur.id = commande.utilisateur_id

Exercices 2

Soit le schéma relationnel suivant:


Emprunts (idemprunt,idlivre, idemprunteur, datepret, daterendu)
Emprunteurs (idemprunteur, nom, prénom, adresse, code ,ville, téléphone, sexe,
datenaissance, nbretards)
Editeurs (idediteur, nom, adresse, code, ville, pays, téléphone, fax)
Auteurs(idauteur, nom, prénom, datenaissance, datedecés, bibliographie)
Livre (idlivre, isbn, titre, nb pages, dateparu, prix, idediteur, idauteur, theme, format)

Créer les requêtes SQL suivantes:

1. En face de chaque titre d'ouvrage, afficher le nom et prénom de son auteur.


2. Afficher le nom et le prénom des emprunteurs suivi de la date de leurs
emprunts.
3. Afficher le titre et l'auteur des ouvrages empruntés suivi du nom de leur
emprunteur.
4. A la suite de problèmes de saisie informatique, il existe un certain nombre
d'emprunts sans emprunteurs. Affichez l'identifiant de tous les emprunts, suivi
du nom de l'emprunteur qu'il existe ou non.
5. Afficher la liste des emprunts suivi de l'identifiant de l'emprunteur seulement
s'il y a un emprunteur, mais aussi comprenant les emprunteurs n'ayant pas
encore effectué d'emprunts.
6. Afficher la liste des emprunts et des emprunteurs que les emprunts n'aient pas
d'emprunteurs ou que les emprunteurs n'aient jamais effectué d'emprunts.

14
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

Correction

1.SELECT titre, nom, prenom


FROM livres, auteurs
WHERE livres.idauteur = auteurs.idauteur

2.SELECT nom, prenom, datepret


FROM emprunteurs, emprunts
WHERE emprunteurs.idemprunteur = emprunts.idemprunteur;

ou bien

2. SELECT nom, prenom, datepret


FROM emprunteurs JOIN emprunts USING(idemprunteur);

3. SELECT titre, auteurs.nom, emprunteurs.nom


FROM livres, auteurs, emprunteurs, emprunts
WHERE emprunts.idlivre = livres.idlivre
AND emprunts.idemprunteur = emprunteurs.idemprunteur
AND livres.idauteur = auteurs.idauteur;

4 - SELECT idemprunt, nom


FROM emprunts LEFT [OUTER] JOIN emprunteurs USING(idemprunteur)

ou bien

SELECT idemprunt, nom


FROM emprunts LEFT [OUTER] JOIN emprunteurs on (emprunts. idemprunteur =
emprunteurs. idemprunteur)

5.SELECT idemprunt, idemprunteur


FROM emprunts RIGHT OUTER JOIN emprunteurs USING(idemprunteur)

6. SELECT idemprunt, idemprunteur


FROM emprunts FULL OUTER JOIN emprunteurs USING(idemprunteur)

15
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

III. Contraintes

Les contraintes mettent en application l'intégrité des données. Elles permettent d’assurer des
contrôles sur les données saisies dans la base de données pour que celle-ci reste cohérente.

Les contraintes sont ajoutées :


- au moment de la création de la table ;
- ou après la création de celle-ci.

III.1. La contrainte PRIMARY KEY permet de définir une ou plusieurs colonnes comme la
clé primaire d’une table.

Exemple 1

CREATE TABLE matiere (


Num_mat INT PRIMARY KEY ,
Intitule VARCHAR(15),
Coef INT)

Exemple 2
CREATE TABLE notes (
Num_mat INT,
Num_etud INT,
Note1 REAL,
Note2 REAL,
CONSTRAINT pkNotes PRIMARY KEY (Num_mat, Num_etud) )

III.2. La contrainte UNIQUE permet de garantir qu’aucune valeur en double n’est entrée
dans une colonne spécifique autre que la clé primaire .

Exemple 3

CREATE TABLE employe (


matricule INT PRIMARY KEY,
NSS_empl INT UNIQUE,
…)

Ou bien
CREATE TABLE employe (
matricule INT PRIMARY KEY,
NSS_empl INT
CONSTRAINT cst_nss UNIQUE (NSS_empl),…)

III.3. La contrainte CHECK permet de définir une condition que la valeur doit respecter
avant d’être enregistrée.

Exemple 4
Poids Real CHECK (Poids between 10 and 150).

16
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

III.4. La contrainte DEFAULT permet de définir une valeur par défaut pour une colonne, qui
sera utilisée lors de l’ajout d’un nouvel enregistrement, si aucune valeur n’est précisée pour
cette colonne.

- On peut mettre après DEFAULT, une fonction sans argument, une constante, ou NULL

Exemple 5: création de la contrainte DEFAULT au moment de la création de la table.

CREATE TABLE commandes (


Num_cde INT PRIMARY KEY,
Date_cde DATETIME ,
Mont_cde MONEY DEFAULT (0))

III.5. La contrainte [NOT] NULL permet de définir la possibilité pour une colonne
d’accepter une valeur « NULL ». Elle est utilisée pour rendre la saisie de données obligatoire
pour une colonne.

Exemple 6

CREATE TABLE etudiant


( Num_etud INT PRIMARY KEY,
Nom_etud VARCHAR(15) NOT NULL,
Prenom_etud VARCHAR(15) NOT NULL,
Adr_etud VARCHAR(30) NULL )

III.6. La contrainte FOREIGN KEY appliquée à une colonne, permet de vérifier que la
valeur doit exister dans la colonne référencée. Dans le cas contraire, le système renvoie un
message d’erreur signalant une violation de clé étrangère.

FOREIGN KEY(référence_colonne) REFERENCES référence_table(reference_colonne)

Exemple 7
create table livraison (
np int ,
nu int,
nf int,
quantité real,
constraint pkliv primary key (np,nu,nf),
constraint refproduit foreign key (np) references produit (np),
constraint refusine foreign key (nu) references usine (nu),
constraint refournisseur foreign key (nf) references fournisseur (nf));

IV. Data Definition Language (Langage de Définition des Données)

Permet de créer des bases de données, des tables, des contraintes, etc. Cette brique du SQL
comporte trois clauses : CREATE, ALTER et DROP.

17
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

IV.1. Create Database


Syntaxe

CREATE DATABASE db_name;

IV.2. Create Table


Syntaxe

CREATE TABLE nom_table (nom_colonne type_donnees [contrainte] [,] )

IV.3. Ajout de colonnes

Syntaxe

ALTER TABLE nom_table


ADD nom_colonne type_colonne [null / not null ]

Exemple

ALTER TABLE clients


ADD clt_adr VARCHAR(255)

VI.4.Suppression de colonnes

Syntaxe

ALTER TABLE nom_table


DROP COLUMN nom_colonne
Exemple

ALTER TABLE clients


DROP COLUMN clt_adr

IV.5. Suppression d’une table


L’instruction DROP TABLE permet de supprimer une table existante.

Syntaxe

DROP TABLE nom_table

V. Data Manipulation Language (Langage de Manipulation des Données)

V.1. INSERT Permet d’insérer des lignes dans la table nom_table.

Syntaxe

INSERT into nom table


values (valeur champ1, ….)

18
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

Exemple

INSERT INTO client(id_clt,nom_clt,prenom_clt)


VALUES( 21,’MADJID’,’AMAR’)

INSERT INTO client


VALUES(21,'AHMED','AMAR')

Insérer plusieurs lignes

INSERT INTO client(id_clt,nom_clt,prenom_clt)


VALUES (21,'AHMED','AMAR'), (21,'MALIK’,DJAMILA’), (21,'ILHEM’,SAIDA’)

V.2. Suppression de données

L’instruction « DELETE » permet de supprimer une ou plusieurs lignes dans une table.

Syntaxe

DELETE
FROM tables
[WHERE condition]

Exemple

1. Supprimer toutes les lignes

DELETE
FROM client

2. Supprimer uniquement les clients dont l’âge est 39

DELETE
FROM client
WHERE age_clt>39

3. Supprimer les clients dont le nom est égal au prénom


DELETE
FROM client
WHERE nom_clt=prenom_clt

19
Module : Sources et base de données année universitaire:2023/2024
Management stratégique et système d'informations Semestre : 1

V.3. Modification de données

L’instruction « UPDATE » permet de changer les valeurs d’une ou plusieurs lignes dans une
table.

Syntaxe

UPDATE nom_table
SET {nom_colonne = {expression| default} [,..]}
[WHERE condition]

Exemple

1. Ajouter un point à tous les étudiants

UPDATE etudiant
SET note=note+1

2. Ajouter un point uniquement aux étudiants dont la note est inférieure à 10

UPDATE etudiant
SET note=note+1
WHERE note<10

20

Vous aimerez peut-être aussi