1. SQL 語法基礎介紹-1

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_IDDEPARTMENT_NAMEMANAGER_ID 以及 LOCATION_ID。此表格含有七個資料列,每個資料列各代表一個部門。也可以在 SELECT 關鍵字後面列出所有資料欄來顯示表格中的所有資料欄。如以下的範例 會顯示表格中的所有資料欄位和所有資料列。
SELECT department_id, department_name, manager_id, location_id FROM departments;

選取特定資料欄
SELECT department_id,location_id FROM departments;
可以使用 SELECT 敘述句,以指定資料欄位名稱並以逗號區隔的方式來顯示表格中特定的資料 欄位。範例顯示 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。因為使用了括號,所以運算方式是先加再乘。


沒有留言:

張貼留言