mysql條件查詢語句

–MySQL條件查詢語句:

–比較運算符
–select …from 表名 where …
– > 查詢大於18歲的信息

-- < 查詢小於18歲

-- <= /  >=  / !=  / =

– 邏輯運算符

--and 邏輯與
-- select * from students where age>18 and age <28;

--or 邏輯或 select * from students where age<18 or age >28;

--not 邏輯非 select * from students where not age<18 ;

–模糊查詢
–like
–%替換1個或者多個
–_替換1個
–查詢姓名中 以“小”開頭的名字select name from students where name like “小%”;
–查詢姓名中 有“小”開頭的名字select name from students where name like “%小%”;

--查詢有2個字的名字
select name from students where name like "__";


--查詢有2個字以及2個字以上的名字
select name from students where name like "__%";

--rlike
select name from students where name rlike "^周.*"; 以周開頭的

–範圍查詢
–in
select name ,age from students where age in(18,12,34); 非連續

--not in
select name ,age from students where age not in(18,12,34);除過18,12,34的

--between ...and 
select name ,age from students where age between 18 and 34; 連續的18-34;

--not between ...and
select name ,age from students where age  not between 18 and 34; 除過18-34;

–空判斷
– is null
select * from students where height is null;
– is not null
select * from students where height is not null;

–排序
–order by 字段
select * from students where (age between 18 and 40) and gender = 1 order age asc; (默認從小到大排序,有相同值時按照主鍵排序)

select * from students where (age between 18 and 40)  and gender = 1 order age desc,id desc; (默認從大到小排序,有相同的字段,按照id從大到小)

–聚合函數

--總數count
select count(*) as 男性人數 from students where gender =1;

--最大值max
select max(age) from students;

--最小值
select min(age) from students;

--求和
select sum(age) from students where gender =1;

--平均值
select avg(height) from students ;  相當於 select round(sum(age)/count(*),2) from students;

--四捨五入
select round(height,2)from students; --保留小數後兩位

–分組(和聚合函數一起用)

--group by
select gender,count(*)from students group by gender;	
select gender,max(age)from students group by gender;	計算每個性別中年齡最大的

--group_concat(name) --查詢同種性別中的姓名
select gender,group_concat(name)from students group by gender;	顯示每個組裏面的詳細信息
select gender,group_concat(name,"_",age)from students where gender =1 group by gender ;

--having
select gender,group_concat(name,"_",age)from students  group by gender having avg(age)>30;

--where 和having 的區別: where是對原始表判斷,having 是對結果進行判斷。

--查詢每組性別中人數大於兩個的信息。
select gender group_concat(name) from students group by gender having count(*)>2;

–分頁

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章