select條件查詢的格式如下:
select
查詢列表
from
表名where
篩選條件;
根據篩選條件可以分為以下幾類:
1.按照條件按表示式進行篩選
常用條件運算子如下:> 、<、=、!=、<>、<=、>=
2.按照邏輯表示式進行篩選
邏輯運算子的主要作用:用於連線條件表示式
& 、 || 、! 、and、or、not
3.模糊查詢
like、between and 、in、is null
①:%:代表任意多個字元
②:_:代表任意單個字元
舉個栗子:
/**查詢員工工資大於10000的員工資訊**/
select * from employees where salary > 1000;
/**查詢部門標號不等於90號的員工名和部門編號 **/
select name,department_id from employees where department_id <> 90;
/**查詢工資在1000-2000之間的員工名,工資 **/
select name,salary from employees where salary >= 1000 and salary <=2000;
/**查詢部門編號不再20-40之間或者工資高於15000員工資訊 **/
select * from employees where department_id < 20
like:
/**查詢員工名中包含a的員工資訊**/
select * from employeess where last_name like '%a%';
/**查詢員工名中第三個字元為n,第五個字元為m的員工資訊 **/
select * from employees where last_name like '__n_m%';
/**查詢員工名中第二個字元_的員工資訊**/
/**方法一:使用轉義字元"\"**/
select * from employees where last_name like '_\_%';
/**方法二:自定義轉義字元**/
select * from employees where last_name like '_$_%' escape '$';
between and 、in
/**查詢員工工資在1000-2000之間的員工資訊(包含臨界值)**/
select * from employees where salary between 1000 and 2000;
/**查詢員工工種編號為it_prog、ad_vp、ad_pres中的乙個員工名和工種編號**/
/**方法一:**/
select job_id,last_name from employees
where job_id ='it_prog' or
job_id ='ad_vp' or
job_id ='ad_pres' ;
/**方法二:**/
select job_id,last_name from employeess
where job_id in ('it_prog','ad_vp','ad_pres');
in關鍵字的特點:
1.判斷某字段的值是否屬於in列表項中的某一項
2.in列表中的值都是統一型別或者相互相容(即可以相互轉換)
is null
/**查詢員工沒有獎金的員工名和獎金率**/
select last_name,commission_pct
from employeess
where commission_pct is null;
/**查詢員工有獎金的員工名和獎金率**/
select last_name,commission_pct
from employeess
where commission_pct is not null;
安全等於 <=>
/**查詢員工工資等於10000的員工資訊**/
select * from employees where salary <=> 1000;
/**查詢員工沒有獎金的員工名和獎金率**/
select last_name,commission_pct
from employeess
where commission_pct <=> null;
正常數值的判斷null判斷可讀性
安全等於 <=>
可以判斷
可以判斷
低is null
不可以判斷
可以判斷
高
/**查詢員工號為124的員工名和部門號以及年薪**/
select
last_name,
department_id,
slary*12(1+ifnull(comission_pct,0)) as 年薪
from employees
where department_id = 124;
/**查詢employeess表中都涉及到了哪些部門編號**/
select distinct department_id from employees ;
思考題:
/**語句1:**/
select * from employees;
/**語句2:**/
select * from emplooyees
where comission_pct like '%%' and last_name like'%%';
/**語句3:**/
select * from emplooyees
where comission_pct like '%%' or last_name like'%%';
問題1:語句1和語句2查詢結果是否相同?
> 不相同,如果comission_id為null(即沒有沒有任何字元)是查詢不出來的;
> 當comission_id不可能為null時,兩者的查詢結果是相同的
問題2:語句1和語句3查詢結果是否相同
> 相同,因為last_name不可能為null值,此時即使comission_id為null也會被查詢出來。
Mysql讓select也帶上條件進行查詢
在日常生活在我們會遇到這種問題 例如我們有乙個訂單表,你想把所有的訂單進行輸出,但是有的訂單是退款訂單,有的訂單是正常訂單,而且你要把同一家公司的正常訂單的金額彙總,如果使用where判斷訂單的狀態的話,在所有訂單裡面就無法輸出退款過的訂單了,那麼就輪到我們的case when then end出場...
Mysql之SQL語句 select聯表查詢
1.連表查詢 現有表1 student 列1 d 列2 name 和 表2 score 列1 id 列2 fraction select student.name,score.fraction from student,score where student.id 1 and score.id 1 ...
SpringbootDataJpa條件查詢和分頁
public queryresponseresult findallpage int page,int size,requestdata requestdata 自定義條件查詢 定義條件匹配器 examplematcher examplematcher examplematcher.matching...