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();