以下資料取自http://sqlcourse2.com/

 

SQL 裡面最常用的命令是 SELECT 語句,用於檢索資料。

SELECT 語法中有五部份,但只有 FROM 這部份一定要存在。

SELECT 語法:

SELECT [ALL | DISTINCT] column1[,column2]
FROM table1[,table2]
[WHERE "conditions"]
[GROUP BY "column-list"]
[HAVING "conditions]
[ORDER BY "column-list" [ASC | DESC] ]

簡單說明:

SELECT 欄位名1, 欄位名2
FROM 資料表名稱
WHERE 欄位名1 > 1000;

你可以列出想要得到的很多個欄位名稱,或是使用 * (星號)來選取全部的欄位資料。 如果你是以欄位名稱下指令,那麼傳回資料是以所列的順序為準。

* FROM 指定資料來源(資料表),這部份是一定要鍵入。

*WHERE 語句 (選項) 判斷各筆資料是否合乎條件,符合條件的筆數才會被傳回。

Example:

SELECT name, age, salary
FROM employee
WHERE age > 50;

以上語句表示列出 employee 資料表中的 name, age, salary 三欄位,條件為 age 欄記錄大於 50。

 

Note: 在一些資料系統中,要以 ; (分號)做結尾,這時系統才知道要執行它。

比較運算子
= 等於
> 大於
< 小於
>= 大或等於
<= 小或等於
<> or != 不相同
LIKE 相似(用於字串部份搜尋)

* LIKE 補充資料

Example:

SELECT name, title, dept
FROM employee
WHERE title LIKE 'Pro%';

以上語句:列出 employee 資料表中的 name, title, dept 三欄位資料,條件為 title 欄是符合以 "Pro" 開頭的資料。

 

關鍵字 ALL and DISTINCT 配合select 語句, ALL (內定,無需再指定)。"distinct" 只傳唯一值的記錄(會忽略重覆的資料)。如果你要剔除重覆資料,那麼在 "SELECT" 後加入 DISTINCT:

For example:

SELECT DISTINCT age
FROM employee_info;

傳回表中所有的 age (年齡層),而且都只列出一次。

"ALL" 將傳回所有記錄筆中的 age ,如果有兩位相同年齡,也會列出兩次。"ALL" 是內定值,你無需特別再鍵入。

Note: 以下個表為範例資料表

Tutorial Tables
items_ordered
customers

練習問題:

1)從資料表: items_ordered 中選取出 customerid 為 10449者,要顯示的欄位為 customerid, item, and price 。

2) 從資料表: items_ordered 取出符合 Tent 的資料。

3) 從資料表: items_ordered 中取出 customerid, order_date, item 資料, 只要是 item 欄位中以 "S" 開頭者。

4)從資料表: items_ordered 中只列出 items 欄位唯一值的資料。

 

解答