SQL Leçon 1
Les bases de données et SELECT
Ce qu'est une base de données, comment elle range les informations, et ta première requête pour les lire.
À la fin de cette leçon, tu sauras
- Comprendre tables, lignes et colonnes
- Lire toutes les colonnes ou seulement certaines avec SELECT
- Écrire une requête SQL correcte
Une base de données, c'est quoi ?
Un site qui garde des comptes, des messages ou des produits doit ranger ces informations quelque part. On utilise une base de données : un logiciel (MySQL, PostgreSQL, SQLite…) qui stocke les données de façon organisée et permet de les retrouver très vite, même s'il y en a des millions.
Les données sont rangées dans des tables, qui ressemblent à des feuilles de tableur :
- chaque colonne est une information (le nom, l'âge, la ville…) ;
- chaque ligne est un élément (un élève, un produit…).
Dans toute cette série, on utilise une table eleves. En voici un extrait (la base d'exemple des exercices en contient 7, plus une table classes et une table notes) :
id | prenom | nom | age | ville
----+--------+----------+-----+----------
1 | Léa | Martin | 18 | Chartres
2 | Tom | Bernard | 19 | Dreux
3 | Inès | Petit | 18 | Chartres
4 | Hugo | Durand | 20 | ParisLe langage SQL
Pour parler à la base, on écrit des requêtes en SQL (Structured Query Language). C'est le même langage pour presque toutes les bases de données.
SELECT : lire des données
SELECT * FROM eleves;Ça se lit presque comme une phrase : « sélectionne tout (*) depuis la table eleves ». Le résultat contient toutes les lignes et toutes les colonnes. Le point-virgule termine la requête.
Pour ne récupérer que certaines colonnes, on les liste, séparées par des virgules :
SELECT prenom, ville FROM eleves;Astuce : les mots du langage (SELECT, FROM) s'écrivent souvent en majuscules. Ce n'est pas obligatoire, mais ça permet de distinguer d'un coup d'œil le SQL des noms de tables et de colonnes.
Attention : dans une vraie application, évite SELECT *. Demander seulement les colonnes utiles est plus rapide et évite d'envoyer des données sensibles par erreur.
À toi de jouer
Écris une requête qui récupère seulement le prénom et l'âge de tous les élèves de la table eleves. N'oublie pas le point-virgule.
Cette fois, ta requête est vraiment exécutée sur une base d'exemple : le résultat s'affiche à droite pendant que tu tapes. Tu peux tout essayer, la base repart de zéro à chaque fois.
Écris une requête : elle s'exécute pendant que tu tapes, sur une base d'exemple qui repart de zéro à chaque fois.
Voir les tables de la base d'exemple
classes (3 lignes)
| id | nom |
|---|---|
| 1 | BTS SIO 1 |
| 2 | BTS SIO 2 |
| 3 | Terminale STMG |
eleves (7 lignes)
| id | prenom | nom | age | ville | classe_id |
|---|---|---|---|---|---|
| 1 | Léa | Martin | 18 | Chartres | 1 |
| 2 | Tom | Bernard | 19 | Dreux | 2 |
| 3 | Inès | Petit | 18 | Chartres | 1 |
| 4 | Hugo | Durand | 20 | Paris | 2 |
| 5 | Chloé | Lambert | 17 | Lucé | 3 |
| 6 | Nathan | Dubois | 19 | Chartres | 1 |
| 7 | Sarah | Moreau | 18 | Dreux | NULL |
notes (9 lignes)
| id | eleve_id | matiere | note |
|---|---|---|---|
| 1 | 1 | Développement | 16 |
| 2 | 1 | Réseau | 12 |
| 3 | 2 | Développement | 11 |
| 4 | 2 | Réseau | 15 |
| 5 | 3 | Développement | 18 |
| 6 | 4 | Réseau | 9 |
| 7 | 6 | Développement | 13 |
| 8 | 6 | Réseau | 14 |
| 9 | 5 | Gestion | 15 |
- La requête s'exécute sans erreur
- Le résultat contient le prénom et l'âge des 7 élèves
- La requête commence par SELECT
- Elle demande les colonnes prenom et age
- Elle lit la table eleves
- Elle n'utilise pas *
- Elle se termine par un point-virgule
Bravo, toutes les consignes sont réussies !
Bloqué ? Voir une solution
SELECT prenom, age FROM eleves;