目录
前面的章节解释了如何创建表、如何用数据填充它们,以及如何操纵这些数据。现在我们终于可以讨论如何从数据库中检索数据了。
从数据库检索数据的过程或用于检索数据的命令称为查询。在 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都是数值数据类型)。有关更多细节请参见Section 7.3。
FROM table1是一种简单的表表达式:它只读取一个表。通常,表表达式可以是由基本表、连接和子查询组成的复杂结构。不过,你也可以完全省略表表达式,把SELECT命令当成计算器来使用:
SELECT 3 * 4;
如果选择列表中的表达式会返回变化的结果,这种用法就更有用了。例如,你可以这样调用函数:
SELECT random();