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

MySQL中的分組和多表連接詳解

 更新時(shí)間:2025年04月30日 14:49:07   作者:心動(dòng)啊121  
這篇文章主要介紹了MySQL中的分組和多表連接的相關(guān)操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧

MySQL中的分組和多表連接

一、MySQL的分組(group by )

單例函數(shù)

函數(shù)含義
lower將列內(nèi)容變成小寫
upper將列內(nèi)容變成大寫
length()長(zhǎng)度
trim去除空格
round()后加正數(shù),是針對(duì)小數(shù)的四舍五入;后加負(fù)數(shù)是針對(duì)整數(shù)的四舍五入
rand()生成一個(gè)0-1之間的隨機(jī)數(shù)
concat(a,c)拼接a,c兩列中的內(nèi)容,一列輸出
substr(a,1,2)截取a列中字符串中,第一位以及之后共兩位的字符
ifnull(A,B)判斷是否為空值,如果A是空值,則返回B,如果A不是空值,就返回查到的值

聚合函數(shù)

聚合函數(shù):輸出列的數(shù)量一般變少了,一般配合gruop by 進(jìn)行使用,一般不允許嵌套使用

函數(shù)含義
max()最大值
min()最小值
avg()平均值
sum()求和
count()計(jì)數(shù)
#  將科目進(jìn)行分組,查詢每個(gè)科目的最高值
select c_name,max(grade) from score_one group by c_name;
# 注:where后邊不能加聚合函數(shù),但是可以使用單例函數(shù),因此需要使用having來進(jìn)行數(shù)據(jù)的過濾
select department,count(department) from student_one group by department  having count(department)>2;
# 隱式分組distinct
# 表達(dá)式分組 address
select substr(address,1,3),count(substr(address,1,3)) from student_one group by substr(address,1,3);

二、多表連接(表連接會(huì)產(chǎn)生大量的數(shù)據(jù)垃圾)

  • 笛卡爾積連接(交叉連接)cross join:和使用,進(jìn)行連接沒有任何區(qū)別。是連接中的默認(rèn)連接。
  • 內(nèi)連接:inner join … on 連接條件 過濾條件:如果兩個(gè)表中有相同的列名,可以使用using(共有的列名)表示判斷條件為列名相同的情況下的連接,相同的列名只顯示一次, 代替on
  • 簡(jiǎn)單的多表連接:直接在后邊在進(jìn)行join即可
    • 將子查詢的結(jié)果作為查詢表:將查詢出的結(jié)果命名為a,再利用a 與其他表進(jìn)行連接
    • 連續(xù)兩次使用同一張表:同一張表指定不一樣的別名

自連接 :inner join,本表的外鍵鏈接本表,兩次引用使用不同的別名。

  • 相等連接和不等連接:
    • 相等連接:在on 之后使用等號(hào)(=)連接;
    • 不等連接: 使用>、<、 !=進(jìn)行連接
  • 外連接(左外連接和右外連接):
    • 左外連接:left join … on …,必須寫連接條件,以join左邊的表為主
    • 右外連接:right join … on …,必須寫連接條件,以join 右邊的表為主
    • 全外連接:使用union 實(shí)現(xiàn)左外連接和右外連接的并集,也可使用union all(不會(huì)刪除重復(fù)的值)
  • 自然連接 : natural join
  • 使用自然連接時(shí),兩張表中必須有相同的列名
  • 如果找不到相同的列名,自然連接就會(huì)變成笛卡爾積連接

到此這篇關(guān)于MySQL中的分組和多表連接的文章就介紹到這了,更多相關(guān)mysql分組和多表連接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論