mysql之條件查詢06

2021-10-19 17:27:52 字數 3780 閱讀 7305

對於比較簡單的語句,這裡不再列出結果,大家可以自行測試結果。

#高階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 字段列表 說明 相當於按照表中字段順序羅列表中的所有字段 字段列表 當查詢結果只...