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

titreanneenote
Inception20108.8
Le Parrain19729.2
Pulp Fiction19948.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

titreanneenotegenreoscar
Inception20108.8SFtrue
Le Parrain19729.2Drametrue
Pulp Fiction19948.9Crimefalse
Amélie Poulain20018.3Comédiefalse

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 :

La requête
SELECT * FROM films
Résultat · 4 lignes
titreanneenotegenreoscar
Inception20108.8SFtrue
Le Parrain19729.2Drametrue
Pulp Fiction19948.9Crimefalse
Amélie Poulain20018.3Comédiefalse

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é :

La requête
SELECT titre, note FROM films
Résultat · 4 lignes
titrenote
Inception8.8
Le Parrain9.2
Pulp Fiction8.9
Amélie Poulain8.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 :

📌 Lire des données — l'essentiel
SELECT * FROM table→ affiche toutes les colonnes
SELECT colonne1, colonne2 FROM table→ affiche seulement celles choisies
ordre des colonnes→ celui du SELECT détermine l'ordre d'affichage
Exemple complet
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.

← Tous les cours SQL