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

詳解MySQL中的分組查詢與連接查詢語句

 更新時間:2016年03月24日 16:52:10   作者:GALAXY_ZMY  
這篇文章主要介紹了MySQL中的分組查詢與連接查詢語句,同時還介紹了一些統(tǒng)計函數(shù)的用法,需要的朋友可以參考下

分組查詢 group by
group by 屬性名 [having 條件表達式][ with rollup]
“屬性名 ”指按照該字段值進行分組;“having 條件表達式 ”用來限制分組后的顯示,滿足條件的結果將被顯示;with rollup 將會在所有記錄的最后加上一條記錄,該記錄是上面所有記錄的總和。

1)單獨使用
group by 單獨使用,查詢結果只顯示一個分組的一條記錄。
實例:

select * from employee group by sex;

將只顯示男女兩條記錄。

2)與group_concat()函數(shù)一起使用
每個分組中指定字段值都顯示出來
實例:

select sex,group_concat(name) from employee group by sex;

顯示結果中“女”會顯示所有sex為“女”的名字name

sex | group_concat(name)
女 | 小紅,小蘭
男 | 張三,王五,王六

3)與集合函數(shù)一起使用
實例:

select sex,count(sex) from employee group by sex;

結果:

sex | count(num)
女 | 1
男 | 3

count()為計算個數(shù)的方法。

4)與having一起使用
“having條件表達式”,可以限制輸出結果。只有滿足條件表達式的結果才顯示。
實例:

select sex,count(sex) from employee group by sex having count(sex) >= 3;

結果:

sex | count(sex)
男 | 3

“having條件表達式”作用于分組后的記錄。

5)按多字段進行分組

select * from employee group by d_id,sex;

查詢結果先按d_id分組,再按sex進行分組

6) 與with rollup一起使用
使用with rollup將會在所有記錄的最后加上一條記錄,這條記錄是上面所有記錄的總和
實例:

select sex,count(sex) from employee group by sex with rollup;

結果:

sex | count(sex)
女 | 1
男 | 5
null | 6

如果是字符串的話,比如姓名就會生成“張三,李四,王五”這種類型的結果,即name總和。

連接查詢
將兩個及兩個以上的表連接起來選取所需數(shù)據(jù)。

1)內(nèi)連接查詢:
當兩個表中具有相同意義的字段值相等時,就查詢出該條記錄。
實例:

復制代碼 代碼如下:

select num,name,employee.d_id,age,d_name from employee,department where employee.d_id = department.d_id

因字段名相同,所以取d_id字段值時最好指定哪張表的字段。

2)外連接查詢
select 屬性名列表 from 表名1 left|right join 表名2 on 表名1.屬性名1=表名2.屬性名2;
左連接查詢:
進行左連接查詢時,可以查出表名1中所指的表中所有記錄。而表名2所指表中,只能查詢出匹配的記錄。
實例:

復制代碼 代碼如下:

select num,name,employee.d_id,age,d_name from employee left join department on employee.d_id = department.d_id;

右連接查詢:
與左連接相反,可以查詢出表名2中的的所有記錄,而表名1中所指的表中,只查詢出匹配的記錄。


PS:使用集合函數(shù)查詢
集合函數(shù)包括count(),sum(),avg(),max()和min()。
1)count()函數(shù)
統(tǒng)計記錄條數(shù)
實例:

select count(*) from employee;

與group by一起使用

select d_id,count(*) from employee group by d_id;

上述語句會先分組后統(tǒng)計。

2) sum()函數(shù)
sum()函數(shù)是求和函數(shù)
實例:

select num,sum(score) from grade where num= 1001;

select num,sum(score) from grade group by num;

sum()只能計算數(shù)值類型字段。
3)avg()函數(shù)
avg()函數(shù)是求平均值函數(shù)。
實例:

select avg(age) from employee;

select course,avg(score) from group by course;

4)max(),min()函數(shù)
求最大值和最小值。
實例:
select max(age) from employee;
select num,course,max(score) from grade group by course;
對于字符串的最大值問題,max()函數(shù)是使用字符對應的ascii碼進行計算的。

相關文章

  • MySQL 一則慢日志監(jiān)控誤報的問題分析與解決

    MySQL 一則慢日志監(jiān)控誤報的問題分析與解決

    這篇文章主要介紹了MySQL 一則慢日志監(jiān)控誤報的問題分析與解決,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2021-01-01
  • MySql學習心得之存儲過程

    MySql學習心得之存儲過程

    之前總是在MSSQL上寫存儲過程,沒有在MYSQL上寫過,也基本沒有用過,今天需要用到MYSQL,研究了下,把項目的需要的存儲過程寫了一部分,寫一下工作總結。這里沒有給出數(shù)據(jù)庫結構,不討論SQL語句的細節(jié),主要探討存儲過程語法,適合有基礎的人。
    2014-06-06
  • MySQL事務的隔離性是如何實現(xiàn)的

    MySQL事務的隔離性是如何實現(xiàn)的

    最近做了一些分布式事務的項目,對事務的隔離性有了更深的認識,后續(xù)寫文章聊分布式事務。今天就復盤一下單機事務的隔離性是如何實現(xiàn)的?感興趣的可以了解一下-
    2021-09-09
  • MySQL字符集utf8修改為utf8mb4的方法步驟

    MySQL字符集utf8修改為utf8mb4的方法步驟

    這篇文章主要給大家介紹了關于MySQL字符集utf8修改為utf8mb4的方法步驟,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • Mysql計算n日留存率的實現(xiàn)

    Mysql計算n日留存率的實現(xiàn)

    本文主要介紹了Mysql計算n日留存率的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • MySQL中字段類型為longtext的值導出后顯示二進制串方式

    MySQL中字段類型為longtext的值導出后顯示二進制串方式

    這篇文章主要介紹了MySQL中字段類型為longtext的值導出后顯示二進制串方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 一篇文章帶你了解MySQL數(shù)據(jù)庫約束

    一篇文章帶你了解MySQL數(shù)據(jù)庫約束

    數(shù)據(jù)庫中要管理很多數(shù)據(jù),但是這些數(shù)據(jù)是否正確、是否非法,光靠人力來檢驗是遠遠不夠的,因此我們想讓數(shù)據(jù)庫擁有豐富的檢驗和校驗能力,所以便引入了約束,下面這篇文章主要給大家介紹了關于MySQL數(shù)據(jù)庫約束的相關資料,需要的朋友可以參考下
    2023-06-06
  • 簡單了解MYSQL數(shù)據(jù)庫優(yōu)化階段

    簡單了解MYSQL數(shù)據(jù)庫優(yōu)化階段

    這篇文章主要介紹了簡單了解MYSQL數(shù)據(jù)庫優(yōu)化階段,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Mybatis特殊字符處理的詳解

    Mybatis特殊字符處理的詳解

    這篇文章主要介紹了Mybatis特殊字符處理的詳解的相關資料,需要的朋友可以參考下
    2017-07-07
  • Oracle 和 mysql的9點區(qū)別

    Oracle 和 mysql的9點區(qū)別

    這篇文章主要介紹了Oracle 和 mysql的9點區(qū)別,需要的朋友可以參考下
    2014-04-04

最新評論

横山县| 望城县| 禹城市| 札达县| 楚雄市| 邓州市| 禄丰县| 岫岩| 平遥县| 随州市| 北辰区| 广宗县| 凉城县| 江津市| 永川市| 茌平县| 贵南县| 道孚县| 东兴市| 家居| 东莞市| 临清市| 吉隆县| 东平县| 青龙| 诏安县| 乐安县| 慈溪市| 津南区| 龙州县| 营口市| 宁河县| 鄂温| 通州区| 余干县| 广汉市| 平原县| 酒泉市| 雷波县| 侯马市| 阳信县|