Lire des données avec SELECT
Les données d'une organisation vivent dans des tables : rangées de lignes, colonnes nommées. SQL est la langue pour les interroger — et la première requête qu'on apprend à écrire est aussi la plus directe : demander à voir ce qu'une table contient.
Bienvenue dans ta première leçon
Bienvenue dans Titrix ! Tu attaques ici ta toute première leçon, et on part de zéro — aucune connaissance préalable n'est nécessaire.
Le but de cette leçon est simple : apprendre à lire des données, c'est-à-dire afficher ce qui est stocké dans une base. C'est le geste le plus fondamental du SQL, celui sur lequel tout le reste se construit.
Avant d'écrire notre première requête, posons le décor avec un petit exemple. Imagine une collection de films :
Table films
| titre | annee | note |
|---|---|---|
| Inception | 2010 | 8.8 |
| Le Parrain | 1972 | 9.2 |
| Pulp Fiction | 1994 | 8.9 |
Ce tableau, en base de données, on l'appelle une table. Elle porte un nom — ici, films — et c'est par ce nom qu'on s'adresse à elle. Chaque rangée correspond à un film : c'est une ligne (tu entendras aussi le terme *enregistrement*, c'est la même chose). Et chaque colonne contient un type d'information précis : le titre, l'année de sortie, la note.
Un vrai système contient généralement plusieurs tables qui se complètent — des clients, des commandes, des produits… Mais pour bien débuter, on se concentre sur une seule table à la fois. On apprendra à les faire communiquer plus tard, quand les bases seront solides.
Pour obtenir des informations d'une table, on lui pose une question : c'est ce qu'on appelle une requête. Écrire du SQL, ce n'est rien d'autre qu'écrire des requêtes. Commençons par la plus simple.
Ce qu’on cherche à faire
Notre objectif est concret : afficher le contenu de la table films. On veut voir les films qu'elle contient, à l'écran.
Ça paraît basique, et ça l'est — mais c'est précisément le point de départ. Une fois qu'on sait afficher des données, on pourra apprendre à les filtrer, les trier, les calculer. Tout commence par savoir les lire.
Les données de départ
Voici la table films un peu plus complète, avec deux colonnes de plus : le genre, et oscar (le film a-t-il gagné un Oscar : true pour oui, false pour non). C'est elle qu'on va interroger tout au long de la leçon :
Table films
| titre | annee | note | genre | oscar |
|---|---|---|---|---|
| Inception | 2010 | 8.8 | SF | true |
| Le Parrain | 1972 | 9.2 | Drame | true |
| Pulp Fiction | 1994 | 8.9 | Crime | false |
| Amélie Poulain | 2001 | 8.3 | Comédie | false |
Cinq informations sur chacun de nos quatre films. Voyons comment afficher tout ça avec une requête.
SELECT : poser la question
En SQL, lire des données se fait avec le mot-clé SELECT, qui signifie « sélectionne ». Une requête de lecture répond à deux questions, dans cet ordre :
D'abord, qu'est-ce que je veux voir ? — c'est le rôle de SELECT, où l'on précise les colonnes. Ensuite, dans quelle table ? — c'est le rôle de FROM, qui indique où chercher.
Le cas le plus simple, c'est de vouloir tout afficher. Plutôt que de lister chaque colonne une à une, SQL propose un raccourci : l'étoile *, qui veut dire « toutes les colonnes ». Ce qui donne :
SELECT * FROM films↑ se lit : « sélectionne tout, depuis films »
L'étoile * : tout afficher
Voici ce que cette requête renvoie :
SELECT * FROM films| titre | annee | note | genre | oscar |
|---|---|---|---|---|
| Inception | 2010 | 8.8 | SF | true |
| Le Parrain | 1972 | 9.2 | Drame | true |
| Pulp Fiction | 1994 | 8.9 | Crime | false |
| Amélie Poulain | 2001 | 8.3 | Comédie | false |
On retrouve exactement la table de départ : toutes les colonnes, tous les films. C'est logique — l'étoile n'a appliqué aucun tri ni aucun filtre, elle a simplement tout pris.
Choisir ses colonnes
En pratique, on n'a pas toujours besoin de tout. Imaginons qu'on veuille seulement la liste des titres avec leur note, sans le reste.
Dans ce cas, au lieu de l'étoile, on nomme les colonnes qui nous intéressent, séparées par une virgule. On demande ainsi à SQL de ne ramener que ces deux colonnes-là, et le résultat est plus resserré :
SELECT titre, note FROM films| titre | note |
|---|---|
| Inception | 8.8 |
| Le Parrain | 9.2 |
| Pulp Fiction | 8.9 |
| Amélie Poulain | 8.3 |
Cette fois, seulement deux colonnes : exactement celles qu'on a demandées, et dans l'ordre où on les a écrites. C'est toute la souplesse du SELECT — tu choisis ce que tu veux voir.
Petit piège classique : la virgule sépare les colonnes entre elles, mais ne se met jamais juste avant le FROM. Écrire SELECT titre, note, FROM films (avec une virgule de trop) provoquerait une erreur de syntaxe.
Autre point important : le nom de colonne doit être écrit exactement comme il apparaît dans la table. Ni Titre, ni TITRE, ni title ne fonctionneront à la place de titre. Si SQL ne reconnaît pas le nom, il retourne une erreur. C'est vrai pour les colonnes, et aussi pour le nom de la table.
Le squelette de toute lecture
Tu viens de voir tes deux premières requêtes, et elles partagent la même ossature. Retiens-la, car tu la retrouveras absolument partout :
SELECT choisit les colonnes — soit l'étoile * pour toutes, soit une liste de noms. FROM choisit la table dans laquelle aller chercher.
Ce squelette, SELECT … FROM …, est le fondement de toute lecture en SQL. Tout ce que tu apprendras ensuite — filtrer des lignes, les trier, faire des calculs — viendra simplement s'ajouter autour de cette base.
Un dernier détail pratique : SQL ne fait pas de différence entre majuscules et minuscules pour les mots-clés (SELECT ou select, c'est pareil), et il ignore les espaces ou retours à la ligne en trop. Par convention, on écrit les mots-clés en majuscules : c'est plus lisible, surtout quand les requêtes s'allongent.
Récapitulatif
En résumé, pour lire des données :
SELECT titre, note FROM films💡 Bon à savoir : dans une vraie application, on évite généralement le SELECT *. On préfère nommer explicitement les colonnes dont on a besoin — c'est plus clair pour qui relit le code, et souvent plus rapide. L'étoile reste pratique pour explorer rapidement une table qu'on découvre.
Passe à la pratique
Cette leçon t'a montré la théorie. Pour maîtriser SQL, rien ne vaut la pratique : accède aux exercices et au bac à sable PostgreSQL réel.