15 minutes de SQL
Éliminer les doublons avec DISTINCT et trier avec ORDER BY
Les commandes à connaître
DISTINCT
DISTINCT permet d’afficher une valeur une seule fois,
même si elle apparaît sur plusieurs lignes.
-
SELECT DISTINCT colonne FROM table;supprime les doublons sur la colonne affichée. -
Si plusieurs colonnes sont affichées,
DISTINCTs’applique au couple (ou au n-uplet) de colonnes.
SELECT DISTINCT ville
FROM clients;
ORDER BY
ORDER BY trie les lignes du résultat selon une (ou plusieurs) colonnes.
-
Par défaut, le tri est croissant :
ORDER BY colonneéquivaut àORDER BY colonne ASC. -
Pour trier en décroissant, on utilise
DESC. -
On peut trier sur plusieurs colonnes :
ORDER BY col1, col2.
SELECT nom, prix
FROM produits
ORDER BY prix DESC, nom ASC;
DISTINCT et ORDER BY
On combine souvent les deux :
DISTINCTsupprime les doublons.ORDER BYtrie ensuite le résultat pour le rendre lisible.
SELECT DISTINCT ville
FROM clients
ORDER BY ville;
Exemples commentés
SELECT DISTINCT ville
FROM clients
ORDER BY ville;
On dispose d'une base de données Films et, dans cette base, des tables suivantes :
films(film_id, film_titre, annee_sortie, realisateur, budget, box_office, notes_imdb)
On veut afficher le titre et la note IMDB de chaque film, en commençant par les films les mieux notés.
SELECT film_titre, notes_imdb
FROM films
ORDER BY notes_imdb DESC, film_titre ASC;
On dispose d'une base de données Cafés parisiens et, dans cette base, des tables suivantes :
cafes(nom, adresse, arrondissement, prix_cafe)
On veut afficher les cafés du 14e arrondissement, en les triant du moins cher au plus cher.
SELECT nom, prix_cafe
FROM cafes
WHERE arrondissement = 14
ORDER BY prix_cafe ASC, nom ASC;
On dispose d'une base de données Personnel et, dans cette base, des tables suivantes :
services(id_service, nom_service, ville)employes(id_employe, nom, age, salaire, id_service)
On veut afficher la liste des villes où se trouvent les services, sans doublons, puis trier cette liste.
SELECT DISTINCT ville
FROM services
ORDER BY ville;
On dispose d'une base de données Communication et, dans cette base, des tables suivantes :
personnes(idpers, nom, tel, email)evenements(idevenement, nomevenement, date, lieu)invitation(idpers, idevenement, datedenvoi, message)
On veut afficher le nom et la date des événements, en commençant par les événements les plus récents.
SELECT nomevenement, date
FROM evenements
ORDER BY date DESC, nomevenement ASC;
Et pour quelques minutes de plus…
Prendre en main la programmation, pas à pas.
Ces exercices sont conçus pour t’aider à maîtriser progressivement les requêtes SQL, en partant de la lecture et de la compréhension du code, jusqu’à l’écriture autonome de requêtes complètes.
L’objectif n’est pas d’aller vite, mais de construire des automatismes solides, en comprenant ce que fait chaque commande, puis en apprenant à les utiliser par toi-même.
L’ordre des exercices est volontaire : on lit, on comprend, on complète, puis on écrit seul. Prends le temps de chaque étape : c’est la clé pour progresser durablement.
Niveau 1 Lire et interpréter
Comprendre avant d’écrire.
Dans cette première série, tu observes et analyses des requêtes SQL déjà écrites.
L’objectif est de comprendre la logique et d’être capable d'expliquer ce que renvoie la requête.
Niveau 2 Compléter une requête
Écrire, mais avec un cadre.
Ici, tu passes à l’écriture sans partir de zéro.
Le squelette de la requête est fourni : il te reste à compléter certaines parties
pour que le code fonctionne correctement.
Ce format permet de se concentrer sur l’essentiel, sans se perdre dans la structure générale.
Niveau 3 Écrire une requête
Passer à l’autonomie.
Dans cette dernière série, tu écris les requêtes complètes à partir d’une consigne.
Tu dois organiser ton code, choisir les bonnes instructions et construire la logique globale.
C’est ici que tu mets en pratique tout ce que tu as appris dans les niveaux précédents.
Contenu réservé aux membres
Les exercices interactifs et le feedback IA sont réservés aux membres.
On dispose d'une base de données
Boutiqueet, dans cette base, des tables suivantes :clients(id_client, nom, ville)commandes(id_commande, id_client, date_commande)produits(id_produit, nom, categorie, prix)lignes_commande(id_commande, id_produit, quantite)On veut afficher la liste des villes des clients, sans doublons, puis trier le résultat par ordre alphabétique.