欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MYSQL聚合查詢、分組查詢、聯(lián)合查詢舉例詳解

 更新時間:2024年09月23日 08:31:01   作者:鴿鴿程序猿  
我們做的很多查詢都是橫向查詢,它們都是根據(jù)條件一行一行的進行判斷,而使用聚合函數(shù)查詢是縱向查詢,它是對一列的值進行計算,然后返回一個單一的值,這篇文章主要介紹了MYSQL聚合查詢、分組查詢、聯(lián)合查詢的相關(guān)資料,需要的朋友可以參考下

聚合查詢

聚合查詢就是針對表中行與行之間的查詢。

聚合函數(shù)

count()

count(列名):查詢當前列下面有多少條數(shù)據(jù)。

select count(*) from 表名;#查詢當前表有多少行
select count(列名) from 表名;#查詢該列有多少行
  • count(1),里面加個數(shù)字常量也可以達到count(*)的效果,推薦寫count(*)。
  • 使用count(列名)查詢到null時不算入行數(shù)。

sum()

把查詢到的結(jié)果相加。

select sum(列名) from 表名;#將該列所有值相加
  • 必須是數(shù)字,不是數(shù)字會報警告沒結(jié)果。
  • 使用該函數(shù)會將null不計算,不會出現(xiàn)加上null和為null的結(jié)果。

avg()

求查詢到結(jié)果的平均值。

select avg(列名/表達式) from 表名;#將該列所有值的平均數(shù)
  • 必須是數(shù)字,不是數(shù)字會報警告沒結(jié)果。
  • 使用該函數(shù)會將null那行不計算,比如1,2,null平均值為(1 + 2)/ 2 = 1.5000。

max()和min()

分別返回查到的最大值和最小值。

select max(列名) from 表名;#返回該列最大值
select min(列名) from 表名;#返回該列最小值
  • 必須是數(shù)字,不是數(shù)字會報警告沒結(jié)果。
  • null不參與。

總結(jié)

函數(shù)說明
count (列名)返回查詢到的數(shù)據(jù)的 數(shù)量
sum(列名)返回查詢到的數(shù)據(jù)的 總和,不是數(shù)字沒有意義
avg(列名)返回查詢到的數(shù)據(jù)的 平均值,不是數(shù)字沒有意義
max(列名)返回查詢到的數(shù)據(jù)的 最大值,不是數(shù)字沒有意義
min(列名)返回查詢到的數(shù)據(jù)的 最小值,不是數(shù)字沒有意義

分組查詢

group by 子句

查詢(select) 中使用 group by子句可以對指定列進行分組查詢。
功能就是將查詢到的結(jié)果中 group by 子句后的列完全相同的合并在一起。

select 列名.... from 表名 group by 列名1, 列名2;

group by 子句后也可以跟 order by子句排序。

having 子句

group by 子句進行分組以后,需要對分組結(jié)果再進行條件過濾時,不能使用 where語句,而需要用having。
因為分組結(jié)果在結(jié)果集中是臨時表,不是真是的數(shù)據(jù),where處理的事是真實數(shù)據(jù)。

select 列名.... from 表名 group by 列名1, 列名2 having 條件;

聯(lián)合查詢

聯(lián)合查詢就是將多張表聯(lián)合起來查詢,將需要的信息一起取出來。

笛卡爾積

笛卡爾積就是將表中每行與其他表的行進行全排列。

select .... from 表1,表2;

例如:

  • 當使用笛卡爾積的表含有主外鍵查詢時,因為是全排列,必然會產(chǎn)生無效數(shù)據(jù),我們就可以使用條件查詢,但是必須要使用 表名.列名。

  • 通過指定列查詢精簡結(jié)果集時也需要使用 表名.列名。

  • 可以通過給表名起別名來精簡SQL語句。

內(nèi)連接

兩種寫法:

select 列名 from 表1 as 別名1,表2 as 別名2 where 條件 and 其他條件;

select 列名 from 表1 as 別名1 join 表2 as 別名 on 條件 and 其他條件; 

外連接

外連接分為左外連接和右外連接。

如果聯(lián)合查詢,join 左側(cè)的表完全顯示我們就說是左外連接;

join右側(cè)的表完全顯示我們就說是右外連接。

select 列名 from 表1 as 別名1 right join 表2 as 別名2 on 條件;#右外連接,表2全顯示

select 列名 from 表1 as 別名1 left join 表2 as 別名2 on 條件;#左外連接,表1全顯示

自連接

自連接是指在同一張表連接自身進行查詢。

但是必須要對表進行起不同的別名。

select 列名 from 表名 as 別名1,表名 as 別名2 where 條件 and 其它條件;

select 列名 from 表名 as 別名1 join 表名 as 別名2 on 條件 and 其它條件;

子查詢

子查詢是指嵌入在其他sql語句中的select語句,也叫嵌套查詢。

select 列名 from 表名 where 列 = (select語句 );#例子

單行子查詢

作為條件的子查詢語句返回值只有一行數(shù)據(jù)。

多行子查詢

作為條件的子查詢語句返回值有多行行數(shù)據(jù)。

  • 可以使用in來處理:

  • 可以使用多列包含:
    將where條件括號中與返回值一一進行比較

  • 使用[not] exists關(guān)鍵字
select 列名 from 表名 where exists (select語句);

后面查詢語句返回結(jié)果集為空就不執(zhí)行前面的查詢語句,反之不為空執(zhí)行。

from子句使用子查詢

在from子句中使用子查詢:子查詢語句出現(xiàn)在from子句中。
把一個子查詢當做一個臨時表使用。

合并查詢

為了合并多個select的執(zhí)行結(jié)果,可以使用集合操作符 union,union all。
使用union 和union all時,前后查詢的結(jié)果集中,字段需要一致。

  • union操作符用于取得兩個結(jié)果集的并集。當使用該操作符時,
    會自動去掉結(jié)果集中的重復(fù)行。
  • union all 操作符用于取得兩個結(jié)果集的并集。當使用該操作符時,不會去掉結(jié)果集中的重復(fù)行。

總結(jié) 

到此這篇關(guān)于MYSQL聚合查詢、分組查詢、聯(lián)合查詢的文章就介紹到這了,更多相關(guān)MYSQL聚合查詢、分組查詢、聯(lián)合查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL Version確認問題(版本確認)

    MySQL Version確認問題(版本確認)

    這篇文章主要介紹了MySQL Version確認問題(版本確認),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • MySQL 外鍵約束和表關(guān)系相關(guān)總結(jié)

    MySQL 外鍵約束和表關(guān)系相關(guān)總結(jié)

    一個項目中如果將所有的數(shù)據(jù)都存放在一張表中是不合理的,比如一個員工信息,公司只有2個部門,但是員工有1億人,就意味著員工信息這張表中的部門字段的值需要重復(fù)存儲,極大的浪費資源,因此可以定義一個部門表和員工信息表進行關(guān)聯(lián),而關(guān)聯(lián)的方式就是外鍵。
    2021-06-06
  • 從入門到精通MySQL聯(lián)合查詢

    從入門到精通MySQL聯(lián)合查詢

    這篇文章主要介紹了從入門到精通MySQL聯(lián)合查詢,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2025-07-07
  • MySQL系列之七 MySQL存儲引擎

    MySQL系列之七 MySQL存儲引擎

    存儲引擎是數(shù)據(jù)庫的核心,對于mysql來說,存儲引擎是以插件的形式運行的。雖然mysql支持種類繁多的存儲引擎,但是常用的就那么幾種。這篇文章主要給大家介紹MySQL存儲引擎的相關(guān)知識,一起看看吧
    2021-07-07
  • 詳解MySQL 8.0.18命令

    詳解MySQL 8.0.18命令

    這篇文章主要介紹了MySQL 8.0.18命令,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • 關(guān)于MySQL外鍵的簡單學(xué)習(xí)教程

    關(guān)于MySQL外鍵的簡單學(xué)習(xí)教程

    這篇文章主要介紹了關(guān)于MySQL外鍵的簡單學(xué)習(xí)教程,對InnoDB引擎下的外鍵約束做了簡潔的講解,需要的朋友可以參考下
    2015-11-11
  • 如何把本地mysql遷移到服務(wù)器數(shù)據(jù)庫

    如何把本地mysql遷移到服務(wù)器數(shù)據(jù)庫

    這篇文章主要介紹了如何把本地mysql遷移到服務(wù)器數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • MySQL服務(wù)無法啟動且服務(wù)沒有報告任何錯誤的解決辦法

    MySQL服務(wù)無法啟動且服務(wù)沒有報告任何錯誤的解決辦法

    在啟動項目時,發(fā)現(xiàn)昨天能夠跑的項目今天跑不了了,一看原來是mysql數(shù)據(jù)庫出現(xiàn)了問題,下面這篇文章主要給大家介紹了關(guān)于MySQL服務(wù)無法啟動且服務(wù)沒有報告任何錯誤的解決辦法,需要的朋友可以參考下
    2023-05-05
  • linux服務(wù)器清空MySQL的history歷史記錄 刪除mysql操作記錄

    linux服務(wù)器清空MySQL的history歷史記錄 刪除mysql操作記錄

    mysql歷史記錄上可能留下了很多敏感信息,比如密碼什么的,需及時清空歷史記錄,下面分享一下inux服務(wù)器清空MySQL的history歷史記錄的方法
    2014-01-01
  • MySQL 如何使用事務(wù)

    MySQL 如何使用事務(wù)

    這篇文章主要介紹了MySQL 如何使用事務(wù),幫助大家更好的理解和學(xué)習(xí)MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-09-09

最新評論