Requêtes SQL - SELECT, WHERE, JOIN, GROUP BY
Apprenez à interroger efficacement une base de données relationnelle avec SQL : extraction, filtrage, jointures, agrégations et tri des données.
45 min Intermédiaire +120 XP
Objectifs pédagogiques
- Maîtriser la clause SELECT pour extraire des données
- Filtrer les résultats avec WHERE et les opérateurs de comparaison
- Utiliser les jointures (JOIN) pour combiner plusieurs tables
- Agréger des données avec GROUP BY et les fonctions COUNT, SUM, AVG, MAX, MIN
- Trier les résultats avec ORDER BY
- Pratiquer les requêtes SQL avec Python et sqlite3
Contenu du cours
SELECT est la commande fondamentale pour interroger une base de données. Elle permet d'extraire des données d'une ou plusieurs tables. On peut sélectionner toutes les colonnes (*) ou spécifier uniquement celles qui nous intéressent.
Exemples SQL
-- Sélectionner toutes les colonnes SELECT * FROM eleves; -- Sélectionner des colonnes spécifiques SELECT nom, prenom, age FROM eleves; -- Utiliser des alias pour renommer les colonnes SELECT nom AS "Nom de famille", prenom AS "Prénom" FROM eleves; -- Éliminer les doublons avec DISTINCT SELECT DISTINCT classe FROM eleves;
Exemple Python avec sqlite3
import sqlite3
# Connexion à la base de données
conn = sqlite3.connect('lycee.db')
cursor = conn.cursor()
# Exécuter une requête SELECT
cursor.execute("SELECT nom, prenom, age FROM eleves")
# Récupérer tous les résultats
resultats = cursor.fetchall()
# Afficher les résultats
for nom, prenom, age in resultats:
print(f"{prenom} {nom}, {age} ans")
# Fermer la connexion
conn.close()Points clés à retenir
- •SELECT extrait des données, utilisez DISTINCT pour éliminer les doublons
- •WHERE filtre les lignes avec des conditions (=, <, >, LIKE, IN, BETWEEN)
- •JOIN combine plusieurs tables (INNER, LEFT, RIGHT)
- •Fonctions d'agrégation : COUNT(), SUM(), AVG(), MAX(), MIN()
- •GROUP BY regroupe les données, HAVING filtre les groupes
- •ORDER BY trie les résultats (ASC croissant, DESC décroissant)
- •En Python, utilisez sqlite3 avec des paramètres (?) pour éviter les injections SQL
Quiz SQL Requêtes
5 questions pour tester tes connaissances sur les requêtes SQL
