對於比較簡單的語句,這裡不再列出結果,大家可以自行測試結果。
#高階2:條件查詢
/*語法:
select
查詢列表
from
表名where
篩選條件;
分類: 一、按條件表示式篩選
簡單條件運算子:>
<
=!=同<
>一樣 >=
<=
二、按邏輯表示式篩選
邏輯運算子:
作用:用於連線條件表示式
即&&||!或者and or not
三、模糊查詢
like
between and
inis null */
#一、按條件表示式篩選
#案例1:查詢工資》12000的員工資訊
select
*from
employees
where
salary>12000;
#案例2:查詢部門編號不等於90號的員工名和部門編號
select
last_name,
department_id
from
employees
where
department_id<
>90;
#二、按邏輯表示式篩選
#案例1:查詢工資z在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
between and
inis null | is not null
*/#1.like
/*特點:
①一般和萬用字元搭配使用
萬用字元:
% 任意多個字元,包含0個字元
_ 任意單個字元
*/#案例1:查詢員工名中包含字元a的員工資訊
select
*from
employees
where
last_name like '%a%'
;#abc
#案例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 '_$_%' escape '$'
;#escape為宣告乙個字元為轉義,或者可以直接使用last_name like '_\_%';斜槓轉義
#2.between and
/*①使用between and 可以提高語句的簡潔度
②包含臨界值
③兩個臨界值不要調換順序
*/#案例1:查詢員工編號在100到120之間的員工資訊
select
*from
employees
where
employee_id >= 120 and employee_id<=100;
#----------------------
select
*from
employees
where
employee_id between 120 and 100;
#3.in
/*含義:判斷某字段的值是否屬於in列表中的某一項
特點: ①使用in提高語句簡潔度
②in列表的值型別必須一致或相容
③in列表中不支援萬用字元
*/#案例:查詢員工的工種編號是 it_prog、ad_vp、ad_pres中的乙個員工名和工種編號
方法1:
select
last_name,
job_id
from
employees
where
job_id =
'it_prot' or job_id =
'ad_vp' or job_id =
'ad_pres'
;方法2:
select
last_name,
job_id
from
employees
where
job_id in(
'it_prot' ,'ad_vp','ad_pres');
#4、is null
/*=或<
>不能用於判斷null值
is null或is not null 可以判斷null值
*/#案例1:查詢沒有獎金的員工名和獎金率
select
last_name,
commission_pct
from
employees
where
commission_pct is null;
#is not null;可以判斷有獎金率的員工
#----------以下語句為錯誤
select
last_name,
commission_pct
from
employees
where
salary is 12000;
#error,不能這樣使用,is null是乙個組合
#----------截止
#但可以使用<=>安全等於,與is null相等,總之就是不能直接使用=號判斷null值
#案例1:查詢沒有獎金的員工名和獎金率
select
last_name,
commission_pct
from
employees
where
commission_pct <=
> null;
#案例2:查詢工資為12000的員工資訊
select
last_name,
salary
from
employees
where
salary <=
> 12000;
#is null 與 <=>的區別
is null:僅僅可以判斷null值,可讀性較高,建議使用
<=
> :既可以判斷null值,又可以判斷普通的數值,可讀性較低
5 條件查詢案例
查詢員工號為176的員工的姓名和部門號和年薪
select
last_name,
department_id,
salary*12*(1+ifnull(commission_pct,0)) as 年薪 #年薪計法可以加獎金率也可不加,看公司具體要求
from
employees;
MySql之條件查詢
高階2 條件查詢 語法 select 查詢列表 第三步執行 from 表名 第一步執行 where 篩選條件 第二步執行 分類 一 按條件表示式篩選 簡單條件運算子 二 按邏輯表示式篩選 邏輯運算子 and or not 三 模糊查詢 like between and inis null 實現 高階...
mysql之查詢條件
1 對於數字型別 status int select from student where status 23x11o66請求 如果資料庫存的是 數字型別。查詢賦值時,如果是乙個字串。例如 status 23x11o66請求 則mysql會自動從左往右擷取,直到不滿足數字型別。則把之前滿足的資料作為...
MySQL之where條件查詢
單錶查詢是mysql查詢中的一種常見的查詢方式,而where語句塊則在單錶查詢語句中起到指定查詢過濾條件的功能。語法為 select 字段列表 表示式 from table name where 條件 order by 字段列表 說明 相當於按照表中字段順序羅列表中的所有字段 字段列表 當查詢結果只...