1. 程式人生 > >小貝_mysql select5種子句介紹

小貝_mysql select5種子句介紹

聚合 功能 esc 2.4 排序 結果 表達 blog 介紹

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種子句介紹