テーブルからデータを取り出すために、テーブルは 問い合わせられます。SQLSELECT 文がこのために使用されます。この文は選択リスト (返される列のリスト部分) とテーブルリスト (データを取り出すテーブルのリスト部分)、および、省略可能な条件 (制限を指定する部分) に分けることができます。例えば、weather の全ての行を取り出すには、以下を入力します。
SELECT * FROM weather;
(ここで * は "全ての列" を意味します) 出力は、以下のようになります。
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)
対象リストには任意の式を指定することができます。例えば、以下を行うことができます。
SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather;
この結果は次のようになります。
city | temp_avg | date ---------------+----------+------------ San Francisco | 48 | 1994-11-27 San Francisco | 50 | 1994-11-29 Hayward | 45 | 1994-11-29 (3 rows)
AS 句を使用した出力列の再ラベル付けの部分に注意して下さい (省略することもできます)。
任意の論理演算子 (AND、OR、NOT) を問い合わせの条件に使用することができます。例えば以下は、San Francisco の雨天時の気象データを取り出します。
SELECT * FROM weather WHERE city = 'San Francisco' AND prcp > 0.0;
結果は次のようになります。
city | temp_lo | temp_hi | prcp | date ---------------+---------+---------+------+------------ San Francisco | 46 | 50 | 0.25 | 1994-11-27 (1 row)
最後の注意事項として、SELECT の結果をソートした形、または、重複行を除いた形で返すように指定することができます。
SELECT DISTINCT city FROM weather ORDER BY city;
city --------------- Hayward San Francisco (2 rows)
もちろん、DISTINCT および ORDER BY は単体でも使用することができます。