mysql 數據庫學習第二天
查詢數據(單表查詢)
查詢所有列 select * from 表名;
查詢指定列 select 字段,字段,字段 from 表名;
查詢時添加常量列 select ‘新字段‘ as ‘常量名‘ from 表名;
查詢時合並列 select (字段1+字段2)as ‘常量名‘ from 表名;註:合並的只能時相同類型的字段
查詢時去重復記錄 select distinct 字段 from 表名;
select distinct(字段)from 表名;
條件查詢
邏輯條件 and or
比較條件 > < >= <= <> between 數值1 and 數值2
判空條件 is null / is not null / =‘ ‘ / <>‘ ‘
如:查詢地址為空的學生(包括null和空字符串)
null vs 空字符串
null 表示沒有值
空字符串 表示有值!
如:判斷null
select * from 表名 where 字段 is null
模糊查詢 like
%:表示任意個字符
_: 表示一個字符
例如:查詢姓張的學生 select * from 表名 where like ‘張%’;
查詢姓李的 且名字是兩個字的 select * from 表名 where like ‘李_’;
聚合查詢 sum() avg() max() min() count()
select sum(score) as ‘score的總分‘ from 表名;
select avg(score) as ‘score的平均分‘ from 表名;
select max(score) as ‘score的最高分‘ from 表名;
select min(score) as ‘score的最低分‘ from 表名;
select count(*) from 表名; 查詢總數
註:count()函數統計的數量不包含null的數據
分頁查詢 limit 起始行,查詢幾行
總結的小規律:分頁查詢的數據的sql: select * from 表名 limit (當前頁-1)*每頁顯示多少條,每頁顯示多少條
如:第一頁 查詢第1,2條數據
select * from 表名 limit 0,2;
第二頁 查詢第3,4條數據
select * from 表名 limit 2,2;
查詢排序 (order by)
語法:order by 字段 asc/desc
asc: 順序,正序,遞增
desc: 倒序,逆序,遞減
分組查詢 (group by)
如:查詢男女的人數 (先分組,再統計人數)
select gender,count(* ) from student group by gender;
分組後篩選 (having)
如:查詢總人數大於3的性別 (先分組 再統計 最後加查詢條件 )
select gender,count(* ) from student group by gender having count(*)>3;
mysql 數據庫學習第二天