Requêtes SQL
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 :
- 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 :
- 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.