概述 ========= 从数据库中检索数据的过程或命令叫做\ *查询*\ 。在 SQL 里\ `SELECT `__\ 命令用于指定查询。 ``SELECT``\ 命令的一般语法是 .. code:: synopsis [WITH with_queries] SELECT select_list FROM table_expression [sort_specification] 下面几个小节描述选择列表、表表达式和排序声明的细节。\ ``WITH``\ 查询等高级特性将在最后讨论。 一个简单类型的查询的形式: .. code:: programlisting SELECT * FROM table1; 假设有一个表叫做\ ``table1``\ ,这条命令将\ ``table1``\ 中检索所有行和所有用户定义的列(检索的方法取决于客户端应用。例如,psql程序将在屏幕上显示一个 ASCII 形式的表格, 而客户端库将提供函数来从检索结果中抽取单个值)。 选择列表声明\ ``*``\ 意味着所有表表达式提供的列。 一个选择列表也可以选择可用列的一个子集或者在使用它们之前对列进行计算。例如,如果\ ``table1``\ 有叫做\ ``a``\ 、\ ``b``\ 和\ ``c``\ 的列(可能还有其他),那么你可以用下面的查询: .. code:: programlisting SELECT a, b + c FROM table1; (假设\ ``b``\ 和\ ``c``\ 都是数字数据类型)。 参阅\ `节 `__\ 获取更多细节。 ``FROM table1``\ 是一种非常简单的表表达式:它只读取了一个表。通常,表表达式可以是基本表、连接和子查询组成的复杂结构。 但你也可以省略整个表表达式而把\ ``SELECT``\ 命令当做一个计算器: .. code:: programlisting SELECT 3 * 4; 如果选择列表里的表达式返回变化的结果,那么这就更有用了。例如,你可以用这种方法调用函数: .. code:: programlisting SELECT random();