Chapter 4. 查询

Table of Contents
4.1. 概述
4.2. 表表达式
4.2.1. FROM 子句
4.2.2. WHERE 子句
4.2.3. GROUP BY 和 HAVING 子句
4.3. 选择列表
4.3.1. 选择列表项
4.3.2. 列标签
4.3.3. DISTINCT
4.4. 组合查询
4.5. 行排序
4.6. LIMIT 和 OFFSET

前面的章节解释了如何创建表,如何用数据填充它们, 以及如何操作那些数据。现在我们终于可以讨论如何从数据库中检索数据了。

4.1. 概述

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

SELECT select_list FROM table_expression [sort_specification]

下面几节描述选择列表,表表达式,和排序声明的细节.

最简单的查询的形式如下

SELECT * FROM table1;

假设有一个表叫做table1,这条命令将从table1中检索所有 行和所有列.(检索的方法取决于客户端应用.比如, psql 程序将在屏幕上显示一个 ASCII 艺术 图形,客户端库将提供检索独立行和列的函数.)选择列声明 * 意味着所有表表达式提供的列.一个选择列 也可以选择可选列的一个子集或者在检索它们之前对列进行计算; 比如,如果table1有叫做ab,和c的列(可能还有其他),那么 你可以用下面的查询:

SELECT a, b + c FROM table1;

(假设bc都是数字数据类型). 参阅 Section 4.3 获取更多细节。

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

SELECT 3 * 4;

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

SELECT random();