Skip to content

Requêtes de base : SELECT, WHERE, ORDER BY, LIMIT

Une fois le schéma en place et rempli, on peut interroger la base. Pour éviter de répéter pd.read_sql_query(sql, conn) à chaque requête, on encapsule cet appel dans une petite fonction utilitaire :

def query(sql, params=()):
return pd.read_sql_query(sql, conn, params=params)

Quels documents de la catégorie « BD » possède la médiathèque, du plus grand au plus petit nombre d’exemplaires ?

query("""
SELECT titre, nombre_exemplaires
FROM documents
WHERE categorie = 'bd'
ORDER BY nombre_exemplaires DESC
""")
titre nombre_exemplaires
0 L'Atelier des Nuages 4
1 Le Sentier des Corbeaux 2

Quels adhérents habitent à Nantes, triés par ordre alphabétique de nom ?

query("SELECT prenom, nom FROM adherents WHERE ville = 'Nantes' ORDER BY nom")
prenom nom
0 Youssef Amrani
1 Karim Belkacem
2 Nora Benali
3 Sarah Lemoine
4 Ines Moreau
5 Amelie Rousseau

Quels sont les 3 documents dont le tarif de retard est le plus élevé ?

query("""
SELECT titre, tarif_retard
FROM documents
ORDER BY tarif_retard DESC
LIMIT 3
""")
titre tarif_retard
0 Cite en Ruines 1.0
1 Marches de l'Ouest 1.0
2 Traversee Nocturne 0.5

ORDER BY ... DESC suivi de LIMIT 3 est le motif le plus courant pour répondre à une question de type « top N » — on le retrouvera tel quel dans les modules suivants, y compris en dehors du SQL (par exemple pour garder les k résultats les plus pertinents d’une recherche par similarité, au module 9).

👉 Agrégations : GROUP BY et HAVING


Junior TSAFACK – 12/09/2026