↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 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 已于 2007 年 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)

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。