开发快照。 PostgreSQL 20devel 尚未正式发布,内容仍可能变化。
7.1. 概述 #
从数据库中检索数据的过程或用于检索数据的命令称为查询。在 SQL 中,使用 SELECT 命令来指定查询。SELECT 命令的一般语法是
[WITHwith_queries] SELECTselect_listFROMtable_expression[sort_specification]
下面几节将介绍选择列表、表表达式和排序规范的细节。由于 WITH 查询属于高级特性,因此放在最后讨论。
一种简单查询的形式如下:
SELECT * FROM table1;
假设存在一个名为 table1 的表,则这条命令会从 table1 中检索所有行以及所有用户定义列。(具体的检索方式取决于客户端应用。例如,psql 程序会在屏幕上显示一个 ASCII 形式的表格,而客户端库则会提供从查询结果中提取单个值的函数。)选择列表说明* 表示表表达式所提供的全部列。选择列表也可以只选择部分可用列,或者利用这些列进行计算。例如,如果 table1 有名为 a、b 和 c 的列(还可能有其他列),那么可以写出下面的查询:
SELECT a, b + c FROM table1;
(假设 b 和 c 都是数值数据类型)。有关更多细节请参见第 7.3 节。
FROM table1 是一种简单的表表达式:它只读取一个表。通常,表表达式可以是由基本表、连接和子查询组成的复杂结构。不过,你也可以完全省略表表达式,把 SELECT 命令当成计算器来使用:
SELECT 3 * 4;
如果选择列表中的表达式会返回变化的结果,这种用法就更有用了。例如,你可以这样调用函数:
SELECT random();