Cours SQL et MySQL · Module 2: Interroger les données (SELECT)

La Salle du Catalogue - résumé

4 min de lecture
Dans cette leçon5

Bien joué ! Tu quittes la Salle du Catalogue en véritable scribe. Tes requêtes ne se contentent plus de récupérer les données - elles les façonnent.

Ce que tu as appris

  • Choisir les colonnes - ne prends que les champs nécessaires au lieu de *. L'ordre de la liste SELECT décide de l'ordre dans le résultat.
  • Les alias (AS) - SELECT tytul AS Tytul donne à un champ une jolie étiquette dans la réponse.
  • DISTINCT - SELECT DISTINCT kraj FROM autorzy ne renvoie que des valeurs uniques.
  • ORDER BY - ASC (croissant, par défaut) et DESC (décroissant) ; tu peux trier selon plusieurs champs : ORDER BY rok_wydania DESC, tytul ASC.
  • LIMIT et OFFSET - LIMIT 5 prend cinq lignes ; LIMIT 5 OFFSET 10 pagine les résultats.

Une carte des décisions

Quand un lecteur arrive avec une demande, découpe-la en questions simples. Chacune a sa place dans la requête :

La question du lecteurCe que tu écris dans la requête
Quels champs ?une liste de colonnes après SELECT
Quels en-têtes ?AS
Sans répétitions ?DISTINCT juste après SELECT
Dans quel ordre ?ORDER BY avec ASC ou DESC
Combien de lignes, quelle page ?LIMIT et OFFSET

Les trois premières réponses vont dans la partie SELECT, les deux dernières tout à la fin de la requête. Si la demande ne contient pas l'une de ces questions, tu omets simplement la clause.

Un sortilège magistral

Tout réuni dans un seul parchemin - des champs avec en-têtes, un tri et une limite :

1SELECT tytul AS Tytul, cena AS Cena
2FROM ksiazki
3ORDER BY cena DESC
4LIMIT 3;

« Montre les trois livres les plus chers, avec de jolis en-têtes Tytul et Cena » :

TytulCena
Elementy89.00
Polityka61.20
Etyka58.00

Magnifique, n'est-ce pas ? Et le rayon contient toujours dix-sept parchemins avec les noms de champs d'origine - seule la réponse a changé.

Cinq pièges de cette salle

Voici les erreurs que je vois le plus souvent chez les jeunes scribes. Chacune se corrige simplement :

  1. Une virgule oubliée entre les champs. SELECT tytul cena renvoie une seule colonne avec l'alias « cena ». Correct : SELECT tytul, cena.
  2. LIMIT avant ORDER BY. ... LIMIT 3 ORDER BY cena DESC est une erreur de syntaxe. Correct : ... ORDER BY cena DESC LIMIT 3.
  3. DESC sur le mauvais champ. Dans ORDER BY rok_wydania, tytul DESC, seul le titre décroît. Si l'année doit décroître, écris ORDER BY rok_wydania DESC, tytul.
  4. Des nombres inversés dans LIMIT et OFFSET. LIMIT 10 OFFSET 5 affiche dix lignes à partir de la sixième. La troisième page de cinq entrées, c'est LIMIT 5 OFFSET 10.
  5. Un alias avec une espace, sans guillemets. AS Rok wydania se termine par une erreur. Correct : AS "Rok wydania".

Quand l'éditeur n'accepte pas ta solution, parcours cette liste depuis le début. Le plus souvent, l'une de ces cinq erreurs est en cause, et la corriger prend un instant.

Et ensuite ?

Dans le prochain lieu, tu apprendras à filtrer les parchemins avec la clause WHERE - pour ne retenir que ceux qui remplissent une condition (par exemple des livres à moins de 30, ou publiés après l'an 2000). WHERE se placera juste après FROM, avant ORDER BY. En voici un avant-goût - les livres à moins de 30, du moins cher au plus cher :

1SELECT tytul, cena
2FROM ksiazki
3WHERE cena < 30
4ORDER BY cena ASC;

Cette fois, ce n'est pas un champ qui disparaît, mais des lignes entières. Seuls restent les parchemins dont le prix remplit la condition :

tytulcena
Ajaks18.50
Antygona19.90
Medea21.00
Dziady24.50
Hamlet27.00
Uczta29.99

Je te montrerai comment construire ces conditions dans la prochaine salle. Le catalogue est prêt ; il est temps d'apprendre à chercher avec précision. En avant !

Tu as repéré une erreur dans cette leçon ?