笛卡尔集基本原理,等值连接,不等值连接,外连接,自连接
1笛卡爾集基本原理
兩個(gè)表如果笛卡爾集運(yùn)算
(1)行數(shù)是兩個(gè)表行數(shù)相乘的結(jié)果
(2)列是兩個(gè)表合集
案例:
錯(cuò)誤查詢方式:
select count(e.EMPNO)
from emp e,dept d;
正確查詢方式:
select count(e.EMPNO)
from emp e,dept d
where e.deptno = d.deptno;
2.等值連接
Eg:查詢員工信息,員工號(hào),姓名,月薪,部門(mén)名稱
select e.empno,e.ename,e.sal,d.dname
from emp e,dept d
where e.deptno = d.deptno;
3.不等值連接
Eg:查詢員工信息,員工號(hào),姓名,月薪,薪水級(jí)別
select e.empno,e.ename,e.sal,s.grade
from emp e,salgrade s
where e.sal >= s.losal and e.sal <=s.hisal;(可以用between and來(lái)替換)
4.外連接
Eg:按部門(mén)統(tǒng)計(jì)員工人數(shù):部門(mén)號(hào)部門(mén)名稱各部門(mén)人數(shù)
思路:
A:求各部門(mén)的人數(shù)..要把各個(gè)部門(mén)數(shù)據(jù)劃分開(kāi)….,要分組…..
???B:各部門(mén)人數(shù),要關(guān)聯(lián)員工表(因?yàn)椴块T(mén)人數(shù)是由員工表確定的,所以還要檢索員工表)
所以需要多表查詢
現(xiàn)象一(漏掉了一個(gè)部門(mén))
select d.deptno,d.dname,count(e.empno)
from dept d,emp e
where d.deptno = e.deptno
group by d.deptno,d.dname;
分析:
我們的期望想把40號(hào)部門(mén)給統(tǒng)計(jì)出來(lái)...
40號(hào)部門(mén)沒(méi)有被統(tǒng)計(jì)出來(lái)的原因:員工表中沒(méi)有40號(hào)部門(mén)的員工...d.deptno = e.deptno (d.40 = e.40)
????????本質(zhì):等值條件不滿足...
????????外連接技術(shù)出現(xiàn)的原因
????????+左外連接:?????+號(hào)在..=號(hào)的右邊,左外連接....
????????+右外連接:?????+號(hào)在..=號(hào)的左邊,左外連接....
???????????????????????????我想把部門(mén)表的所有列都顯示出來(lái),就需要找到部門(mén)表..在對(duì)方寫(xiě)(+)
左外連接:
select d.deptno,d.dname,count(e.empno)
??????from dept d,emp e
??????where d.deptno = e.deptno(+)
??????group by d.deptno,d.dname;
總結(jié):關(guān)于(+),它在那邊就以它為標(biāo)準(zhǔn),讓它的數(shù)據(jù)都顯示。上面的截圖中的意思是e表中的都顯示,以e表為標(biāo)準(zhǔn)。e表和d表連接,因?yàn)閐.deptno在e.deptno的左邊,隨意上面的叫左外連接。
5自連接
--查詢員工信息 ,老板信息
???????????????????????????顯示:??****的老板是****
???????????????????????????
---思路1:員工信息查員工表
???????????????????????????查老板信息,還要查員工表...
???????????????????????????
---思路2員工表的老板是?老板表的員工???????????????
???????????????????????????selecte.ename, b.ename
???????????????????????????fromemp e, emp b
???????????????????????????wheree.mgr = b.empno
?
自連接案例:
select e.ename || '的老板是'||nvl(b.ename,'他自己')
from emp e,emp b
where e.mgr = b.empno(+);
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的笛卡尔集基本原理,等值连接,不等值连接,外连接,自连接的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 基金种类繁多,选择至关重要
- 下一篇: 1.子查询知识体系,单行子查询,多行子查