SQL SELECT 敘述句的功能
SELECT 敘述句會從資料庫中擷取資訊。您可以使用 SELECT 敘述句,來執行下列功能:
- 投影 (Projection):選擇由查詢傳回的表格資料欄。視需要而定,選擇要傳回多少個資料欄
- 選擇 (Selection):選擇由查詢傳回的表格資料列。您可以使用各種條件來限制要擷取的
資料列。 - 結合 (Joining):指定不同表格之間的連結,將其中儲存的資料做結合。
基本的 SELECT 敘述句
SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;
|
一個最簡單的 SELECT 敘述句中必須含有:
- 一個SELECT子句,用來指定要顯示的資料欄
- 一個FROM子句,用來識別包含SELECT子句中列出的資料欄之表格
在此語法中:
SELECT
|
是一或多個資料欄位的清單
|
*
|
選取所有資料欄
|
DISTINCT
|
抑制重複項
|
column|expression
|
選取命名的資料欄或表示式
|
alias
|
為選取的資料欄提供不同標題
|
FROM table
|
指定包含資料欄的表格
|
注意:關鍵字、子句以及敘述句在本課程中的涵義分別是:
- 關鍵字是指個別的 SQL 元素。例如,SELECT 與 FROM 都是關鍵字。
- 子句是 SQL 敘述句的一部份。例如,SELECT employee_id, last_name, ... 即是一個子句。
- 敘述句是兩個或兩個以上的子句組合。例如,SELECT * FROM employees 即是一個 SQL 敘述句。
選取所有資料欄位
SELECT * from departments;
|
可以在 SELECT 關鍵字後面加上一個星號 (*),來顯示一個表格中的所有資料欄位。在範例中,部門表格具有四個資料欄:DEPARTMENT_ID、DEPARTMENT_NAME、MANAGER_ID 以及 LOCATION_ID。此表格含有七個資料列,每個資料列各代表一個部門。也可以在 SELECT 關鍵字後面列出所有資料欄來顯示表格中的所有資料欄。如以下的範例 會顯示表格中的所有資料欄位和所有資料列。
SELECT department_id, department_name, manager_id, location_id FROM departments;
|
選取特定資料欄
SELECT department_id,location_id FROM departments;
|
運算表示式
有時候,可能必須修改資料的顯示方式或想要執行計算,也有可能想要查看一些假設性的 案例。上述種種都可透過使用運算表示式 (Arithmetic expression) 來達成。運算表示式可包含:資料欄名稱、常數數值以及算術運算子。基本的運算式如下表:
運算式 | 說明 |
+ | 加 |
- | 減 |
* | 乘 |
/ | 除 |
注意:處理Date與TIMESTAMP資料類型時,只能使用家法運算式(+)與減法運算式(-)。
使用運算式
使用運算式
SELECT last_name, salary, salary + 300 FROM employees;
|
以上範例中使用加法運算子 (+) 計算所有增加 $300 元的員工薪資。在輸出結果中顯示一個 SALARY+300 資料欄。注意,計算出的資料欄 SALARY+300 僅供顯示,並不是 EMPLOYEES 表格中的新資料欄。
依照預設,新資料欄的名稱源自於產生該資料欄的運算,在此範例中為 salary+300。 注意:Oracle忽略算術運算子前後的空格。
運算優先順序
會先運算乘法與除法。如果表示式中的運算式優先順序相同,則是從左到右進行運算。
可以使用括號,強制先運算由括號所括住的表示式。
優先順序規則:
優先順序規則:
1. 先乘除,後加減。
2. 優先順序相同的運算子是從左到右進行運算。
3. 括號可用來置換預設的優先順序、或使敘述句更清晰明瞭。
範例1:
SELECT last_name, salary, 12*salary+100 FROM employees;
|
第一個範例顯示員工的姓氏、薪資與年撫恤金。在此範例中,將月薪乘以 12,再加上一次性的獎金 $100 元來計算年撫恤金。請注意,運算方式是先乘再加。 注意:使用括號可改變標準的優先順序,並讓敘述句更清晰明瞭。例如,範例1的表示式可寫成(12*salary)+100,但並不會改變結果。
範例2:
SELECT last_name, salary, 12*(salary+100) FROM employees;
|
使用括號可使用括號來置換優先順序的規則,以指定執行運算子的順序。第二個範例顯示員工的姓氏、薪資與年撫恤金。此範例使用下列方法計算年撫恤金:將每月的獎金 $100 元加到月薪,然後再將此一小計值乘上 12。因為使用了括號,所以運算方式是先加再乘。
沒有留言:
張貼留言