历史版本。 PostgreSQL 11 已结束支持。 2023-11-09. 请参阅 当前版本手册.
第 7 章 查询
目录
前面的章节解释了如何创建表、如何用数据填充它们,以及如何操纵这些数据。现在我们终于可以讨论如何从数据库中检索数据了。
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();