#進階2:條件查詢
/*
語法:
SELECT
查詢列表
FROM
表名
WHERE
篩選條件;
分類:
一、按條件表達式篩選
條件運算符:> < = <> >= <=
二、按邏輯表達式篩選
邏輯運算符:
作用:用於連接條件表達式
&& || !
and or NOT
三、模糊查詢
LIKE beween AND
in
is NULL
*/
#一、按條件表達式篩選
#案例1:查詢工資大於12000
SELECT
*
FROM
employees
WHERE
salary > 12000;
#案例2:查詢部門標號不等於90號的員工名和部門編號
SELECT
last_name,
department_id
FROM
employees
WHERE
department_id <> 90;
#二、按邏輯表達式篩選
#案例1:查詢工資在10000-20000之間的員工名、工資以及獎金
SELECT
last_name,
salary,
commission_pct
FROM
employees
WHERE
salary >= 10000
AND salary <= 20000;
#案例2:查詢部門編號不是在90到110之間,或者工資高於15000的員工信息
SELECT
*
FROM
employees
WHERE
NOT (
department_id >= 90
AND department_id <= 110
)
OR salary >= 15000;
#三、模糊查詢
/*
LIKE
特點:①一般和通配符搭配使用
通配符
% 任意多個字符,包含0個字符
_任意單個字符
BETWEEN AND
in
is NULL| IS NOT NULL
*/
#案例1:查詢員工名中包含字符a 的員工信息
SELECT
*
FROM
employees
WHERE
last_name LIKE '%a%';
#案例2:查詢員工名中包含字符a的員工信息
SELECT
last_name,
salary
FROM
employees
WHERE
last_name LIKE '__n_l%';
#案例3:查詢員工名中第二個字符為_的員工名
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '_\_%';
#---------------------------------------------
#2 between AND
/*
①使用between and可以提高語句的簡潔度
②包含臨界值
③兩個臨界值不要調換順序*/
#案例4:查詢員工標號在100到120之間的員工信息
SELECT
*
FROM
employees
WHERE
employee_id BETWEEN 100
AND 120;
#3.IN
/*
含義:判斷某字段的值是否屬於in列表中 的某一項
特點:① 使用in提高語句簡潔度
②in列表的值類型必須一致或兼容
*/
#案例:查詢員工的公眾編號是IT_PROG、AD_PRES中的一個員工名和工種編號
SELECT
last_name,
job_id
FROM
employees
WHERE
job_id IN (
'IT_PROG',
'AD_PRES',
'AD_VP'
);
#---------------------
#4.is NULL
#案例1.查詢沒有獎金的員工名和獎金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NULL