要从一个表中检索数据就是查询这个表. 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;
Result:
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 可以独立使用.