–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;
–分頁