Niveau 1 : Lire une table avec SELECT
Mis à jour le
Débutant · niveau 1 sur 20. Objectif : Afficher les colonnes que tu veux d'une table, les renommer et en calculer de nouvelles.
Notions : SELECT * alias AS colonnes calculées
Leçon
Une base de données range ses informations dans des tables. Une table ressemble à une feuille de tableur : chaque ligne est un élément (un film, un client, une vente) et chaque colonne une information sur cet élément (son titre, son année, sa durée). Toutes les lignes d'une table ont les mêmes colonnes.
Pour lire une table, on écrit une requête qui commence par SELECT. Juste après SELECT vient la liste des colonnes voulues, séparées par des virgules, dans l'ordre où tu veux les voir. Puis FROM indique le nom de la table. SELECT title, year FROM movies affiche, pour chaque film, son titre et son année. L'étoile * veut dire « toutes les colonnes » : SELECT * FROM movies est pratique pour découvrir une table.
Une requête SELECT ne modifie jamais la table : elle fabrique un résultat, un nouveau tableau affiché à l'écran. Tu peux donc expérimenter sans risque.
On peut renommer une colonne du résultat avec AS : c'est un alias. title AS film affiche la colonne sous le nom film. L'alias ne change que l'affichage, pas la table.
On peut aussi calculer une colonne avec + - * / : SQL fait le calcul pour chaque ligne, une par une. price * 2 AS price_for_two donne le prix pour deux personnes sur chaque ligne. Comme en mathématiques, * et / passent avant + et - : ajoute des parenthèses pour imposer ton ordre de calcul.
Attention à la division : diviser deux nombres entiers donne un entier, 95 / 60 vaut 1. Écris 60.0 pour garder les décimales.
Le point-virgule final marque la fin de la requête. Les mots-clés comme SELECT et FROM peuvent s'écrire en minuscules, mais on les met souvent en majuscules pour les distinguer des noms de colonnes.
Syntaxe
SELECT colonne1, colonne2 AS nouveau_nom, colonne3 * 2 AS double
FROM ma_table;Exemple commenté
SELECT title, year, duration / 60.0 AS hours
FROM movies;On lit trois informations de chaque film. La troisième est calculée : la durée en minutes divisée par 60.0 donne des heures, affichées sous le nom hours. SQL affiche toutes les décimales ; tu apprendras à arrondir avec ROUND au niveau 5.
| id | title | genre | year | duration | rating | director_id |
|---|---|---|---|---|---|---|
| 1 | Night Train | Thriller | 2015 | 118 | 7.8 | 1 |
| 2 | Blue Harbor | Drama | 2018 | 102 | 7.1 | 2 |
| 3 | Paper Moon City | Comedy | 2012 | 95 | 6.4 | 5 |
| 4 | Silent Peak | Drama | 2020 | 131 | 8.2 | 3 |
| 5 | Last Signal | Sci-Fi | 2019 | 142 | 7.5 | 1 |
| 6 | Summer Keys | Comedy | 2016 | 88 | 5.9 | 4 |
| 7 | Iron Garden | Sci-Fi | 2021 | 125 | 8 | 3 |
| 8 | Dust and Gold | Western | 2014 | 110 | 6.8 | 2 |
| 9 | The Quiet Hour | Drama | 2022 | 97 | 7.4 | 5 |
| 10 | Deep Current | Thriller | 2017 | 105 | 6.9 | NULL |
Résultat de l’exemple
| title | year | hours |
|---|---|---|
| Night Train | 2015 | 1.9666666666666666 |
| Blue Harbor | 2018 | 1.7 |
| Paper Moon City | 2012 | 1.5833333333333333 |
| Silent Peak | 2020 | 2.183333333333333 |
| Last Signal | 2019 | 2.3666666666666667 |
| Summer Keys | 2016 | 1.4666666666666666 |
| Iron Garden | 2021 | 2.0833333333333335 |
| Dust and Gold | 2014 | 1.8333333333333333 |
| The Quiet Hour | 2022 | 1.6166666666666667 |
| Deep Current | 2017 | 1.75 |
À retenir
- SELECT liste les colonnes, FROM indique la table.
- * affiche toutes les colonnes, dans l'ordre de la table.
- AS donne un nom à une colonne du résultat, surtout utile pour les colonnes calculées.
Pièges fréquents
- Oublier la virgule entre deux colonnes : SELECT title year lit title et la renomme « year » !
- Diviser deux nombres entiers donne un entier : 95 / 60 vaut 1. Écris 60.0 pour garder les décimales.
- price * capacity - seats_sold n'est pas price * (capacity - seats_sold) : la multiplication passe avant la soustraction.
Les 5 exercices du niveau
- Affiche toutes les colonnes de la table movies.
- Affiche le titre et le genre de chaque film.
- Affiche le titre de chaque film dans une colonne nommée film, et sa durée dans une colonne nommée minutes.
- Affiche le nom et le prix de chaque plat, ainsi que le prix pour deux personnes dans une colonne nommée price_for_two.
- Pour chaque vol, affiche la compagnie, la recette du vol (revenue : prix × places vendues) et le manque à gagner dû aux places restées vides (lost_revenue : prix × places vides).
Dans SpeedQL, chaque requête est corrigée tout de suite : le résultat est comparé à celui attendu, puis la requête est relancée sur une base de contrôle cachée. Chaque exercice a ses indices écrits, à afficher seulement si tu bloques.
Voir aussi : la fiche de l’aide-mémoire · les exercices SQL corrigés sur cette notion
Faire les exercices du niveau 1
Gratuit, sans inscription : la leçon et les 5 exercices s’ouvrent directement dans ton navigateur.