pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
要从表中检索数据,就要查询该表。 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)
最后提一句,你可以要求选择的结果按排序顺序返回,或者去掉重复的行。(为了确保不让下面的内容困扰你:DISTINCT 和 ORDER BY 可以分开使用。)
SELECT DISTINCT city
FROM weather
ORDER BY city;
city
---------------
Hayward
San Francisco
(2 rows)
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。