1
Management de la
Chaine Logistique
Langage SQL & SGBD
Système information Pr: Mohamed Doubiz
2024/2025
SQL & SGBD : RAPPEL
Langage de requêtes SQL & SGBD
SQL & SGBD : RAPPEL
▪ SQL est un langage informatique normalisé permettant de communiquer avec une base de données.
▪ Un système de gestion de bases de données (SGBD) est un logiciel qui permet de stocker des
informations dans une base de données.
▪ Langage de Manipulation de Données (LMD) est un langage de programmation informatique utilisé
pour insérer, récupérer et mettre à jour des données dans la base de données.
3
SQL & SGBD : RAPPEL
La commande SELECT permet de :
• Sélectionner certaines colonnes d’une table (projection)
• Sélectionner certaines lignes d’une table en fonction de leur contenu (sélection)
• Combiner des informations venant de plusieurs table (jointure, union, intersection, différence et
division)
• Combiner entre ces différentes opérations.
4
SQL & SGBD : RAPPEL
SELECT : La commande basique :
« client » :
Exemple:
SELECT ville
FROM client
Cette requête va sélectionner (SELECT) le champ «ville» provenant (FROM) du tableau appelé «client».
Résultat :
5
SQL & SGBD : RAPPEL
SELECT : Obtenir plusieurs colonnes:
« client » :
Exemple:
SELECT prenom, nom
FROM client
Cette requête va sélectionner (SELECT) les champs «prenom» et «nom» provenant (FROM) du tableau
appelé «client».
Résultat :
6
SQL & SGBD : RAPPEL
SELECT : Obtenir toutes les colonnes:
« client » :
Exemple:
SELECT * FROM client
Cette requête va sélectionner (SELECT) tous les champs provenant (FROM) du tableau appelé «client».
Résultat :
7
SQL & SGBD : RAPPEL
▪ SELECT DISTINCT colonne1 : Pour éviter des redondances dans les résultats.
▪ SELECT colonne1 AS C1: Permet de renommer le nom d’une colonne dans les résultats.
▪ SELECT colonne1 WHERE : Permet d’extraire les lignes qui respectent une condition.
▪ AND & OR : Les opérateurs logiques AND et OR peuvent être utilisées au sein de la commande WHERE
pour combiner des conditions.
▪ SELECT colonne1 WHERE colonne1 IN ( valeur1, valeur2, valeur3, ... ): Permet de vérifier si une colonne
est égale à une des valeurs comprises dans des valeurs déterminés.
▪ SELECT colonne1 WHERE colonne1 BETWEEN 'valeur1' AND 'valeur2’
8
SQL & SGBD : Exercice
Exercice 1 : Sélection de toutes les colonnes d'un tableau
➢ Sélectionnez toutes les colonnes du tableau reception_mjs
Exercice 2 : sélection de quelques colonnes dans un tableau
➢ Sélectionnez id_reception, date_entree, client et nat_marchandise du tableau reception_mjs
Exercice 3 : Sélection de quelques colonnes et filtrage de données numériques dans WHERE
➢ Sélectionnez les colonnes id_reception et client dans la table reception_mjs. N'affichez que les réceptions
dont les poids sont supérieurs à 10000Kg.
9
SQL & SGBD : Exercice
Exercice 4 : Sélection de quelques colonnes et filtrage des données à l'aide de deux conditions dans
WHERE
Sélectionnez les colonnes id_reception, date_entree, client, nat_marchandise et poids dans le
tableau reception_mjs. Afficher les réceptions entrées avant le 15 mai 2024 et dont la note est inférieure à
2000kg.
10
SQL: Commande SELECT
SQL LIKE
L’opérateur LIKE est utilisé dans la clause WHERE des requêtes SQL. Ce mot-clé permet d’effectuer une
recherche sur un modèle particulier.
SELECT *
FROM table
WHERE colonne LIKE modele
• LIKE ‘%a’ : ce modèle permet de rechercher toutes les lignes de « colonne » qui se termine par un «a ».
• LIKE ‘a%’ : ce modèle permet de rechercher toutes les lignes de « colonne » qui commence par un « a ».
• LIKE ‘%a%’ : ce modèle est utilisé pour rechercher tous les enregistrements qui utilisent le caractère « a ».
• LIKE ‘pa%on’ : ce modèle permet de rechercher les chaines qui commence par « pa » et qui se terminent
par « on ».
• LIKE ‘a_c’ : le caractère « _ » (underscore) peut être remplacé par n’importe quel caractère, mais un seul
caractère uniquement. 11
SQL: Commande SELECT
Exemple
Imaginons une table « client » qui
contient les enregistrements
d’utilisateurs :
Si l’ont souhaite obtenir uniquement les clients des villes qui commencent par un « N », il est possible
d’utiliser la requête suivante :
SELECT *
FROM client
WHERE ville LIKE 'N%'
Résultat :
12
SQL: Commande SELECT
SQL IS NULL / IS NOT NULL
Dans le langage SQL, l’opérateur IS permet de filtrer les résultats qui contiennent la valeur NULL.
Cet opérateur est indispensable car la valeur NULL est une valeur inconnue et ne peut par conséquent pas
être filtrée par les opérateurs de comparaison.
SELECT *
FROM `table`
WHERE nom_colonne IS NULL
13
SQL: Commande SELECT
Exemple
Imaginons une application qui
possède une table contenant les
utilisateurs:
Si l’ont souhaite obtenir la liste des utilisateurs qui ne possèdent pas d’adresse de livraison en utilisant la
requête SQL suivante:
SELECT *
FROM `utilisateur`
WHERE `fk_adresse_livraison_id` IS NULL
Résultat :
14
SQL: Commande SELECT
SQL GROUP BY
La commande GROUP BY est utilisée en SQL pour grouper plusieurs résultats et utiliser une fonction de
totaux sur un groupe de résultat.
De façon générale, la commande GROUP BY s’utilise de la façon suivante:
SELECT colonne1, fonction(colonne2)
FROM table
GROUP BY colonne1
Exemple de fonctions de statistiques
• AVG() pour calculer la moyenne d’un set de valeur.
• COUNT() pour compter le nombre de lignes concernées.
• MAX() pour récupérer la plus haute valeur.
• MIN() pour récupérer la plus petite valeur.
• SUM() pour calculer la somme de plusieurs lignes.
15
SQL: Commande SELECT
Exemple
Prenons en considération une
table « achat » qui résume les
ventes d’une boutique:
Pour obtenir le coût total de chaque client en regroupant les commandes des mêmes clients, il faut
utiliser la requête suivante:
SELECT client, SUM(tarif)
FROM achat
GROUP BY client
Résultat :
16
SQL: Commande SELECT
SQL HAVING
La condition HAVING en SQL est presque similaire à WHERE à la seule différence que HAVING permet de
filtrer en utilisant des fonctions telles que SUM(), COUNT(), AVG(), MIN() ou MAX().
L’utilisation de HAVING s’utilise de la manière suivante:
SELECT colonne1, SUM(colonne2)
FROM nom_table
GROUP BY colonne1
HAVING fonction(colonne2) operateur Valeur
17
SQL: Commande SELECT
Exemple
Pour utiliser un exemple concret,
imaginons une table « achat » qui contient
les achats de différents clients avec le coût
du panier pour chaque achat:
Si dans cette table on souhaite récupérer la liste des clients qui ont commandé plus de 40€, toute
commandes confondues alors il est possible d’utiliser la requête suivante:
SELECT client, SUM(tarif)
FROM achat
GROUP BY client
Résultat :
HAVING SUM(tarif) > 40
18
SQL: Commande SELECT
SQL ORDER BY
La commande ORDER BY permet de trier les lignes dans un résultat d’une requête SQL. Il est possible de
trier les données sur une ou plusieurs colonnes, par ordre ascendant ou descendant.
L’utilisation de ORDER BY s’utilise de la manière suivante:
SELECT colonne1, colonne2, colonne3
FROM table
ORDER BY colonne1 DESC, colonne2 ASC
▪ ASC : order croissant
▪ DESC: order décroissant
19
SQL: Commande SELECT
Exemple
Nous allons prendre une base « utilisateur
» de test, qui contient les données
suivantes ::
En utilisant deux méthodes de tri, il est possible de retourner les utilisateurs par ordre alphabétique ET
pour ceux qui ont le même nom de famille, les trier par ordre décroissant d’inscription. La requête serait
alors la suivante :
SELECT *
Résultat :
FROM utilisateur
ORDER BY nom, date_inscription DESC
20
SQL: Commande SELECT
SQL LIMIT
La clause LIMIT est à utiliser dans une requête SQL pour spécifier le nombre maximum de résultats que
l’ont souhaite obtenir.
L’utilisation de SQL LIMIT s’utilise de la manière suivante:
SELECT *
FROM table
LIMIT 10
➢ Cette requête permet de récupérer seulement les 10 premiers résultats d’une table.
21
SQL: Commande SELECT
SQL LIMIT et OFFSET
L’offset est une méthode simple de décaler les lignes à obtenir. La syntaxe pour utiliser une limite et un
offset est la suivante :
SELECT *
FROM table
LIMIT 10 OFFSET 5
➢ Cette requête permet de récupérer les résultats 6 à 15 (car l’OFFSET commence toujours à 0).
22
SQL & SGBD : Exercice
Exercice 5 : Sélection de quelques colonnes et filtrage de données textuelles dans WHERE
➢ Sélectionnez les colonnes id_reception, client, nat_marchandise, et chambre dans le
tableau reception_mjs. Afficher les réceptions dont le nom du client contient le mot "STE"
Exercice 6 : Filtrage des données à l'aide de WHERE et tri de la sortie
➢ Sélectionnez les colonnes id_reception, date_entree, nat_marchandise et poids dans le
tableau reception_mjs. Affichez les réceptions entrées après 01 juin 2024. Triez les résultats en fonction du
poids par ordre croissant.
Exercice 7 : Regroupement de données sur une colonne
➢ Affichez le nombre de réceptions pour chaque catégorie d’opération
23
SQL & SGBD : Exercice
Exercice 8 : Regrouper des données en fonction de plusieurs colonnes
➢ Afficher le nombre de réceptions par date d’entrée et par opération. Triez les résultats par date d’entrée en
ordre croissant
Exercice 9 : Filtrer les données après le regroupement
➢ Affichez la nature de marchandise et le poids moyen des réceptions par catégorie de nature marchandise.
N'affichez que les marchandises dont le poids moyen est supérieur à 20000kg.
Exercice 10 : Filtrer les données après le regroupement
Sélectionnez toutes les colonnes dans le tableau reception_mjs. Affichez les réceptions qui ne possèdent pas
de matricule de camion.
24