历史版本。 PostgreSQL 7.4 已结束支持。 请参阅 当前版本手册.
2.5. 查询表 #
要从表中检索数据,就要查询该表。SQL的SELECT语句就是用来做这件事的。该语句分为选择列表(列出要返回的列)、表列表(列出从哪些表中检索数据)以及可选的限定条件(指定限制条件的部分)。例如,要检索表
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)。例如,下面的查询检索旧金山在下雨天的天气:
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 DISTINCT city
FROM weather
ORDER BY city;
city --------------- Hayward San Francisco (2 rows)
当然,DISTINCT 和 ORDER BY 也可以分开使用。