小貝_mysql select5種子句介紹
mysql select5種子句介紹
簡要
一、五種字句
二、具體解釋五種字句
一、五種字句
where、group by、having、order by、limit
二、具體解釋五種字句
2.1、理解where子句
理解select 列1。列2… fromtable where where子句
a、 把where子句看成表達式。到table中查詢滿足表達式成立的行
b、 上述查詢語句的運行順序。先找到表table後。再運行where子句。滿足表達式後進行展示。
c、比較運算符和邏輯運算符
2.2、groupby
2.2.1、理解分組作用,適用於統計
2.2.2、與聚合函數一起適用。
max(列)。min(列)。avg(),sum(),count()
2.2.3、依照分組後。僅僅能得到每一個分組的第一條數據
2.2.4、案例 table表以及數據例如以下:
typeid
name
price
1
A1
10
2
B1
11
1
A2
12
2
B2
22
具體解釋1: select typeid,max(price) from table group by typeid
2.2.4.1、從table表中,依照typeid進行分組得到
typeid為1的數據
typeid
name
price
1
A1
10
1
A2
12
typeid為2的數據
typeid
name
price
2
B1
11
2
B2
22
2.2.4.2、從分組得到的數據中,依照聚合函數獲取各個分組特定列的值
typeid
price
1
12
2
22
具體解釋2: select typeid, name,max(price) from table group by typeid
依照具體解釋1的運行流程得到結果
typeid
name
price
1
A1
12
2
B1
22
備註: 在對照數據是否正確時,發現name有誤。
由於price最大值為12時。name為A2而不是A1。
這是由於。在分組得到的結果中,利用聚合函數max進行比較獲取最大值時,是從第一行往下比較,第一行的name為A1,往下進行比較替換的僅僅是price值。
因此。name仍然為第一行所得到的值。
2.3、having
having與where異同點:
1、having與where類似,可篩選數據;where後的表達式怎麽寫,having就怎麽寫
2、where針對表中的列發揮作用,查詢數據。having針對查詢結果中的列發揮作用,篩選數據
案例: 查找兩門及兩門以上不及格的同學的平均分
selectname,avg(score),sum(score<60) as s from stu group by name having s>=2;
2.4、orderby 與limit
1、order by 排序功能: 依照一個或多個字段對查詢結果進行升序or降序排序.默認是升序
語法: select 字段1,字段2from table order by 字段1 [asc|desc]
2、limit 對查詢結果取相應的條數
語法: select 字段1,字段2from table limit offset,n
(當中,0<=offset<總結果條數。n>0. offset為偏移量,n是指在offset的位置上取n條數據)
2.5、總結
1、語法順序:
select 字段1,字段2….. from table where子句 group by 字段 having 子句 order by 字段 [asc|desc] limit n,m;
2、運行順序
2.1、from table 找到源數據
2.2、where子句,把其看成一個表達式。在2.1的基礎上一行一行推斷表達式是否成立
2.3、group by 在2.2的基礎上,對字段進行分組,得到查詢結果
2.4、having 在2.3的基礎上。對查詢結果也是進行一行一行推斷表達式是否成立。
2.5、order by 在2.4的基礎上。對查詢結果進行排序
2.6、limit 在2.5的基礎上,取相應條數
2.7、select 在2.6的基礎上。對結果進行展示
The quieter you become,the more you are able to hear。
小貝_mysql select5種子句介紹