Questionner une table

Pour retrouver les données d'une table la commande SQL SELECT est utilisée. La commande est divisée en liste de sélection (la partie qui liste les colonnes sera retournée), liste de table (la partie qui liste les tables depuis lesquelles les données seront retrouvées), et une qualification optionnelle (la partie qui spécifie les restrictions). Par exemple, pour retrouver toutes les lignes de la table weather, tapez :

SELECT * FROM weather;
(où * affiche "toutes les colonnes") et l'affichage devrait être :
     city      | temp_lo | temp_hi | prcp |    date
---------------+---------+---------+------+------------
 San Francisco |      46 |      50 | 0.25 | 1994-11-27
 San Francisco |      43 |      57 |    0 | 1994-11-29
 Hayward       |      37 |      54 |      | 1994-11-29
(3 rows)

Vous pouvez spécifier des exepressions arbitraires dans la liste cible. par exemple, vous pouvez faire :

SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather;
ça devrait deonner :
     city      | temp_avg |    date
---------------+----------+------------
 San Francisco |       48 | 1994-11-27
 San Francisco |       50 | 1994-11-29
 Hayward       |       45 | 1994-11-29
(3 rows)
Noter comment la clause AS est utilisée pour renommer la colonne affichée (c'est optionnel).

Les opérateurs booléens arbitraires (AND, OR, et NOT) sont admis dans la qualification d'une requête. Par exemple, la suivante retrouve les jours de pluie de San Francisco :

SELECT * FROM weather
    WHERE city = 'San Francisco'
    AND prcp > 0.0;
Result:
     city      | temp_lo | temp_hi | prcp |    date
---------------+---------+---------+------+------------
 San Francisco |      46 |      50 | 0.25 | 1994-11-27
(1 row)

Enfin, vous pouvez faire une requête pour que les résultats renvoyés soient triés selon un certain ordre ou que les lignes dupliquées soient supprimées. (Ne confondez pas, DISTINCT et ORDER BY peuvent être utilisés séparément.

SELECT DISTINCT city
    FROM weather
    ORDER BY city;
     city
---------------
 Hayward
 San Francisco
(2 rows)