Les précédents chapitres ont expliqué comme créer des tables, comment les remplir avec des données et comment manipuler ces données. Maintenant, nous discutons enfin de la façon de récupérer ces données depuis la base de données.
Le processus et la commande de récupération des données sont appelés une requête. En SQL, la commande SELECT(7) est utilisée pour spécifier des requêtes. La syntaxe générale de la commande SELECT est
[WITH with_requêtes] SELECT liste_select FROM expression_table [specification_tri]
Les sections suivantes décrivent le détail de la liste de sélection, l'expression des tables et la spécification du tri. Les requêtes WITH sont traitées en dernier car il s'agit d'une fonctionnalité avancée.
Un type de requête simple est de la forme :
SELECT * FROM table1;
En supposant qu'il existe une table appelée table1, cette commande récupérera toutes les lignes et toutes les colonnes, définies par l'utilisateur, de table1. La méthode de récupération dépend de l'application cliente. Par exemple, le programme psql affichera une table, façon art ASCII, alors que les bibliothèques du client offriront des fonctions d'extraction de valeurs individuelles à partir du résultat de la requête. * comme liste de sélection signifie que toutes les colonnes de l'expression de table seront récupérées. Une liste de sélection peut aussi être un sous-ensemble des colonnes disponibles ou effectuer un calcul en utilisant les colonnes. Par exemple, si table1 dispose des colonnes nommées a, b et c (et peut-être d'autres), vous pouvez lancer la requête suivante :
SELECT a, b + c FROM table1;
(en supposant que b et c soient de type numérique). Voir la Section 7.3, « Listes de sélection » pour plus de détails.
FROM table1 est un type très simple d'expression de tables : il lit une seule table. En général, les expressions de tables sont des constructions complexes de tables de base, de jointures et de sous-requêtes. Mais vous pouvez aussi entièrement omettre l'expression de table et utiliser la commande SELECT comme une calculatrice :
SELECT 3 * 4;
Ceci est plus utile si les expressions de la liste de sélection renvoient des résultats variants. Par exemple, vous pouvez appeler une fonction de cette façon :
SELECT random();