2.5. Interroger une table

Pour retrouver les donn�es d'une table, elle est interrog�e. Une instruction SQL SELECT est utilis�e pour faire cela. L'instruction est divis�e en liste de s�lection (la partie qui liste les colonnes � retourner), une liste de tables (la partie qui liste les tables � partir desquelles 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 temps, tapez :

SELECT * FROM temps;

(o� * correspond � <<�toutes les colonnes�>>) et le r�sultat devrait �tre :

     ville     | temp_basse | temp_haute | 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 toutes les expressions arbitraires dans la liste de s�lection. Par exemple, vous pouvez faire :

SELECT ville, (temp_haute+temp_basse)/2 AS temp_moy, date FROM temps;

Cela devrait donn� :

     ville     | temp_moy |    date
---------------+----------+------------
 San Francisco |       48 | 1994-11-27
 San Francisco |       50 | 1994-11-29
 Hayward       |       45 | 1994-11-29
(3 rows)

Notez comment la clause AS est utilis�e pour renommer la sortie d'une colonne. (Ceci est optionel.)

Les op�rateurs bool�ens arbitraires (AND, OR et NOT) sont autoris�s dans la qualification d'une requ�te. Par exemple, ce qui suit recherche le temps � San Francisco les jours pluvieux :

SELECT * FROM temps
    WHERE ville = 'San Francisco'
    AND prcp > 0.0;

R�sultat :

     ville     | temp_basse | temp_haute | prcp |    date
---------------+------------+------------+------+------------
 San Francisco |         46 |         50 | 0.25 | 1994-11-27
(1 row)

Pour conclure, vous pouvez demander que les r�sultats d'une requ�te puissent �tre retourn�s tri�s ou avec les lignes en double enlev�es :

SELECT DISTINCT ville
    FROM temps
    ORDER BY ville;

     ville
---------------
 Hayward
 San Francisco
(2 rows)

DISTINCT et ORDER BY peuvent �tre utilis�s s�par�ment bien s�r.