Oracle筆記二

13垂涯、多表查詢:

笛卡爾積: ? ? SELECT e.empno,e.ename,e.job,e.sal,d.dname,s.grade?

? ? ? ? ? ? ? ? ? ? ? FROM emp e,dept d,salgrade s?

? ? ? ? ? ? ? ? ? ? ? WHERE e.deptno=d.deptno AND e.sal BETWEEN s.losal AND s.hisal;?

內(nèi)連接:滿足關(guān)聯(lián)條件的數(shù)據(jù)出現(xiàn)颖侄,不滿足的不出現(xiàn)。

笛卡爾積外連接:指定一張數(shù)據(jù)表中的所有數(shù)據(jù)室抽,但是沒有對應(yīng)其他表數(shù)據(jù),內(nèi)容為NULL

左外連接:關(guān)聯(lián)數(shù)據(jù)1 = 關(guān)聯(lián)數(shù)據(jù)2(+)

右外連接:關(guān)聯(lián)數(shù)據(jù)1(+) = 關(guān)聯(lián)數(shù)據(jù)2全外連接靡努;

交叉連接:SELECT * FROM emp CROSS JOIN dept;

自然連接:SELECT * FROM emp NATURAL JOIN dept;

14坪圾、統(tǒng)計函數(shù):注意在數(shù)據(jù)表中沒有數(shù)據(jù)時候,只有COUNT函數(shù)會返回結(jié)果惑朦。

SELECT COUNT(*) 人數(shù),AVG(sal) 員工平均工資,SUM(sal) 每月總支出,MAX(sal) 最高工資, MIN(sal) 最低工資 FROM emp;COUNT(*):

可以準確返回表中的全部記錄數(shù)COUNT(字段):

統(tǒng)計不為空的所有數(shù)據(jù)量COUNT(DISTINCT):消除重復數(shù)據(jù)之后的結(jié)果注意:

如果查詢不使用GROUP BY,那么SELECT子句中只允許出現(xiàn)統(tǒng)計函數(shù)兽泄,其他任何字段都不能出現(xiàn)。

e.g SELECT COUNT(*) FROM emp;? ? ? ? ? ? 正確

e.g SELECT empno,COUNT(*) FROM emp;? ? ? 錯誤注意:如果查詢中使用了GROUP BY子句漾月,那么SELECT只允許出現(xiàn)分組字段病梢、統(tǒng)計函數(shù),其他任何字段都不能出現(xiàn)。

e.g SELECT job,COUNT(*) FROM emp GROUP BY job;? ? ? ? ? 正確

e.g SELECT ename,job,COUNT(*) FROM emp GROUP BY job;? ? 錯誤注意:統(tǒng)計函數(shù)允許嵌套蜓陌,但是嵌套之后的SELECT子句里只允許出現(xiàn)嵌套函數(shù)觅彰,而不允許其他字段,包括分組字段钮热。

e.g SELECT MAX(AVG(sal)) FROM emp GROUP BY deptno;? ? ? ? ? 正確

e.g SELECT deptno,MAX(AVG(sal)) FROM emp GROUP BY deptno;? ? 錯誤

15填抬、多表查詢和分組統(tǒng)計查詢所有部門的名稱:

SELECT d.dname, COUNT(e.empno), AVG(e.sal)FROM emp e, dept dWHERE e.deptno(+) = d.deptnoGROUP BY d.dname;

查詢每個部門編號、名稱隧期、位置飒责、部門人數(shù)、平均工資:

? ? ? ? ? ? ? SELECT d.deptno, d.dname, d.loc, COUNT(e.empno), AVG(e.sal)FROM emp e, dept dWHERE e.deptno(+) = d.deptnoGROUP BY d.deptno, d.dname, d.loc;

查詢每個職位的名稱厌秒,職位的平均工資读拆,且平均工資高于2000:

? ? ? ? ? ? ?SELECT job,AVG(sal)FROM empGROUP BY jobHAVING AVG(sal)>2000;

查詢所有非銷售人員的工作名稱及從事同一工作的雇員的月工資總和,并且要求滿足從事同一工作工資合計大于5000鸵闪,顯示按照月工資的合計的升序排列:

? ? ? ? ? ? ? SELECT job,SUM(sal) sumFROM empWHERE job<>'SALESMAN'GROUP BY jobHAVING SUM(sal)>5000ORDER BY sum;

查詢所有領(lǐng)取傭金和不領(lǐng)取傭金人員人數(shù)檐晕、平均工資:

? ? ? ? ? ? ? SELECT '領(lǐng)取傭金' info, COUNT(*), AVG(sal)FROM empWHERE comm IS NOT NULLUNIONSELECT '不領(lǐng)取傭金' info, COUNT(*), AVG(sal)FROM empWHERE comm IS NULL;

16、子查詢:

在WHERE子句中執(zhí)行子查詢:統(tǒng)計公司最低工資:SELECT * FROM emp WHERE sal=(SELECT MIN(sal) FROM emp);

查找公司最早雇員:SELECT * FROM emp WHERE hiredate=(SELECT MIN(hiredate) FROM emp);

查詢與SCOTT雇員同職位同薪水的員工:SELECT * FROM emp WHERE (sal,job)=(SELECT sal,job FROM emp WHERE ename='SCOTT') AND ename<>'SCOTT';

IN操作:查詢所有經(jīng)理的薪水:SELECT * FROM emp WHERE sal IN(SELECT sal FROM emp WHERE job='MANAGER');

NOT IN操作:一定要保證子查詢的結(jié)果沒有NULL

ANY操作:=ANY功能上與IN一樣:? ? ? ? SELECT * FROM emp WHERE sal =ANY(SELECT sal FROM emp WHERE job='MANAGER');

>ANY比子查詢最小的內(nèi)容要大: SELECT * FROM emp WHERE sal >ANY(SELECT sal FROM emp WHERE job='MANAGER');

ALL大于子查詢返回值最大的: SELECT * FROM emp WHERE sal >ALL(SELECT sal FROM emp WHERE job='MANAGER');(SELECT AVG(sal) FROM emp);

在SELECT子句中執(zhí)行子查詢:實際目的進行行列轉(zhuǎn)換

在FROM子句中執(zhí)行子查詢:子查詢的效率會比表連接查詢效率高

SELECT d.deptno, d.dname, d.loc, temp.count, temp.avg

FROM dept d,(SELECT deptno, COUNT(empno) count, AVG(sal) avg FROM emp GROUP BY deptno) temp

WHERE d.deptno = temp.deptno(+);

17蚌讼、復雜查詢例子

e.g 列出薪金高于在部門30工作的所有員工薪水的員工姓名和薪金辟灰、部門名稱、部門人數(shù)篡石。

SELECT e.empno, e.sal, d.dname, temp.count

FROM emp e, dept d,(

SELECT deptno dno, COUNT(empno) count

FROM emp

GROUP BY deptno) temp

WHERE e.sal > ALL(SELECT sal FROM emp WHERE deptno=30)

AND e.deptno = d.deptno

AND d.deptno=temp.dno;

e.g 列出與“SCOTT”從事相同工作的所有員工及部門名稱芥喇、部門人數(shù)、領(lǐng)導姓名凰萨。

SELECT e.empno, e.ename, e.job, d.dname, temp.count, m.ename

FROM emp e, dept d,(

SELECT deptno dno, COUNT(empno) count

FROM emp

GROUP BY deptno) temp, emp m

WHERE e.job=(SELECT job FROM emp WHERE ename='SCOTT')

AND e.ename<>'SCOTT'

AND e.deptno=d.deptno

AND d.deptno=temp.dno

AND e.mgr=m.empno;

e.g 列出薪金比"SMITH"或"ALLEN"多的員工編號继控、姓名、部門名稱胖眷、其領(lǐng)導姓名武通、部門人數(shù)、平均工資珊搀、最高及最低工資冶忱。

SELECT e.empno, e.ename, e.sal, d.dname, m.ename, temp.count, temp.avg, temp.max, temp.min

FROM emp e, dept d, emp m,(

SELECT deptno dno, COUNT(empno) count, AVG(sal) avg, MAX(sal) max, MIN(sal) min

FROM emp GROUP BY deptno) temp

WHERE e.sal>ANY(SELECT sal FROM emp WHERE ename IN('SMITH','ALLEN'))

AND e.ename NOT IN('SMITH','ALLEN')

AND e.deptno=d.deptno

AND e.mgr=m.empno(+)

AND d.deptno=temp.dno;

e.g 列出受雇日期早于直接上級的所有員工編號、姓名境析、部門名稱囚枪、部門位置、部門人數(shù)劳淆。

SELECT e.empno, e.ename, d.dname, d.loc, temp.count

FROM emp e,emp m, dept d,(

SELECT deptno dno,COUNT(empno) count FROM emp GROUP BY deptno) temp

WHERE e.mgr=m.empno(+)

AND e.hiredate

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末链沼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子沛鸵,更是在濱河造成了極大的恐慌忆植,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異朝刊,居然都是意外死亡耀里,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門拾氓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來冯挎,“玉大人,你說我怎么就攤上這事咙鞍》抗伲” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵续滋,是天一觀的道長翰守。 經(jīng)常有香客問我,道長疲酌,這世上最難降的妖魔是什么蜡峰? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮朗恳,結(jié)果婚禮上湿颅,老公的妹妹穿的比我還像新娘。我一直安慰自己粥诫,他們只是感情好油航,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著怀浆,像睡著了一般谊囚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上执赡,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天镰踏,我揣著相機與錄音,去河邊找鬼搀玖。 笑死余境,一個胖子當著我的面吹牛驻呐,可吹牛的內(nèi)容都是我干的灌诅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼含末,長吁一口氣:“原來是場噩夢啊……” “哼猜拾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起佣盒,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤挎袜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盯仪,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡紊搪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了全景。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耀石。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖爸黄,靈堂內(nèi)的尸體忽然破棺而出滞伟,到底是詐尸還是另有隱情,我是刑警寧澤炕贵,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布梆奈,位于F島的核電站,受9級特大地震影響称开,放射性物質(zhì)發(fā)生泄漏亩钟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一钥弯、第九天 我趴在偏房一處隱蔽的房頂上張望径荔。 院中可真熱鬧,春花似錦脆霎、人聲如沸总处。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鹦马。三九已至,卻和暖如春忆肾,著一層夾襖步出監(jiān)牢的瞬間荸频,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工客冈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留旭从,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓场仲,卻偏偏與公主長得像和悦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子渠缕,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容