亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

MySQL中7個(gè)查詢命令的優(yōu)先級(jí):

FROM --> WHERE --> GROUP BY --> HAVING -->SELECT --> ORDER BY --> LIMIT

=======================================================================

在MySQL中執(zhí)行查詢命令時(shí)會(huì)自動(dòng)創(chuàng)建臨時(shí)表

什么是臨時(shí)表,及特點(diǎn):

  1. 由[查詢命令]在內(nèi)存中生成虛擬表,被稱為臨時(shí)表
  2. 當(dāng)前查詢命令執(zhí)行完畢后,MySQL服務(wù)器自動(dòng)的將上一個(gè)查詢命令生成的臨時(shí)表自動(dòng)銷毀處理
  3. 每一個(gè)查詢命令操作的是上一個(gè)查詢命令生成的臨時(shí)表,除了[FROM] 命令 (因?yàn)樗肋h(yuǎn)第一個(gè)執(zhí)行)
  4. 臨時(shí)報(bào)名稱就是硬盤上表文件名
  5. 在一個(gè)查詢語(yǔ)句結(jié)束后,用戶看到的臨時(shí)表只能是查詢語(yǔ)句中最后一個(gè)查詢命令生成的臨時(shí)表

=======================================================================

FROM查詢命令:

  1. FROM命令作用,將硬盤上的表文件加載到內(nèi)存中生成一個(gè)臨時(shí)表
  2. MySQL服務(wù)器存在7個(gè)查詢命令,在一個(gè)查詢語(yǔ)句執(zhí)行時(shí),永遠(yuǎn)第一個(gè)執(zhí)行的查詢命令是FROM {FROM SELECT }

=======================================================================

WHERE命令:

-----循環(huán)遍歷臨時(shí)表中每一個(gè)數(shù)據(jù)行,遍歷時(shí)每次只會(huì)取得一個(gè)數(shù)據(jù)行來(lái)判斷當(dāng)前數(shù)據(jù)行是否滿足定位條件.在循環(huán)遍歷結(jié)束后,WHERE命令將所有滿足條件的數(shù)據(jù)行讀取出來(lái)生成一個(gè)全新的臨時(shí)表

-----WHERE命令在FROM命令只會(huì)執(zhí)行,因此操作的是FROM生成的臨時(shí)表1

循環(huán)遍歷臨時(shí)表的所有數(shù)據(jù)行,每次讀取一個(gè)數(shù)據(jù)行判斷是否滿足定位條件

在循環(huán)結(jié)束后,WHERE命令將所有滿足定位條件的數(shù)據(jù)行讀取出來(lái)保存到一個(gè)全新的臨時(shí)表

=======================================================================

GROUP BY 查詢命令:

  1. GROUP BY查詢命令被稱為[分組查詢命令]
  2. 執(zhí)行優(yōu)先級(jí):FROM --->WHERE ----> GROUP BY------>SELECT
  3. 書寫格式:

SELECT 字段名 , 聚合函數(shù)

FROM 表名

WHERE 數(shù)據(jù)行定位條件

GROUP BY 分組字段

作用:

首先根據(jù)[分組字段]內(nèi)容對(duì)臨時(shí)表數(shù)據(jù)進(jìn)行分類.

然后將具有相同特征的數(shù)據(jù)行保存到一個(gè)臨時(shí)表中.

七個(gè)查詢命令中,只有GROUP BY在執(zhí)行完畢后才有可能生成多個(gè)臨時(shí)表.

=======================================================================

HAVING 查詢命令

  1. 執(zhí)行的優(yōu)先級(jí): FROM --> WHERE --> GROUP BY --> HAVING --> SELECT
  2. 書寫規(guī)則:

HAVING 就是GROUP BY 跟班小弟

①只有GROUP BY出現(xiàn)的時(shí)候,HAVING 才有機(jī)會(huì)出現(xiàn),他不會(huì)獨(dú)立出現(xiàn)在查詢語(yǔ)句

②出現(xiàn)的時(shí)候,必須出現(xiàn)在GROUP BY 后面

作用:

對(duì)GROUP BY生成的臨時(shí)表進(jìn)行[統(tǒng)計(jì)分析],將不滿足條件的臨時(shí)表從內(nèi)存中進(jìn)行銷毀。HAVING任務(wù)是銷毀掉內(nèi)存中臨時(shí)表.

HAVING通常與聚合函數(shù)共同使用;

=======================================================================

WHERE 與 HAVING的區(qū)別:

WHERE 命令執(zhí)行完畢后,將滿足條件數(shù)據(jù)行讀取出來(lái)生成一個(gè)全新的臨時(shí)表

HAVING命令執(zhí)行時(shí),負(fù)責(zé)將GROUP BY生成的臨時(shí)表中不滿足條件的臨時(shí)表進(jìn)行銷毀

-----------------------------------------------------------------------------------------------------------------

WHERE每次操作一個(gè)數(shù)據(jù)行,因此WHERE后邊的判斷條件不能使用聚合函數(shù)

HAVING每次操作的是一個(gè)臨時(shí)表,因此HAVING后面應(yīng)該使用聚合函數(shù)作為判斷條件

-----------------------------------------------------------------------------------------------------------------

WHERE命令必須聲明在GROUP BY 前方

HAVING命令必須生命在GROUP BY后方

=======================================================================

SELECT行為特征:

  1. 如果SELECT操作的臨時(shí)表由(FROM或者WHERE)提供,此時(shí)SELECT像切蛋糕一樣將制定字段所有的內(nèi)容讀取出來(lái),組成一個(gè)全新的臨時(shí)表
  2. 如果SELECT操作的臨時(shí)表由(GROUP BY 或者 HAVING)提供,此時(shí)SELECT可能面對(duì)多個(gè)臨時(shí)表,SELECT將會(huì)一次操作每一個(gè)臨時(shí)表.在操作某一個(gè)臨時(shí)表時(shí),只會(huì)讀取指定字段的[第一行數(shù)據(jù)],然后將從多個(gè)臨時(shí)表讀取內(nèi)容組成一個(gè)全新的臨時(shí)表.

SELECT 操作的是GROUP BY 提供的臨時(shí)表,此時(shí)讀取的字段內(nèi)容應(yīng)該能表示當(dāng)前臨時(shí)表所有數(shù)據(jù)共同特征,因此此時(shí)SELECT讀取字段一般都是GROUP BY所采用分組字段

=======================================================================

ORDER BY 查詢命令

  1. 執(zhí)行優(yōu)先級(jí): FROM --> WHERE --> GROUP BY -->HAVING --> SELECT -->ORDER BY
  2. 作用:

對(duì)[SELECT生成臨時(shí)表]中數(shù)據(jù)進(jìn)行排序,將排序后的數(shù)據(jù)行組成一個(gè)全新的臨時(shí)表展示出來(lái);

=======================================================================

LIMIT 查詢命令

執(zhí)行優(yōu)先級(jí):

FROM --> WHERE --> GROUP BY --> HAVING --> SELECT --> ORDER BY --> LIMIT

書寫規(guī)則 :

SELECT 字段名,聚合函數(shù)

FROM 表名

WHERE 對(duì)數(shù)據(jù)進(jìn)行定位判斷條件

GROUP BY 分組字段1 ,分組字段2….

HAVING 使用聚合函數(shù)統(tǒng)計(jì)當(dāng)前臨時(shí)表是否可以被刪除

ORDER BY 根據(jù)SELECT提供的臨時(shí)表字段進(jìn)行排序

LIMIT 起始數(shù)據(jù)行位置,截取行數(shù)

作用:

對(duì)臨時(shí)表數(shù)據(jù)進(jìn)行截取 ,將截取到的數(shù)據(jù)保存到全新的臨時(shí)表中

=======================================================================

多字段分組規(guī)則:

  1. 分組字段執(zhí)行順序?qū)τ谧罱K結(jié)果沒有任何影響,GROUP BY SEX,HOME與GROUP BY HOME,SEX得到的結(jié)果完全一樣
  2. GROUP BY一次只能根據(jù)一個(gè)分組字段進(jìn)行臨時(shí)表拆分
  3. 從第二個(gè)分組字段開始,每一個(gè)分組字段操作的臨時(shí)表時(shí)上一個(gè)分組字段生成的臨時(shí)表

=======================================================================

七個(gè)查詢命令的總結(jié):

書寫格式

SELECT 字段名,聚合函數(shù)

FROM 表名

WHERE 對(duì)數(shù)據(jù)進(jìn)行定位判斷條件

GROUP BY 分組字段1 ,分組字段2….

HAVING 使用聚合函數(shù)統(tǒng)計(jì)當(dāng)前臨時(shí)表是否可以被刪除

ORDER BY 根據(jù)SELECT提供的臨時(shí)表字段進(jìn)行排序

LIMIT 起始數(shù)據(jù)行位置,截取行數(shù)

執(zhí)行優(yōu)先級(jí):

FROM ---> WHERE ---> GROUP BY ---> HAVING ---> SELECT ---> ORDER BY ---> LIMIT

  1. 查詢語(yǔ)句找那個(gè)最先執(zhí)行的永遠(yuǎn)都是FROM
  2. 七個(gè)查詢命令中,只有FROM讀取硬盤上臨時(shí)表,剩余的查詢命令操作的只能是上一個(gè)查詢命令生成的臨時(shí)表.
  3. 七個(gè)查詢命令中,只有GROUP BY 執(zhí)行完畢后,有可能生成多個(gè)臨時(shí)表
  4. 七個(gè)查詢命令中,只有HAVING執(zhí)行完畢后不會(huì)生成新的臨時(shí)表
  5. 查詢命令執(zhí)行過程中,當(dāng)前查詢命令執(zhí)行完畢后,MySQL服務(wù)器將上一個(gè)查詢命令生成的臨時(shí)表進(jìn)行銷毀,所以用戶最終看到的臨時(shí)表只能是最后一個(gè)查詢命令生成的臨時(shí)表
  6. SELECT執(zhí)行行為與操作的臨時(shí)表的提供方不同

分享到:
標(biāo)簽:MySQL
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定