sql join連接 及 聚合函數

1 sql語句基礎

sql(結構化查詢語言)分爲兩個部分:DML,DDL

  • DML 數據操作語言(查詢和更新指令)
指令 含義
select 獲取數據
update 更新數據
delete 刪除數據
insert 插入數據
  • DDL 數據定義語言(create / alter / drop)
    創建/修改/刪除 database/table
    創建/刪除 index

2 聚合函數

聚合函數 count 配合 group by / having
mysql聚合函數如:count(), max(), min(), sum()等

group by 將數據庫的數據用’by’後面接的規則進行分組
having是分組(group by)後的篩選條件;
where則是在分組前篩選

select 
	activity_name, count(*) as count
from 
	draw_relation_record
GROUP BY
	activity_name
HAVING
	count(activity_name) > 4
  • select 與 group by配合使用時
    在有group by操作中,select後面接的結果集字段只有兩種:要麼就只有group by後出現的字段,要麼就是group by後出現的字段+聚合函數的組合
  • select 的內容除固定字段外,還有聚合函數時,需用group by
  • 常用的五種聚合函數:min()求列中最小數值,max()求列中最大數值,avg()求平均值,sum()求列中字段對應數值的總和,count()求列的總條數

3 join連接

sql中的連接查詢有三種方式:內連接,外連接,交叉連接

連接方式 場景
inner join 有效連接,兩張表中都有的數據
left join 有左顯示
right join 有右顯示
full join 全連接,兩張表的所有數據
cross join 兩個表進行N*M的組合, 笛卡爾積

如:

select Person.FirstName, Person.LastName, Address.City, Address.state
From Person
Left join Address
on Person.PersonId=Address.PersonId
  • on 和 where的區別
    如果查詢條件查詢後才join連接,應該把查詢條件放在ON後面;
    如果要連接完畢後才篩選,應該把條件放在where後面
發佈了13 篇原創文章 · 獲贊 0 · 訪問量 3960
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章