# 進階2: 條件查詢
/*
語法
select
查詢列表
from
表名
where
篩選條件;
分類:
一、按條件表達式篩選
條件運算符:> < = != <>(也是不等) <= >=
二、按邏輯表達式篩選
邏輯運算符: && || !
and or not
三、模糊查詢
like
between and | not between and
in
is null | is not 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
department_id>110 OR department_id<90 OR salary>15000;
# 三、模糊查詢
/*
like
特點:
①一般和通配符搭配使用
通配符:
%任意多個字符,包含0個字符
_任意單個字符
between and
①包含臨界值
②使用between and 可以提高語句的簡潔性
③兩個臨界值不能調換順序
in
含義:判斷某字段的值是否屬於in列表中的某一項
特點:
①使用in提高語句簡潔度
②in列表的值類型必須一致或者兼容
is null
is not null
=或者<>不能用於判斷null值
只能用is null或者is not null來判斷null值
*/
# 1.like
# 案例1:查詢員工名中包含字符a的員工信息
SELECT
*
FROM
employees
WHERE
last_name LIKE '%a%';
#%爲通配符,字符型的值必須用單引號,不區分大小寫
# 案例2: 查詢員工名單中第三個字符爲n,第五個字符爲l的員工名和工資
SELECT
last_name,
salary
FROM
employees
WHERE
last_name LIKE '__n_l%';
#案例3: 查詢員工名中第二個字符爲_的員工名
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '_\_%';
# \ 爲轉義字符,上式也可寫爲:
# last_name LIKE '_$_%' ESCAPE ‘$’
# 用美元符號代表通配符
# 2.between and
# 案例1:查詢員工編號在100到120之間的員工信息
SELECT
*
FROM
employees
WHERE
#employee_id>=100 and employee_id<=120;
employee_id BETWEEN 100 AND 120;
# 3.in
# 案例: 查詢員工的工種編號是IT_PROG、AD_VP、AD_PRES中的一個員工名和工種編號
SELECT
last_name,
job_id
FROM
employees
WHERE
job_id IN('IT_PROG','AD_VP','AD_PRES');
#4.is null
#案例1: 查詢沒有獎金的員工名和獎金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NULL;
#案例2: 查詢有獎金的員工名和獎金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NOT NULL;
#-------------------------
#補充,安全等於
#案例1: 查詢沒有獎金的員工名和獎金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct <=> NULL;
#案例2: 查詢工資爲12000的員工名和獎金率
SELECT
last_name,
salary
FROM
employees
WHERE
salary <=> 12000;
# pk一下is null 和<=>
# is null:僅僅可以判斷NULL值,可讀性較高,建議使用
# <=> :既可以判斷null值,也可以判斷普通數值,但可讀性較低
MySQL進階2: 條件查詢
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.