最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MYSQL??group?by?有哪些注意事項

 更新時間:2022年07月05日 10:37:17   作者:??Java中文社群??  
這篇文章主要介紹了MYSQL??group?by?有哪些注意事項,比如我們不能在?group?by?之后添加?where?查詢語句,更多相關(guān)分享,需要的朋友可以參考下面文章內(nèi)容

前言:

注意:本文以下內(nèi)容基于 MySQL 5.7 InnoDB 數(shù)據(jù)庫引擎。

1.group by 后面不能加 where

在 MySQL 中,所有的 SQL 查詢語法要遵循以下語法順序:

  • select
  • from
  • where
  • group by
  • having
  • order by
  • limit

以上語法順序是不能前后互換的,否則報錯。比如我們不能在 group by 之后添加 where 查詢語句,否則會出現(xiàn)如下錯誤: 

 語法順序的執(zhí)行是和 MySQL 的 select 語句執(zhí)行順序相關(guān)的,select 執(zhí)行先后順序如下:

  • from 階段
  • where 階段
  • group 階段
  • having 階段
  • select 階段
  • order by 階段
  • limit 階段

注意:其中 select 比較特殊,在進行查詢語句編寫時,要寫在最前面,其余語法順序要和執(zhí)行先后順序保持一致。

2.having 或 group by 可單獨使用

having 和 group by 可以單獨使用,如下查詢所示: 

3.having 和 group by 可使用別名

**當 having 單獨使用時,它的作用和 where 類似,但又有細微的不同。**比如在 where 中不能使用別名,但 having 和 group by 卻可以別名。咱們創(chuàng)建一個測試表來演示一下,建表 SQL 如下:

drop table if exists student_score;
create table student_score(
    id int primary key auto_increment comment '主鍵',
    name varchar(250) comment '姓名',
    math decimal(4,1) comment '數(shù)學成績',
    chinese decimal(4,1) comment '語文成績'
);
insert into student_score(name,math,chinese) values('張三',50,50),('李四',80,80),('王五',90,90);

表中的數(shù)據(jù)如下圖所示: 

 當我們使用總成績別名 total 分別在 where 和 having 中使用時,查詢結(jié)果如下: 

 從上述結(jié)果可以看出,having 查詢可以使用 select 中的別名,而 where 不能使用別名。 除了 having 可以使用別名之外,group by 也可以使用別名,

如下圖所示: 

為什么where不能用別名?為having卻可以?

where 中不能使用別名,這和 MySQL 語句執(zhí)行順序有關(guān),MySQL 語句執(zhí)行順序如下:

  • from 階段
  • where 階段
  • group 階段
  • having 階段
  • select 階段
  • order by 階段
  • limit 階段

也就是說,**在執(zhí)行 where 查詢時,select 還沒執(zhí)行,因此在 where 中想要使用還未執(zhí)行的 select 中的別名是不行的。**那從上面的執(zhí)行順序可以看到,having 執(zhí)行也在 select 之前,為什么它就可以使用 select 中的別名呢?

這是因為 MySQL 在 5.7.5 之后做了擴展,允許在 having 中使用別名,官方文檔中有相應(yīng)的說明,

如下圖所示: 

 MySQL 官方文檔地址:

PS:group by 能使用別名的原理和 having 類似。

總結(jié)

SQL 語句編寫一定要遵循此先后順序:select、from、where、group by、having、order by、limit。其中 having 或 group by 都可單獨使用,并且在 MySQL 5.7.5 之后,group by 和 having 可以使用別名查詢,但 where 不能使用別名。

到此這篇關(guān)于MYSQL group by 有哪些注意事項?的文章就介紹到這了,更多相關(guān)MYSQL group by內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL鎖阻塞的深入分析

    MySQL鎖阻塞的深入分析

    這篇文章主要給大家介紹了關(guān)于MySQL鎖阻塞的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • MySQL獲取系統(tǒng)性能和狀態(tài)代碼

    MySQL獲取系統(tǒng)性能和狀態(tài)代碼

    使用MySQL獲取系統(tǒng)性能和狀態(tài)的代碼片段,由此需求的朋友可以參考下,希望對大家有所幫助
    2013-07-07
  • 如何修改mysql數(shù)據(jù)庫的max_allowed_packet參數(shù)

    如何修改mysql數(shù)據(jù)庫的max_allowed_packet參數(shù)

    本篇文章是對修改mysql數(shù)據(jù)庫的max_allowed_packet參數(shù)進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • 用VirtualBox構(gòu)建MySQL測試環(huán)境的筆記

    用VirtualBox構(gòu)建MySQL測試環(huán)境的筆記

    這篇文章主要介紹了如何用VirtualBox構(gòu)建MySQL測試環(huán)境,特分享下,方便需要的朋友
    2013-08-08
  • CentOS 7下mysql 5.7 安裝教程

    CentOS 7下mysql 5.7 安裝教程

    這篇文章主要為大家詳細介紹了CentOS 7下mysql 5.7 安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 淺談MySQL函數(shù)

    淺談MySQL函數(shù)

    這篇文章主要介紹MySQL函數(shù),主要解說數(shù)學函數(shù)、字符串函數(shù)、 時間函數(shù)、加密函數(shù),需要的朋友可以參考下面文章具體內(nèi)容
    2021-09-09
  • mysql 優(yōu)化日記

    mysql 優(yōu)化日記

    mysql 優(yōu)化日記 使用mysql的朋友可以參考下,大家知道如果mysql優(yōu)化與沒優(yōu)化性能會相差不少呢。
    2009-07-07
  • Linux下mysql異地自動備份的方法

    Linux下mysql異地自動備份的方法

    這篇文章主要介紹了Linux下mysql異地自動備份的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • mybatis-plus如何使用sql的date_format()函數(shù)查詢數(shù)據(jù)

    mybatis-plus如何使用sql的date_format()函數(shù)查詢數(shù)據(jù)

    這篇文章主要給大家介紹了關(guān)于mybatis-plus如何使用sql的date_format()函數(shù)查詢數(shù)據(jù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2023-02-02
  • MySQL流程控制語句解讀

    MySQL流程控制語句解讀

    MySQL存儲過程支持多種流程控制語句,如IF、CASE、WHILE、LOOP、REPEAT等,每種語句有特定的執(zhí)行邏輯,用于實現(xiàn)條件判斷和循環(huán)操作
    2024-11-11

最新評論

柳河县| 政和县| 原平市| 镇巴县| 永胜县| 和硕县| 高青县| 哈尔滨市| 广汉市| 平舆县| 武夷山市| 睢宁县| 长治市| 长宁区| 布尔津县| 吴桥县| 婺源县| 曲水县| 余姚市| 宁蒗| 曲水县| 特克斯县| 惠安县| 扎囊县| 睢宁县| 潜山县| 京山县| 三台县| 新郑市| 霞浦县| 玉树县| 巴马| 尼木县| 岳池县| 巫山县| 吉安县| 杭州市| 佳木斯市| 柳州市| 东明县| 河北区|