1. 程式人生 > >Oracle 高級查詢1 關聯查詢 分組查詢

Oracle 高級查詢1 關聯查詢 分組查詢

null 函數 定義 關聯 group 顯示 tinc 查詢 求平均值

高級查詢

1.關聯查詢
作用:可以跨越多表查詢

--查詢出員工的名字和他所在部門的的名字


語法:
select 列,列,列
from 表1 join 表2
on 表1外鍵=表2主鍵

2.外聯接


左外聯[left outer join]
以關聯的左邊為準,即使右邊沒有與之匹配的記錄,則左邊的記錄也要
出現在結果集中,右邊全部以NULL值顯示。

右外聯[right outer join]
以關聯的右邊為準,即使左邊沒有與之匹配的記錄,則右邊的記錄也要
出現在結果集中,左邊全部以NULL值顯示。

3分組查詢
定義:利用內置的分組函數來查詢

所謂分組,就是看待數據的“角度”不同。
也就是把某類值相同的看做一組。

語法:
select 列名,組函數(列名)...from 表名
where 條件
group by 列
having 字句
order by 列

分組函數:
SUM([distinct] 列|表達式|值)        求和
AVG([distinct] 列|表達式|值)        求平均值
MAX(列|表達式|值)           求最大值
MIN(列|表達式|值)            求最小值
COUNT([distinct] 列|*)          求個數(包含null)


註意1:只有出現在group by 後面的列[用來做為分組條件的列],才有資格
寫在SELECT的後面,除非使用組函數進行修飾。

註意2:having 和where 都是條件
區別:
WHERE 子句中是不能使用 組函數的,因為它在GROUP BY 之前。
但是,HAVING 子句中可以使用組函數,因為它在GROUP BY 之後。

Oracle 高級查詢1 關聯查詢 分組查詢