Leçon 6: Requêtes SQL

  • Création de requêtes SELECT avancées

Les requêtes SELECT avancées en SQL permettent d'extraire et de manipuler des données de manière plus complexe en utilisant des fonctionnalités telles que les jointures, les agrégations, les sous-requêtes et d'autres opérations. Voici quelques exemples de requêtes SELECT avancées :

  1. Jointures :

INNER JOIN : Combine les lignes de deux tables basées sur une condition de correspondance.

SELECT Utilisateurs.Nom, Commandes.Date_commande

FROM Utilisateurs

INNER JOIN Commandes ON Utilisateurs.ID_utilisateur = Commandes.ID_utilisateur;

LEFT JOIN : Retourne toutes les lignes de la table à gauche et les lignes correspondantes de la table à droite.

SELECT Utilisateurs.Nom, Commandes.Date_commande

FROM Utilisateurs

LEFT JOIN Commandes ON Utilisateurs.ID_utilisateur = Commandes.ID_utilisateur;

2.     Agrégation :

·     Utilisation de fonctions d'agrégation comme COUNT, SUM, AVG, MIN, MAX.

SELECT COUNT(*) AS Total_Utilisateurs

FROM Utilisateurs;

·  Utilisation de GROUP BY pour regrouper les résultats par une colonne spécifique.

SELECT Ville, COUNT(*) AS Nombre_Utilisateurs

FROM Utilisateurs

GROUP BY Ville;

3.     Sous-requêtes :

  • Utilisation de sous-requêtes pour effectuer des opérations plus complexes.

SELECT Nom

FROM Utilisateurs

WHERE ID_utilisateur IN (SELECT ID_utilisateur FROM Commandes WHERE Montant_total > 1000);

4.     Filtres et Conditions :

  • Utilisation de plusieurs conditions dans la clause WHERE.

 

SELECT Nom, Prénom

FROM Utilisateurs

WHERE Ville = 'Paris' AND Age > 25;

·  Utilisation de la clause CASE pour effectuer des opérations conditionnelles.

SELECT Nom, Prénom,

       CASE

           WHEN Age < 18 THEN 'Mineur'

           ELSE 'Majeur'

       END AS Statut

FROM Utilisateurs;

5.     Utilisation de LIMIT/OFFSET :

·     Utilisation de LIMIT pour limiter le nombre de résultats renvoyés.

SELECT Nom, Prénom

FROM Utilisateurs

LIMIT 10;

·  Utilisation de OFFSET pour paginer les résultats.

SELECT Nom, Prénom

FROM Utilisateurs

LIMIT 10 OFFSET 20;

Ces exemples illustrent certaines des fonctionnalités avancées de SQL qui permettent d'écrire des requêtes plus complexes et puissantes pour répondre à des besoins spécifiques. Les possibilités sont nombreuses, et la maîtrise de ces techniques permet une manipulation plus fine des données dans une base de données relationnelle.

  • Utilisation de clauses WHERE, ORDER BY, GROUP BY

Les clauses WHERE, ORDER BY et GROUP BY sont des éléments clés dans les requêtes SQL pour filtrer, trier et regrouper les résultats. Voici comment les utiliser :

  1. WHERE :

·       La clause WHERE est utilisée pour filtrer les résultats en fonction d'une condition spécifiée.

Exemple : Sélectionner tous les utilisateurs de Paris.

SELECT Nom, Prénom

FROM Utilisateurs

WHERE Ville = 'Paris';

·  Combinaison de conditions avec les opérateurs logiques AND, OR.

SELECT Nom, Prénom

FROM Utilisateurs

WHERE Ville = 'Paris' AND Age > 25;

·  Utilisation d'opérateurs de comparaison tels que >, <, =, >=, <=, <>.

·       SELECT Nom, Prénom

·       FROM Utilisateurs

·       WHERE Age >= 18;

·  ORDER BY :

  • La clause ORDER BY est utilisée pour trier les résultats en fonction d'une ou plusieurs colonnes.
  • Tri ascendant (par défaut) :

SELECT Nom, Prénom

FROM Utilisateurs

ORDER BY Nom;

·  Tri descendant (DESC) :

SELECT Nom, Prénom

FROM Utilisateurs

ORDER BY Nom DESC;

·  Tri sur plusieurs colonnes :

SELECT Nom, Prénom, Age

FROM Utilisateurs

ORDER BY Age DESC, Nom;

·  GROUP BY :

La clause GROUP BY est utilisée pour regrouper les résultats en fonction des valeurs d'une ou plusieurs colonnes.

Exemple : Compter le nombre d'utilisateurs par ville.

SELECT Ville, COUNT(*) AS Nombre_Utilisateurs

FROM Utilisateurs

GROUP BY Ville;

·  Utilisation de fonctions d'agrégation avec GROUP BY.

SELECT Ville, AVG(Age) AS Moyenne_Age

FROM Utilisateurs

GROUP BY Ville;

·  Filtrage avec HAVING après un GROUP BY.

SELECT Ville, COUNT(*) AS Nombre_Utilisateurs

FROM Utilisateurs

GROUP BY Ville

HAVING COUNT(*) > 1;

Ces clauses offrent une grande flexibilité pour extraire des données spécifiques, les trier de manière personnalisée et obtenir des statistiques agrégées basées sur des regroupements. Les combinaisons de ces clauses permettent de construire des requêtes complexes et puissantes.


Modifié le: mardi 5 mars 2024, 23:09