sql學習之條件查詢

2021-09-25 16:15:40 字數 3532 閱讀 1359

/*

語法: select

查詢列表

from

表名where

篩選條件;

分類: 一、按條件表示式篩選

簡單條件運算子:> < = != <> >= <=

二、按邏輯表示式篩選

邏輯運算子:

作用:用於連線條件表示式

&& || !

and or not

&&和and:兩個條件都為true,結果為true,反之為false

||或or: 只要有乙個條件為true,結果為true,反之為false

!或not: 如果連線的條件本身為false,結果為true,反之為false

三、模糊查詢

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:查詢員工名中第三個字元為e,第五個字元為a的員工名和工資

select

last_name,

salary

from

employees

where

last_name like '__n_l%';

#案例3:查詢員工名中第二個字元為_的員工名

select

last_name

from

employees

where

last_name like '_$_%' escape '$';

#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中的乙個員工名和工種編號

select

last_name,

job_id

from

employees

where

job_id = 'it_prot' or job_id = 'ad_vp' or job_id ='ad_pres';

#------------------

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;

#案例1:查詢有獎金的員工名和獎金率

select

last_name,

commission_pct

from

employees

where

commission_pct is not null;

#----------以下為×

select

last_name,

commission_pct

from

employees

where

salary is 12000;

#安全等於 <=>

#案例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 pk <=>

is null:僅僅可以判斷null值,可讀性較高,建議使用

<=> :既可以判斷null值,又可以判斷普通的數值,可讀性較低

SQL 條件查詢

按條件表示式 其中 意思一樣,都是不等於,建議用 邏輯表示式 and or not 模糊查詢 like between and in is null 檢視name第3個字元為n,第五個為z的記錄 select from user where name like n z between and 可以提...

SQL多條件查詢子查詢SQL多條件查詢子查詢

多條件搜尋時where 1 1並不高效,如果使用這種方法,在資料庫中會做全表查詢 對每行資料都進行掃瞄比對 會無法使用索引等優化查詢的策略,建立的索引會暫時失效。case函式 case必須和end一起使用,下接when then select 數學成績 case when math 100 then...

sql 時間條件查詢

select from table t where t.time to date aaaa,yyyy mm dd hh24 mm ss and t.timeaaaa,bbbb是字串型別 比如 aaaa 2018 04 19 00 00 00 bbbb 2018 04 20 00 00 00 to d...