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

Pratique

Testez vos requêtes SQL dans un environnement interactif

Ouvrir SQL Playground

Navigation rapide

EdTech AI Assistant