Chapter 7. 查詢

Table of Contents
7.1. 概述
7.2. 表表達式
7.2.1. FROM 子句
7.2.2. WHERE 子句
7.2.3. GROUP BYHAVING 子句
7.3. 選擇列表
7.3.1. 選擇列表項
7.3.2. 字段標簽
7.3.3. DISTINCT
7.4. 組合查詢
7.5. 行排序
7.6. LIMITOFFSET

前面的章節解釋了如何創建表,如何用數據填充它們, 以及如何操作那些數據。現在我們終于可以討論如何從數據庫中檢索數據了。

7.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 7.3 獲取更多細節。

FROM table1 是一種非常簡單的表表達式:它只讀取了一個表。 通常,表表達式可以是基本表,連接,和子查詢的復雜構造。 但你也可以省略表表達式記錄而用SELECT命令當做一個計算器:

SELECT 3 * 4;

如果選擇列表裡的表達式返回變化的結果,那麼這個東西就更有用了。 比如,你可以用這個方法調用函數:

SELECT random();