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

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

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

聚合查詢

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

聚合函數(shù)

count()

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

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

sum()

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

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

avg()

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

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

max()和min()

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

select max(列名) from 表名;#返回該列最大值
select min(列名) from 表名;#返回該列最小值
  • 必須是數(shù)字,不是數(shù)字會報(bào)警告沒結(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子句可以對指定列進(jìn)行分組查詢。
功能就是將查詢到的結(jié)果中 group by 子句后的列完全相同的合并在一起。

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

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

having 子句

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

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

聯(lián)合查詢

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

笛卡爾積

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

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

例如:

  • 當(dāng)使用笛卡爾積的表含有主外鍵查詢時(shí),因?yàn)槭侨帕?,必然會產(chǎn)生無效數(shù)據(jù),我們就可以使用條件查詢,但是必須要使用 表名.列名。

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

  • 可以通過給表名起別名來精簡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全顯示

自連接

自連接是指在同一張表連接自身進(jìn)行查詢。

但是必須要對表進(jìn)行起不同的別名。

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條件括號中與返回值一一進(jìn)行比較

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

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

from子句使用子查詢

在from子句中使用子查詢:子查詢語句出現(xiàn)在from子句中。
把一個(gè)子查詢當(dāng)做一個(gè)臨時(shí)表使用。

合并查詢

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

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

總結(jié) 

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

相關(guān)文章

  • MySql連接查詢方式詳解

    MySql連接查詢方式詳解

    這篇文章主要介紹了mysql連接查詢,當(dāng)查詢結(jié)果的列來源于多張表時(shí),需要將多張表連接成一個(gè)大的數(shù)據(jù)集,再選擇合適的列返回,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-09-09
  • MySql實(shí)現(xiàn)翻頁查詢功能

    MySql實(shí)現(xiàn)翻頁查詢功能

    分頁查詢在網(wǎng)頁中隨處可見,那原理是什么呢?下面簡單介紹一下基于MySql數(shù)據(jù)庫的limit實(shí)現(xiàn)方法,感興趣的朋友一起看看吧
    2019-11-11
  • Mysql查詢語句執(zhí)行過程及運(yùn)行原理分析

    Mysql查詢語句執(zhí)行過程及運(yùn)行原理分析

    這篇文章主要介紹了Mysql查詢語句執(zhí)行過程及運(yùn)行原理分析,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • MySql中特殊運(yùn)算符的使用方法總結(jié)

    MySql中特殊運(yùn)算符的使用方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于MySql中特殊運(yùn)算符的使用方法,分別介紹的是<=> 安全比較運(yùn)算符、:= 賦值的作用、@ 用戶變量以及@@ 系統(tǒng)變量,文中介紹的非常詳細(xì),需要的朋友可以參考下
    2018-09-09
  • mysql8.0?lower_case_table_names?大小寫敏感設(shè)置問題解決

    mysql8.0?lower_case_table_names?大小寫敏感設(shè)置問題解決

    在默認(rèn)情況下,這個(gè)變量是設(shè)置為0的,以保持向前兼容性,如果將該變量設(shè)置為1,則表名和數(shù)據(jù)庫名將被區(qū)分大小寫,本文主要介紹了mysql8.0?lower_case_table_names?大小寫敏感設(shè)置問題解決,感興趣的可以了解一下
    2023-09-09
  • SQLyog錯(cuò)誤號碼MySQL?plugin?caching_sha2_password?could?not?be?loaded的解決方法

    SQLyog錯(cuò)誤號碼MySQL?plugin?caching_sha2_password?could?not?

    這篇文章主要介紹了SQLyog錯(cuò)誤號碼?plugin?caching_sha2_password?could?not?be?loaded的解決方法,需要的朋友可以參考下
    2023-06-06
  • mysql替換表中的字符串的sql語句

    mysql替換表中的字符串的sql語句

    替換字段里數(shù)據(jù)內(nèi)容部分字符串,這個(gè)在替換網(wǎng)址呀什么的最經(jīng)常用了,發(fā)布一下做個(gè)筆記
    2008-06-06
  • spark rdd轉(zhuǎn)dataframe 寫入mysql的實(shí)例講解

    spark rdd轉(zhuǎn)dataframe 寫入mysql的實(shí)例講解

    今天小編就為大家分享一篇spark rdd轉(zhuǎn)dataframe 寫入mysql的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Mysql中一千萬條數(shù)據(jù)怎么快速查詢

    Mysql中一千萬條數(shù)據(jù)怎么快速查詢

    很多人在使用Mysql時(shí)沒有考慮到優(yōu)化問題,如果遇到上千萬數(shù)據(jù)量的表,查詢上千萬數(shù)據(jù)量的時(shí)候會發(fā)生什么問題,本文就來介紹一下如何快速查詢一千萬條數(shù)據(jù),感興趣的可以了解一下
    2021-12-12
  • MySQL8.0本地服務(wù)器連接不上的問題解決

    MySQL8.0本地服務(wù)器連接不上的問題解決

    一個(gè)內(nèi)網(wǎng)內(nèi)連接mysql會出現(xiàn)提示Host xxx is not allowed to connect to this MySQL server,本文主要介紹了MySQL8.0本地服務(wù)器連接不上的問題解決,感興趣的可以了解一下
    2024-01-01

最新評論

岚皋县| 崇义县| 周口市| 宣城市| 广平县| 巴南区| 阳原县| 山东省| 罗定市| 昆明市| 精河县| 深水埗区| 兰溪市| 鹿邑县| 海门市| 封丘县| 安丘市| 南靖县| 寻乌县| 三台县| 西畴县| 通许县| 瑞金市| 正阳县| 年辖:市辖区| 三穗县| 嫩江县| 沈丘县| 江永县| 泾川县| 习水县| 根河市| 砚山县| 韶关市| 淮滨县| 肃南| 陇川县| 沙雅县| 迁西县| 灯塔市| 克东县|