/*
語法: 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...