7.1. 概述

从数据库中检索数据的过程或命令叫做查询。 在 SQL 里SELECT命令用于声明查询。SELECT命令的通用语法如下:

[WITH with_queries] SELECT select_list FROM table_expression [sort_specification]

随后的几节将描述选择列表、表表达式、排序声明的细节。 WITH查询被视为最后的,因为它们是一种先进的功能。

简单的查询的形式如下:

SELECT * FROM table1;

假设有一个table1表,这条命令将从table1 中检索所有行和所有用户定义的字段。检索的方法取决于客户端应用程序。 比如,psql程序将在屏幕上显示一个 ASCII 艺术构成的表格, 客户端库将提供检索独立行和字段的函数。选择列表声明为* 表示表表达式提供的所有可用字段。 一个选择列表也可以选择可用字段的一个子集或者使用这些字段进行计算; 比如,如果table1有名为a,b, c 的字段(可能还有其它),那么你可以用下面的查询(假设 b 和 c 都是数字数据类型):

SELECT a, b + c FROM table1;

参阅第 7.3 节获取更多细节。

FROM table1是一种简单的表表达式:它只读取了一个表。 通常,表表达式可以是基本表、连接、子查询的复杂构造。 但你也可以省略表表达式而只用SELECT命令当做一个计算器:

SELECT 3 * 4;

如果选择列表里的表达式返回变化的结果,那么这个东西就更有用了。比如, 你可以用这个方法调用函数:

SELECT random();