1.3. Opérations de lecture
Une autre opération courante sur une base de données est la lecture d'opérations, avec
la requête SELECT. Celle-ci est très puissante, et nous nous contenterons ici de
l'effleurer.
Par exemple, pour sélectionner toutes les entrées d'une table donnée, cette requête
retournera toutes les colonnes (ce qui est indiqué par *) de la table genres ;
SELECT * FROM genres;
Cette requête peut être rendue plus sélective pour ne retourner qu'une certaine liste de
colonnes, par exemple :
SELECT genre_id, genre FROM genres;
Cependant, SELECT ne montre son vrai visage que lorsque l'on ajoute des contraintes
sur les données à récupérer. Elles sont indiquées après le mot clé WHERE. Par exemple,
pour sélectionner les cinquante premières entrées (en supposant que les identifiants ont
été attribués sans trou à partir de l'unité) :
SELECT * FROM genres WHERE genres.genre_id <= 50;
La fonctionnalité la plus puissante du langage SQL est la jointure, très utile dans les
applications réelles : quand un enregistrement d'une table fait référence à un
enregistrement d'une autre table par le biais de son identifiant, il est possible de
fusionner les deux lignes dans une seule requête (ce qui évite plusieurs requêtes de
sélection). Si la table des livres est définie comme ceci :
CREATE TABLE IF NOT EXISTS books (
book_id INTEGER PRIMARY KEY,
title TEXT,
author TEXT,
genre_id INTEGER
);
alors une sélection avec jointure sur les genres pour sélectionner le livre d'identifiant 1
pourra s'écrire avec l'opérateur JOIN comme :
SELECT title, author, genre
357
Une autre opération courante sur une base de données est la lecture d'opérations, avec
la requête SELECT. Celle-ci est très puissante, et nous nous contenterons ici de
l'effleurer.
Par exemple, pour sélectionner toutes les entrées d'une table donnée, cette requête
retournera toutes les colonnes (ce qui est indiqué par *) de la table genres ;
SELECT * FROM genres;
Cette requête peut être rendue plus sélective pour ne retourner qu'une certaine liste de
colonnes, par exemple :
SELECT genre_id, genre FROM genres;
Cependant, SELECT ne montre son vrai visage que lorsque l'on ajoute des contraintes
sur les données à récupérer. Elles sont indiquées après le mot clé WHERE. Par exemple,
pour sélectionner les cinquante premières entrées (en supposant que les identifiants ont
été attribués sans trou à partir de l'unité) :
SELECT * FROM genres WHERE genres.genre_id <= 50;
La fonctionnalité la plus puissante du langage SQL est la jointure, très utile dans les
applications réelles : quand un enregistrement d'une table fait référence à un
enregistrement d'une autre table par le biais de son identifiant, il est possible de
fusionner les deux lignes dans une seule requête (ce qui évite plusieurs requêtes de
sélection). Si la table des livres est définie comme ceci :
CREATE TABLE IF NOT EXISTS books (
book_id INTEGER PRIMARY KEY,
title TEXT,
author TEXT,
genre_id INTEGER
);
alors une sélection avec jointure sur les genres pour sélectionner le livre d'identifiant 1
pourra s'écrire avec l'opérateur JOIN comme :
SELECT title, author, genre
357
