使用 SELECT 查詢的介紹

前頁 目錄 下頁

SELECT ... FROM 的語法 選擇列表中的算式 同址別名

一個查詢是一個在數據庫中拿取數據的要求。在 SQL 中,我們使用 SELECT 指令去查詢。

在以下例子中,我們使用 s6a 這個表。

SELECT ... FROM 的語法 Top

最簡單的 SELECT 語句如下︰

SELECT <選擇列表> FROM <表的名稱>

這語句把所有在 <表的名稱> 所示的表中拿取所有記錄中的指定字段(在 <選擇列表> 標明)。輸出中各個記錄中字段的次序和該語句中  <選擇列表> 標明的次序一樣。

如果要把所有字段拿取,在 <選擇列表> 中填上「*」」。

輸出中記錄的次序和表中記錄的次序一樣。

例如︰

拿取 s6a 整個表︰
SELECT * FROM s6a
輸出︰
class_num stud_id name email clc ue phy pm cs
1 92114 Chan Wai Man, Raymond s92114@sample.edu.hk 64 55 70 64 59
2 92133

Chow Chi Ling

clchow@example.com 70 62 62 59 70
3 94302 Fung Ching Man, Mandy mandyfung@example.com 72 50 42 59 60
4 91131 Hung Wai Ming s91131@sample.edu.hk 52 48 55 39 59
5 92153 Leung King kleung@example.com 40 50 51 40 60
6 92211 Poon Kwok Fai kwokfai@testing.com.hk 59 60 70 77 75
7 91194 Sung Hing Wah, Patrick patricksung@example.com 70 72 81 69 70
8 97602 Tang Wing Chi s97602@sample.edu.hk 80 79 70 72 69
9 92145 Wong Ka Tak, Kent klkwon@example.com 35 40 52 50 42
10 93211 Yeung Chun cyeung@testing.com.hk 69 80 77 60 52
11 96374 Lai Fung Chun s96374@sample.edu.hk 78 75 69 65 61
12 94412 Chan Lai Yin cly@testing.com.hk 43 59 53 61 60
13 98832 Man Fook Wing fwman@testing.com.hk 55 77 34 40 51
14 95343 Chung Kwok Fai, Fred fredchung@example.com 72 62 53 47 50
15 97233 Lee Lai May maylee@testing.com.hk 67 71 56 60 55
 
s6a 這個表中選取字段 namestud_idcs(留意字段的次序)︰
SELECT name, stud_id, cs FROM s6a
輸出︰
name stud_id cs
Chan Wai Man, Raymond 92114 59

Chow Chi Ling

92133 70
Fung Ching Man, Mandy 94302 60
Hung Wai Ming 91131 59
Leung King 92153 60
Poon Kwok Fai 92211 75
Sung Hing Wah, Patrick 91194 70
Tang Wing Chi 97602 69
Wong Ka Tak, Kent 92145 42
Yeung Chun 93211 52
Lai Fung Chun 96374 61
Chan Lai Yin 94412 60
Man Fook Wing 98832 51
Chung Kwok Fai, Fred 95343 50
Lee Lai May 97233 55

選擇列表中的算式 Top

除了一列表的字段及字符「*」外,跟著關鍵字 SELECT<選擇列表> 也可以一列表的算式。一個算式可以是一個常數、一個字段名稱或由算術運算符(例如 +-*/)及括號連接成以上各樣的任何組合。

例如︰

列出所有中六甲班的學生的班號、姓名及五個科目的平均分︰
SELECT class_num, name, (clc + ue + pm + phy + cs) / 5 FROM s6a
輸出樣本(不同的系統可能有不同輸出)︰
class_num name Exp_3
1 Chan Wai Man, Raymond 62.4000
2

Chow Chi Ling

64.6000
3 Fung Ching Man, Mandy 56.6000
4 Hung Wai Ming 50.6000
5 Leung King 48.2000
6 Poon Kwok Fai 68.2000
7 Sung Hing Wah, Patrick 72.4000
8 Tang Wing Chi 74.0000
9 Wong Ka Tak, Kent 43.8000
10 Yeung Chun 67.6000
11 Lai Fung Chun 69.6000
12 Chan Lai Yin 55.2000
13 Man Fook Wing 51.4000
14 Chung Kwok Fai, Fred 56.8000
15 Lee Lai May 61.8000

在輸出中,系統會為 <選擇列表> 中的算式自行建立一個「字段名稱」(例如上面所示的 Exp_3)。數值(在這情況中的 Exp_3)的顯示格式和軟件有關。

同址別名 Top

有時候,我們想有一個有意義的形容性名稱,用來代表輸出中的一個字段名稱。要達到這個目的,我們可以在字段名稱後使用關鍵字 AS,然後一個新的名稱(即同址別名)。

例如︰

從表 s6a 中選取字段 namestud_idcs,以及把字段 cs 顯示為 Computer_studies
SELECT name, stud_id, cs AS computer_studies FROM s6a
輸出︰
name stud_id Computer_studies
Chan Wai Man, Raymond 92114 59

Chow Chi Ling

92133 70
Fung Ching Man, Mandy 94302 60
Hung Wai Ming 91131 59
Leung King 92153 60
Poon Kwok Fai 92211 75
Sung Hing Wah, Patrick 91194 70
Tang Wing Chi 97602 69
Wong Ka Tak, Kent 92145 42
Yeung Chun 93211 52
Lai Fung Chun 96374 61
Chan Lai Yin 94412 60
Man Fook Wing 98832 51
Chung Kwok Fai, Fred 95343 50
Lee Lai May 97233 55

同址別名通常和算式一起使用︰

列出中六甲班所有學生的班號、姓名及五個科目的平均分,以及把平均分顯示為 Average
SELECT class_num, name, (clc + ue + pm + phy + cs) / 5 AS Average FROM s6a
輸出樣本(不同的系統可能有不同輸出)︰
class_num name Average
1 Chan Wai Man, Raymond 62.4000
2

Chow Chi Ling

64.6000
3 Fung Ching Man, Mandy 56.6000
4 Hung Wai Ming 50.6000
5 Leung King 48.2000
6 Poon Kwok Fai 68.2000
7 Sung Hing Wah, Patrick 72.4000
8 Tang Wing Chi 74.0000
9 Wong Ka Tak, Kent 43.8000
10 Yeung Chun 67.6000
11 Lai Fung Chun 69.6000
12 Chan Lai Yin 55.2000
13 Man Fook Wing 51.4000
14 Chung Kwok Fai, Fred 56.8000
15 Lee Lai May 61.8000