Le langage SQL
Cours · NSI (terminale), chapitre 12 · terminale, spécialité numérique et sciences informatiques · le début du chapitre, la suite sur Adloun
Les bases de données relationnelles, étudiées dans le chapitre précédent, organisent l'information sous forme de tables liées entre elles. Pour interroger, modifier et structurer ces données, on utilise un langage spécialisé : le SQL (Structured Query Language). Né dans les années 1970, il est aujourd'hui le standard universel des systèmes de gestion de bases de données relationnelles (SGBDR) comme SQLite, PostgreSQL, MySQL ou Oracle.
Dans ce chapitre, nous apprenons à écrire des requêtes pour extraire des données (SELECT), à les agréger et les regrouper, à combiner plusieurs tables grâce aux jointures, puis à modifier les données (INSERT, UPDATE, DELETE) et enfin à créer la structure des tables (CREATE TABLE). Tous les exemples sont écrits en SQL standard, compatibles notamment avec SQLite.
Pour fixer les idées, nous utiliserons tout au long du chapitre une base de données de bibliothèque. Voici la table Livre qui servira de fil rouge.
| id | titre | auteur | annee | prix |
|---|---|---|---|---|
| 1 | Le Petit Prince | Saint-Exupéry | 1943 | 8 |
| 2 | 1984 | Orwell | 1949 | 10 |
| 3 | La Ferme des animaux | Orwell | 1945 | 7 |
| 4 | Fahrenheit 451 | Bradbury | 1953 | 9 |
| 5 | Le Meilleur des mondes | Huxley | 1932 | 11 |
12.1 Interroger une table : la requête SELECT
12.1.1 Sélection de colonnes
La requête SELECT est le cœur du SQL : elle permet de lire des données dans une ou plusieurs tables.
La forme la plus simple d'une requête de sélection est :
SELECT colonne1, colonne2 FROM nom_table;
Elle renvoie le contenu des colonnes indiquées pour toutes les lignes de la table. On peut remplacer la liste des colonnes par l'étoile * pour obtenir toutes les colonnes.
Pour afficher le titre et l'auteur de tous les livres :
SELECT titre, auteur FROM Livre;
Pour afficher la table entière :
SELECT * FROM Livre;
12.1.2 Filtrer les lignes avec WHERE
La clause WHERE permet de ne conserver que les lignes vérifiant une condition :
SELECT colonnes FROM table WHERE condition;
La condition combine des comparaisons (=, <>, <, >, <=, >=), des opérateurs logiques (AND, OR, NOT) et des mots-clés comme LIKE, IN ou BETWEEN.
Exercices du chapitre
- Recherche par motif corrigé
- Regroupement corrigé
- HAVING corrigé
- Problème — Catégories populaires d'une ville corrigé
- Sélection et tri corrigé
- Agrégation corrigé