Module 106
Interroger, traiter et assurer la maintenance des bases de données
Jour 4 - Commandes SQL
# Objectifs du jour
Objectifs du jour
-
Création du Mindmap
-
Correction de l'exercice 2.1
-
Commandes SELECT avec WHERE
-
Commandes SELECT avec opérateurs logiques
-
Combiner des enregistrements de plusieurs tables (JOIN)
-
Commandes pour données agrégées (GROUP BY et HAVING)
-
Fonctions d'agrégation comme COUNT, SUM, AVG, MIN, MAX, CONCAT, etc)
Ne pas oublier de démarrer Lanschool !



# Deux vérités, un mensonge
Deux vérités, un mensonge
- Aléatoire : https://spinthewheel.io/
INF1A
INF1B
- Création du Mindmap
# Correction exercice
Correction de l'exercice 2.1
-
Voir le corrigé sur le Gitbook des consignes d'exercices

Commandes SQL
# Commandes SQL
Commandes SQL - Syntaxe générale
Attention à l'ordre des éléments :
SELECT
colonne1 AS alias1,
colonne2 AS alias2,
fonction_aggregation(colonne3) AS alias3,
CONCAT('Texte ', colonne4) AS alias4
FROM table1
INNER JOIN table2 ON table1.cle_etrangere = table2.cle_primaire
WHERE condition1
AND condition2
AND colonne5 BETWEEN valeur1 AND valeur2
AND colonne6 IN (valeur3, valeur4, valeur5)
GROUP BY colonne1, colonne2
HAVING fonction_aggregation(colonne3) > valeur_seuil
ORDER BY colonne1 DESC, colonne2 ASC;
Commandes SQL
# Commandes SQL
Commandes SELECT avec ORDER BY
SELECT colonne1, colonne2, ...
FROM table
ORDER BY colonne1 [ASC|DESC], colonne2 [ASC|DESC], ...;
-
Trie les résultats selon une ou plusieurs colonnes
-
ASC (ascendant) par défaut, DESC pour descendant
-
Exemple :
SELECT nom, age
FROM clients
ORDER BY nom ASC, age DESC;
Commandes SQL
Commandes SELECT avec WHERE
# Commandes SQL
SELECT colonne1, colonne2, ...
FROM table
WHERE condition;
-
Permet de filtrer les résultats selon une condition
-
Opérateurs de comparaison (
=
,!=
,<
,>
,<=
,>=
) -
Exemple :
SELECT nom, age
FROM clients
WHERE age > 18;
Commandes SQL
Commandes SELECT avec opérateurs logiques
Opérateurs logiques principaux
-
AND : les deux conditions doivent être vraies
-
OR : au moins une condition doit être vraie
-
NOT : inverse la condition
Exemple
# Commandes SQL
SELECT nom, age, pays
FROM clients
WHERE age > 18 AND (pays = 'France' OR pays = 'Belgique');
Commandes SQL
Commandes SELECT avec filtres plus complexes
Opérateurs logiques principaux
-
LIKE
-
BETWEEN
-
IS NULL / IS NOT NULL
-
IN
# Commandes SQL
SELECT * FROM Employes
WHERE nom LIKE 'Du%';
Exemple LIKE
Résultat : Dupont, Durand, Dubois, Dufour
Commandes SQL
# Commandes SQL
SELECT * FROM Employes
WHERE age BETWEEN 30 AND 40;
Exemple BETWEEN
Résultat : Dupont (30), Dufour (35), Dubois (40)
SELECT * FROM Commandes
WHERE date_commande BETWEEN TO_DATE('2024-02-01','YYYY-MM-DD') AND TO_DATE('2024-03-15','YYYY-MM-DD');
Exemple BETWEEN avec dates
Résultat : Commande entre le 01.02.2024 et le 15.03.2024 (comprises)
Commandes SQL
# Commandes SQL
SELECT * FROM Employes
WHERE fk_departement IS NULL;
Exemple IS NULL
Résultat : Employés sans département assignés
SELECT * FROM Employes
WHERE fk_departement IS NOT NULL;
Exemple IS NOT NULL
Résultat : Employés avec un département assignés
Commandes SQL
# Commandes SQL
SELECT * FROM villes
WHERE nom_ville IN ('Lausanne', 'Genève');
Exemple IN
Résultat : Lausanne et Genêve uniquement
SELECT * FROM Employes
WHERE fk_ville IN (
SELECT pk_ville_emp
FROM villes
WHERE canton_vil = 'JU'
);
Exemple IN avec sous-requête
Résultat : Employés avec un département assignés

Exercice 3.1
Exercices sur les requêtes SQL

Exercice de gestion des droits
# Commandes SQL
Commandes SQL
Combiner des enregistrements de plusieurs tables (JOIN)
Syntaxe de base
# Commandes SQL
SELECT colonnes
FROM table1
JOIN table2
ON table1.colonne = table2.colonne;
Types de JOIN
-
INNER JOIN : lignes correspondantes dans les deux tables
-
LEFT JOIN : toutes les lignes de la table de gauche
-
RIGHT JOIN : toutes les lignes de la table de droite
-
FULL JOIN : toutes les lignes des deux tables
Exemple
SELECT *
FROM clients
INNER JOIN commandes
ON clients.pk_cli = commandes.fk_cli;
Commandes SQL
UNION et UNION ALL
UNION
-
Combine les résultats de deux requêtes
-
Élimine les doublons
UNION ALL
-
Combine les résultats sans éliminer les doublons
-
Plus rapide que UNION
Exemple
# Commandes SQL
SELECT nom, mail FROM clients
UNION
SELECT nom, mail FROM fournisseurs;
Commandes SQL
Commandes pour données agrégées (GROUP BY et HAVING)
GROUP BY
-
Regroupe les lignes ayant les mêmes valeurs
-
Souvent utilisé avec des fonctions d'agrégation
HAVING
-
Filtre les résultats de GROUP BY
-
S'utilise à la place de WHERE pour les groupes
Exemple
# Commandes SQL
SELECT pays, COUNT(*) as nombre_pays_clients
FROM clients
GROUP BY pays
HAVING COUNT(*) > 10;
Commandes SQL
Fonctions d'agrégation
Principales fonctions
-
COUNT() : compte le nombre de lignes
-
SUM() : somme des valeurs
-
AVG() : moyenne des valeurs
-
MAX() : valeur maximale
-
MIN() : valeur minimale
Exemple
# Commandes SQL
SELECT
pays,
COUNT(*) as nombre_clients,
AVG(age) as age_moyen,
MAX(revenu) as revenu_max
FROM clients
GROUP BY pays;

Exercice 3.2
Exercices sur les requêtes SQL (JOIN, GROUP BY, etc)

Exercice de gestion des droits
# Commandes SQL
Merci de votre attention 😊
Bonne fin de journée !



M106 - Jour 3
By paranor
M106 - Jour 3
- 190