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