3. SQL語法限制條件

限制所選取的資料列
可以使用 WHERE 子句來限制從查詢中傳回的資料列。WHERE 子句包含必須符合的條件,就緊接在 FROM 子句之後。若條件為真,會傳回符合該條件的資料列

SELECT *|{[DISTINCT] column|expression [alias],...} FROM table [WHERE condition(s)]

在此語法中:

WHERE 會限制只查詢符合條件的資料列

condition 是由資料欄名稱、表示式、常數以及一個比較運算子所組成

WHERE 子句可比較資料欄、字串值、算術表示式或函數中的值。由下列三種元素組成:


  • 資料欄名稱
  • 比較條件
  • 資料欄名稱、常數或數值清單


使用 WHERE 子句
SELECT employee_id, last_name, job_id, department_id FROM employees WHERE  department_id = 90;








在此範例中,SELECT 敘述句會擷取部門 90 中所有員工的員工 ID、名、工作 ID 和部門編號。

字元字串與日期
  • WHERE 子句中的字元字串與日期,一定要用單引號 (‘’) 括起來,但數字常數就不必加上單引 號。
  • 所有字元搜尋都會區分大小寫。在下列範例中,因為 EMPLOYEES 表格中混用大小寫來儲存所 有的姓氏,所以不會傳回資料列:
SELECT last_name, job_id, department_id FROM employees
WHERE last_name = 'WHALEN';


  • Oracle 資料庫會以內部的數字格式來儲存日期,分別代表世紀、年、月、日、時、分、秒。預 設的日期顯示為 DD-MON-RR。

比較條件
將一個表示式與另一個值或表示式進行比較的條件中會使用比較條件。在 WHERE 子句中使用比較條件的格式如下:
語法
... WHERE expr operator value
相關的比較條件如下表
運算式意義範例連結
等於範例
>大於範例
>=大於等於範例
<小於範例
<=小於等於範例
<>不等於範例
BETWEEN ... AND ...兩個直之間(含這兩個值)範例
IN (set)符合任一數值清單範例
LIKE符合字元樣式範例
IS NULL為空值範例
範例

... WHERE hire_date = '01-JAN-95' ... WHERE salary >= 6000
... WHERE last_name = 'Smith'

WHERE 子句中不能使用別名。
注意:符號 != 以及 ^= 也可用來代表不等於條件。






沒有留言:

張貼留言