在查詢中過濾行
過濾
使用 WHERE 子句,將不滿足條件的行過濾掉。
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM??? table
[WHERE?????? condition(s)];
WHERE 子句緊隨 FROM 子句
WHERE 子句
SELECT employee_id, last_name, job_id, department_id
FROM?? employees
WHERE? department_id = 90 ;
字符和日期
字符和日期要包含在單引號中。
字符大小寫敏感,日期格式敏感。
默認的日期格式是 DD-MON-RR 。
SELECT last_name, job_id, department_id
FROM?? employees
WHERE? last_name = 'Whalen';
比較運算
SELECT last_name, salary
FROM?? employees
WHERE? salary <= 3000;
其它比較運算
BETWEEN
使用 BETWEEN 運算來顯示在一個區間內的值
SELECT last_name, salary
FROM?? employees
WHERE? salary BETWEEN 2500 AND 3500;
IN
使用 IN 運算顯示列表中的值。
SELECT employee_id, last_name, salary, manager_id
FROM?? employees
WHERE? manager_id IN (100, 101, 201);
LIKE
使用 LIKE 運算選擇類似的值
選擇條件可以包含字符或數字 :
% 代表零個或多個字符 ( 任意個字符 ) 。
_ 代表一個字符。
SELECT first_name
FROM ?? employees
WHERE? first_name LIKE 'S%';
‘%’ 和 ‘-’ 可以同時使用。
?
SELECT last_name
FROM?? employees
WHERE? last_name LIKE '_o%';
?
?
可以使用 ESCAPE 標識符選擇 ‘%’ 和 ‘_’ 符號。
ESCAPE
回避特殊符號的:使用轉義符。例如:將 [%] 轉為 [\%] 、 [_] 轉為 [\_] ,然后再加上 [ESCAPE ‘\’] 即可。
SELECT job_id
FROM?? jobs
WHERE? job_id LIKE ‘IT\_%‘ escape ‘\‘;
NULL
使用 IS (NOT) NULL 判斷空值。
SELECT last_name, manager_id
FROM?? employees
WHERE? manager_id IS NULL;
邏輯運算
AND
AND 要求并的關系為真。
SELECT employee_id, last_name, job_id, salary
FROM?? employees
WHERE? salary >=10000
AND??? job_id LIKE '%MAN%';
OR
OR 要求或關系為真。
SELECT employee_id, last_name, job_id, salary
FROM?? employees
WHERE? salary >= 10000
OR???? job_id LIKE '%MAN%';
NOT
SELECT last_name, job_id
FROM?? employees
WHERE? job_id
?????? NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP');
優先級
可以使用括號改變優先級順序
ORDER BY子句
使用 ORDER BY 子句排序
ASC ( ascend ) : 升序
DESC ( descend ) : 降序
ORDER BY 子句在 SELECT 語句的結尾。
SELECT?? last_name, job_id, department_id, hire_date
FROM???? employees
ORDER BY hire_date ;
降序排序
SELECT?? last_name, job_id, department_id, hire_date
FROM???? employees
ORDER BY hire_date DESC ;
按別名排序
SELECT employee_id, last_name, salary*12 annsal
FROM?? employees
ORDER BY annsal;
多個列排序
按照 ORDER BY 列表的順序排序。
SELECT last_name, department_id, salary
FROM?? employees
ORDER BY department_id, salary DESC;
可以使用不在 SELECT 列表中的列排序。
總結
通過本課,您應該可以完成 :
使用 WHERE 子句過濾數據
使用比較運算
使用 BETWEEN AND, IN, LIKE 和 NULL 運算
使用邏輯運算符 AND, OR 和 NOT
使用 ORDER BY 子句進行排序。
SELECT???? *|{[DISTINCT] column|expression [alias],...}
FROM?????? table
[WHERE???? condition(s)]
[ORDER BY? {column, expr, alias} [ASC|DESC]];
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
