Oracle初級(jí)測(cè)試題五--多表連接

--寫(xiě)一條查詢(xún)語(yǔ)句啥么,查詢(xún)員工姓名、部門(mén)名稱(chēng)悬荣、工作地點(diǎn)?

select ename,dept.dname,dept.loc from emp,dept where emp.deptno(+) = dept.deptno;

--練習(xí)一

--1.寫(xiě)一個(gè)查詢(xún)氯迂,顯示所有員工姓名,部門(mén)編號(hào)嚼蚀,部門(mén)名稱(chēng)。

select ename,dept.deptno,dept.dname
from emp,dept
where emp.deptno(+) = dept.deptno;

--2.寫(xiě)一個(gè)查詢(xún)匾二,顯示所有工作在CHICAGO并且獎(jiǎng)金不為空的員工姓名哮独,工作地點(diǎn),獎(jiǎng)金

select ename,dept.loc,comm
from emp,dept
where emp.deptno = dept.deptno and loc in 'CHICAGO' 
and comm is not null;

--3.寫(xiě)一個(gè)查詢(xún)舟扎,顯示所有姓名中含有A字符的員工姓名,工作地點(diǎn)睹限。

select ename,dept.loc
from emp,dept
where emp.deptno = dept.deptno and ename like '%A%';

select ename,dept.loc
from emp,dept
where emp.deptno = dept.deptno and instr(ename,'A') <> 0;

select ename,dept.loc
from emp,dept
where emp.deptno = dept.deptno and instr(ename,'A') != 0;

select ename,dept.loc
from emp,dept
where emp.deptno = dept.deptno and instr(ename,'A') > 0;

--練習(xí)二

--1.查詢(xún)每個(gè)員工的編號(hào),姓名羡疗,工資染服,工資等級(jí),所在工作城市叨恨,按照工資等級(jí)進(jìn)行升序排序柳刮。

select empno,ename,sal,grade,loc
from emp,dept,salgrade
where emp.deptno = dept.deptno and sal between losal and hisal
order by sal asc;

--思考:查詢(xún)每個(gè)員工的姓名和直接上級(jí)姓名?

select worker.ename,manager.ename
from emp worker,emp manager
where worker.mgr = manager.empno(+);

如何區(qū)分外部連接的符號(hào)(+)放在哪一邊這是我一直沒(méi)有搞清楚的地方

--練習(xí)三

--1.查詢(xún)所有工作在NEW YORK和CHICAGO的員工姓名痒钝,員工編號(hào)秉颗,以及他們的經(jīng)理姓名,經(jīng)理編號(hào)送矩。

select worker.ename,worker.empno,manager.ename,worker.mgr
from emp worker,emp manager,dept
where worker.mgr = manager.empno(+)
and worker.deptno = dept.deptno 
and loc in ('NEW YORK','CHICAGO');

--2.第上一題的基礎(chǔ)上蚕甥,添加沒(méi)有經(jīng)理的員工King,并按照員工編號(hào)排序栋荸。

select worker.ename,worker.empno,manager.ename,worker.mgr
from emp worker,emp manager,dept
where worker.mgr = manager.empno(+)
and worker.deptno = dept.deptno 
and loc in ('NEW YORK','CHICAGO')
order by worker.empno asc;

--3.查詢(xún)所有員工編號(hào)菇怀,姓名,部門(mén)名稱(chēng)晌块,包括沒(méi)有部門(mén)的員工也要顯示出來(lái)爱沟。

select empno,ename,dept.dname
from emp,dept
where emp.deptno(+) = dept.deptno;

--練習(xí)四
--使用SQL-99寫(xiě)法,完成如下練習(xí)
--1.創(chuàng)建一個(gè)員工表和部門(mén)表的交叉連接摸袁。

交叉連接會(huì)產(chǎn)生兩個(gè)表的交叉乘積钥顽,
和兩個(gè)表之間的笛卡爾積是一樣的;
使用CROSS JOIN 子句完成靠汁。

select * from emp cross join dept;
部分截圖

--2.使用自然連接蜂大,顯示入職日期在80年5月1日之后的員工姓名,部門(mén)名稱(chēng)蝶怔,入職日期

自然連接是對(duì)兩個(gè)表之間相同名字和
數(shù)據(jù)類(lèi)型的列進(jìn)行的等值連接奶浦;
如果兩個(gè)表之間相同名稱(chēng)的列的數(shù)據(jù)類(lèi)型不同,
則會(huì)產(chǎn)生錯(cuò)誤踢星;
使用NATURAL JOIN子句來(lái)完成澳叉。

select ename,dname,hiredate
from emp
natural join dept
where hiredate > '01-5月-80';

--3.使用USING子句,顯示工作在CHICAGO的員工姓名,部門(mén)名稱(chēng)成洗,工作地點(diǎn)

自然連接是使用所有名稱(chēng)和
數(shù)據(jù)類(lèi)型相匹配的列作為連接條件,
而USING子句可以指定用某個(gè)或
某幾個(gè)相同名字和數(shù)據(jù)類(lèi)型的列作為連接條件充包。

使用USING子句創(chuàng)建連接時(shí)遥椿,應(yīng)注意以下幾點(diǎn):

如果有若干個(gè)列名稱(chēng)相同但數(shù)據(jù)類(lèi)型不同,
自然連接子句可以用USING子句來(lái)替換家浇,
以指定產(chǎn)生等值連接的列碴裙。
如果有多于一個(gè)列都匹配的情況青团,
使用USING子句只能指定其中的一列。
USING子句中的用到的列不能使用表名和別名作為前綴芦昔。
NATURAL JOIN子句和USING子句是相互排斥的咕缎,
不能同時(shí)使用料扰。

select ename,dname,loc
from emp 
join dept using(deptno)
where loc in 'CHICAGO';

--4.使用ON子句晒杈,顯示工作在CHICAGO的員工姓名,部門(mén)名稱(chēng)帖努,工作地點(diǎn)拼余,薪資等級(jí)

自然連接條件基本上是具有相同列名的表之間的等值連接亩歹;
如果要指定任意連接條件,
或指定要連接的列凡橱,
則可以使用ON子句稼钩;
用ON將連接條件和其它檢索條件分隔開(kāi)变抽,
其它檢索條件寫(xiě)在WHERE子句氮块;
ON子句可以提高代碼的可讀性滔蝉。 

select ename,dname,loc,grade
from emp join dept
on emp.deptno = dept.deptno
join salgrade
on sal between losal and hisal
where loc in 'CHICAGO';

--5.使用左連接蝠引,查詢(xún)每個(gè)員工的姓名蛀柴,經(jīng)理姓名鸽疾,沒(méi)有經(jīng)理的King也要顯示出來(lái)。

左外連接以FROM子句中的左邊表為基表冒窍,
該表所有行數(shù)據(jù)按照連接條件無(wú)論是否與右邊表能匹配上豺鼻,
都會(huì)被顯示出來(lái)。 

select worker.ename,manager.ename
from emp worker
left outer join emp manager
on worker.mgr = manager.empno;

--6.使用右連接谬莹,查詢(xún)每個(gè)員工的姓名附帽,經(jīng)理姓名圣猎,沒(méi)有經(jīng)理的King也要顯示出來(lái)送悔。

右外連接以FROM子句中的右邊表為基表爪模,
該表所有行數(shù)據(jù)按照連接條件無(wú)論是否與左邊表能匹配上屋灌,
都會(huì)被顯示出來(lái)应狱。 

select worker.ename,manager.ename
from emp manager
right outer join emp worker
on worker.mgr = manager.empno;

--課后作業(yè)
--1.顯示員工SMITH的姓名疾呻,部門(mén)名稱(chēng)岸蜗,直接上級(jí)名稱(chēng)

select worker.ename,dname,manager.ename
from emp worker,emp manager,dept
where worker.mgr = manager.empno
and worker.deptno = dept.deptno 
and worker.ename in 'SMITH'; --通常寫(xiě)法

select worker.ename,dname,manager.ename
from emp worker join emp manager
on worker.mgr = manager.empno
join dept
on worker.deptno = dept.deptno 
where worker.ename in 'SMITH';--join on

select worker.ename,dname,manager.ename
from emp worker left outer join emp manager
on worker.mgr = manager.empno
left outer join dept
on worker.deptno = dept.deptno 
where worker.ename in 'SMITH';--左外連接 left outer join

select worker.ename,dname,manager.ename
from emp worker right outer join emp manager
on worker.mgr = manager.empno
right outer join dept
on worker.deptno = dept.deptno 
where worker.ename in 'SMITH';--右外連接 right outer join 

--2.顯示員工姓名璃岳,部門(mén)名稱(chēng),工資单芜,工資級(jí)別洲鸠,要求工資級(jí)別大于4級(jí)赁温。

select ename,dname,sal,grade
from emp,dept,salgrade
where emp.deptno = dept.deptno 
and sal between losal 
and hisal and grade > 4;--通常寫(xiě)法

select ename,dname,sal,grade
from emp join dept
on emp.deptno = dept.deptno
join salgrade
on sal between losal and hisal
where grade > 4;--join on

select ename,dname,sal,grade
from emp left outer join dept
on emp.deptno = dept.deptno
left outer join salgrade
on sal between losal and hisal
where grade > 4;--左外連接 left outer join

select ename,dname,sal,grade
from emp right outer join dept
on emp.deptno = dept.deptno
right outer join salgrade
on sal between losal and hisal
where grade > 4;--右外連接 right outer join 

--3.顯示員工KING和FORD管理的員工姓名及其經(jīng)理姓名袜匿。

我特么實(shí)在不知道如何斷句V烧睢!9窒印柳沙!等我想明白再做!T刖丁!梗顺!

--4.顯示員工姓名,參加工作時(shí)間寺谤,經(jīng)理名变屁,參加工作時(shí)間意狠,要求參加時(shí)間比經(jīng)理早。

select worker.ename as 員工姓名,worker.hiredate as 員工入職日期,
manager.ename as 經(jīng)理姓名,manager.hiredate as 經(jīng)理入職日期
from emp worker,emp manager 
where worker.mgr = manager.empno and 
worker.hiredate < manager.hiredate;

分割線(xiàn)


博主為咯學(xué)編程:父母不同意學(xué)編程,現(xiàn)已斷絕關(guān)系;戀人不同意學(xué)編程谷市,現(xiàn)已分手;親戚不同意學(xué)編程击孩,現(xiàn)已斷絕來(lái)往;老板不同意學(xué)編程,現(xiàn)已失業(yè)三十年巩梢。。鞠抑。忌警。。箕速。如果此博文有幫到你歡迎打賞朋譬,金額不限。字柠。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扶关,一起剝皮案震驚了整個(gè)濱河市节槐,隨后出現(xiàn)的幾起案子拐纱,更是在濱河造成了極大的恐慌,老刑警劉巖揍庄,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件东抹,死亡現(xiàn)場(chǎng)離奇詭異缭黔,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)别渔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)哎媚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)喊儡,“玉大人,你說(shuō)我怎么就攤上這事截珍÷崞樱” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵钱床,是天一觀的道長(zhǎng)查牌。 經(jīng)常有香客問(wèn)我,道長(zhǎng)兽泣,這世上最難降的妖魔是什么胁孙? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任涮较,我火速辦了婚禮,結(jié)果婚禮上候齿,老公的妹妹穿的比我還像新娘闺属。我一直安慰自己,他們只是感情好润匙,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著匠楚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪峡懈。 梳的紋絲不亂的頭發(fā)上与斤,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天撩穿,我揣著相機(jī)與錄音,去河邊找鬼雾狈。 笑死抵皱,一個(gè)胖子當(dāng)著我的面吹牛辩蛋,可吹牛的內(nèi)容都是我干的悼院。 我是一名探鬼主播咒循,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼剑鞍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了便脊?” 一聲冷哼從身側(cè)響起光戈,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤久妆,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后肋演,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體烂琴,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奸绷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了反症。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铅碍。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡线椰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出呜魄,到底是詐尸還是另有隱情,我是刑警寧澤娇澎,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布趟庄,位于F島的核電站伪很,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏猫十。R本人自食惡果不足惜呆盖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一应又、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧尤筐,春花似錦洞就、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至躁染,卻和暖如春架忌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背饰恕。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工埋嵌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人范舀。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓了罪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親辅辩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子吱七,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

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