↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2
历史版本。 PostgreSQL 7.2 已结束支持。 请参阅 当前版本手册.

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)

最后提一句,你可以要求选择的结果按排序顺序返回,或者去掉重复的行。(为了确保不让下面的内容困扰你:DISTINCT 和 ORDER BY 可以分开使用。)

SELECT DISTINCT city
    FROM weather
    ORDER BY city;

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

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.