在查詢中過濾行
過濾
使用 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 ;
字符和日期
字符和日期要包含在單引號中。
字符大小寫敏感,日期格式敏感。
默認(rèn)的日期格式是 DD-MON-RR 。
SELECT last_name, job_id, department_id
FROM?? employees
WHERE? last_name = 'Whalen';
比較運(yùn)算
SELECT last_name, salary
FROM?? employees
WHERE? salary <= 3000;
其它比較運(yùn)算
BETWEEN
使用 BETWEEN 運(yùn)算來顯示在一個區(qū)間內(nèi)的值
SELECT last_name, salary
FROM?? employees
WHERE? salary BETWEEN 2500 AND 3500;
IN
使用 IN 運(yùn)算顯示列表中的值。
SELECT employee_id, last_name, salary, manager_id
FROM?? employees
WHERE? manager_id IN (100, 101, 201);
LIKE
使用 LIKE 運(yùn)算選擇類似的值
選擇條件可以包含字符或數(shù)字 :
% 代表零個或多個字符 ( 任意個字符 ) 。
_ 代表一個字符。
SELECT first_name
FROM ?? employees
WHERE? first_name LIKE 'S%';
‘%’ 和 ‘-’ 可以同時使用。
?
SELECT last_name
FROM?? employees
WHERE? last_name LIKE '_o%';
?
?
可以使用 ESCAPE 標(biāo)識符選擇 ‘%’ 和 ‘_’ 符號。
ESCAPE
回避特殊符號的:使用轉(zhuǎn)義符。例如:將 [%] 轉(zhuǎn)為 [\%] 、 [_] 轉(zhuǎn)為 [\_] ,然后再加上 [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;
邏輯運(yùn)算
AND
AND 要求并的關(guān)系為真。
SELECT employee_id, last_name, job_id, salary
FROM?? employees
WHERE? salary >=10000
AND??? job_id LIKE '%MAN%';
OR
OR 要求或關(guān)系為真。
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');
優(yōu)先級
可以使用括號改變優(yōu)先級順序
ORDER BY子句
使用 ORDER BY 子句排序
ASC ( ascend ) : 升序
DESC ( descend ) : 降序
ORDER BY 子句在 SELECT 語句的結(jié)尾。
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 列表中的列排序。
總結(jié)
通過本課,您應(yīng)該可以完成 :
使用 WHERE 子句過濾數(shù)據(jù)
使用比較運(yùn)算
使用 BETWEEN AND, IN, LIKE 和 NULL 運(yùn)算
使用邏輯運(yùn)算符 AND, OR 和 NOT
使用 ORDER BY 子句進(jìn)行排序。
SELECT???? *|{[DISTINCT] column|expression [alias],...}
FROM?????? table
[WHERE???? condition(s)]
[ORDER BY? {column, expr, alias} [ASC|DESC]];
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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