初學MySQL基礎知識筆記--02
查詢部分
1> 查詢數據中所有數據:select * from 表名
2> 查詢數據中某項的數據:eg:select id,name from students;
3> 消除重復行:eg:select distinct gender from students;
(指刪除gender中重復的所在行)
*註:eg:select distinct id,gender from students;
則需要兩行都重復才不顯示,例如id均不同,則全部顯示。
Select * from 表名 where 條件;
- 比較運算符:等於=,大於>,大於等於>=,小於<,小於等於<=,不等於!=或<>
- 邏輯運算符:and,or,not
- 模糊查詢:like,%表示任意多個任意字符,_表示任意一個字符
- 範圍查詢:in表示在一個不連續的範圍內查詢,範圍放在in()括號裏面
eg:Between min and max表示在最小和最大之間的範圍
(當一句中有多個and,那麽離between最近的and是和他一起的,剩下的才是邏輯與)
- 空判斷:null與‘’:null為空,不占內存,判空為is null。‘’是指空字符串,要指向空間。
- 優先級:由高到低:小括號,not,比較運算符,邏輯運算符。
and比or先運算如果同時出現並希望先算or,要加上小括號。
聚合(5個聚合函數)
-
count(*):計算總行數,括號中寫*和列名結果是相同的
eg:select count(*) from students;//查詢學生人數
-
max(列):表示求此列的最大值
eg:select max(id) from students;//查詢編號最大值
-
min(列):表示求此列的最小值
-
sum(列):求和,此時要求數據類型
-
avg(列):求此列的平均值
借助聚合得到查詢具體內容(子查詢):
eg:select * from students where id=(select min(id) from students where isDelete=0);
分組
語法:select 列名 from 表名 group by 列名
eg:select gender,count(*) from students group by gender;
//根據性別分組表示出分別有多少人
分組後的數據篩選
Where and having:where是對原始集進行篩選,而having是對結果集分組後進行篩選。
語法:select 列1,列2,聚合… from 表名 group by 列1,列2,列3… having 列1,…聚合…
eg:select gender,count(*) from students group by gender having gender=0;
select gender,count(*)as rs from students group by gender having rs>2;(rs是對count(*)起的別名)
排序
Order by 列1 asc|desc 列2 asc|desc
(列後面不寫則默認從小到大排列)
1. asc升序,小到大
2. desc降序,由大到小
(有多個列,若前面的列同樣大,則繼續比較後面的列)
分頁
語法:select * from 表名
limit start,count
(從start開始,獲取count條數據)
做分頁:limit n*m,m
博客地址:http://www.cnblogs.com/yudanqu/
初學MySQL基礎知識筆記--02