多表查詢

一资厉、基本概念
1.多表查詢就必須消除兩張表之間存在的笛卡爾積厅缺,使用一個條件語句消除笛卡爾積,可以使用別名表達。
①要求顯示每個雇員的編號宴偿、姓名湘捎、職位、工 資窄刘、部門名稱窥妇、部門位置。

select e.empno,e.ename,e.job,e.sal ,d.dname,d.loc
from emp e,dept d
where e.deptno=d.deptno;

②查詢雇員的編號娩践、姓名活翩、職位、工資翻伺、工資等級

select e.empno,e.ename,e.job,e.sal,s.grade
from emp e,salgrade s
where e.sal between s.losal and s.hisal;
9Y(UX@U5$QPONN3$EI1L9%G.png

③查詢每個雇員的編號材泄、姓名、職位吨岭、工資拉宗、工資等級、部門名稱

select e.empno,e.ename,e.job,e.sal,s.grade,d.dname
from emp e,salgrade s,dept d
where e.sal between s.losal and s.hisal and e.deptno=d.deptno;

總結:沒有關聯(lián)字段或者關聯(lián)條件的兩張數(shù)據(jù)表是永遠不可能實現(xiàn)多表查詢的辣辫,復雜的查詢分步驟進行旦事。

二、表的連接
主要分為兩種形式:
內(nèi)連接(等值連接):所有滿足條件的數(shù)據(jù)都會被顯示出來急灭。
外連接(左外連接姐浮、右外連接、全外連接):控制左表和右表的數(shù)據(jù)是否全部顯示葬馋。
左外連接:字段+字段(+)卖鲤;
右外連接:字段(+)+字段肾扰;
①先插入一條數(shù)據(jù)測試

insert into emp(empno,ename,job)values(0001,'老張','CLERK');

②左連接

select e.empno,e.ename,e.job,d.deptno,d.dname
from emp e,dept d
where e.deptno = d.deptno(+);
left.png

③右連接

select e.empno,e.ename,e.job,d.deptno,d.dname
from  emp e,dept d
where e.deptno(+) = d.deptno;
right.png

如果發(fā)現(xiàn)查詢的數(shù)據(jù)不完成,就使用外連接來控制扫尖,不要刻意的去管是左連接還是右連接白对,只要能完成顯示數(shù)據(jù)就行。

三换怖、SQL:1999語法支持
“(+)”只有oracle才有,所以可以利用SQL:1999語法來實現(xiàn)查詢蟀瞧。
基本語法如下:
select [distinct]* | 列 [別名]
from 表名稱1
[cross join 表名稱2]
[natural join 表名稱2]
[join 表名稱 on(條件) | using(字段)]
[left | right | full outer join 表名稱2];

①cross join 交叉連接沉颂,主要用于產(chǎn)生笛卡爾積,簡單實現(xiàn)多表查詢

select*  from emp cross join dept;

②natural join 自然連接,主要用于消除笛卡爾積

select* from emp natural join dept;

③using 如果說一張表內(nèi)有多個關聯(lián)字段存在悦污,那么可以使用using

select* from emp join dept using(deptno);

④on 子句铸屉,沒有關聯(lián)字段,則可以使用on設置條件

select*
from emp e join salgrade s
on (e.sal between s.losal and s.hisal);

⑤外連接
(1)左外連接

select* from emp left outer join dept using(deptno);

②右連接

select* from emp right outer join dept using(deptno);

③全外連接

select*  from emp full outer join dept using(deptno);

四切端、數(shù)據(jù)的集合操作
將多個查詢結果連接為一個查詢結果返回
①union 將連個查詢結果合并在一起

select empno,ename,job from emp where deptno=10 union select empno,ename,job from emp;

②union all 所有重復的數(shù)據(jù)都會顯示出來

select empno,ename,job,deptno from emp where deptno=10 union all select empno,ename,job,deptno from emp;

③intersect 返回相同的部分彻坛,屬于交集操作

select empno,ename,job from emp where deptno=10 intersect select empno,ename,job from emp;
intersect.png

④minus 返回差集,是用第一個集合減去第二個集合

select empno,ename,job from emp minus select empno,ename,job from emp where deptno=10;
minus.png

總結:只要是多表查詢就一定存在笛卡爾積踏枣,無法消除昌屉,一定存在一個或多個關聯(lián)字段,否則無法查詢茵瀑。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末间驮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子马昨,更是在濱河造成了極大的恐慌竞帽,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸿捧,死亡現(xiàn)場離奇詭異屹篓,居然都是意外死亡,警方通過查閱死者的電腦和手機匙奴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門堆巧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人饥脑,你說我怎么就攤上這事恳邀。” “怎么了灶轰?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵谣沸,是天一觀的道長。 經(jīng)常有香客問我笋颤,道長乳附,這世上最難降的妖魔是什么内地? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮赋除,結果婚禮上阱缓,老公的妹妹穿的比我還像新娘。我一直安慰自己举农,他們只是感情好荆针,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著颁糟,像睡著了一般航背。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上棱貌,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天玖媚,我揣著相機與錄音,去河邊找鬼婚脱。 笑死今魔,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的障贸。 我是一名探鬼主播错森,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼惹想!你這毒婦竟也來了问词?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤嘀粱,失蹤者是張志新(化名)和其女友劉穎激挪,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锋叨,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡垄分,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了娃磺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薄湿。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖偷卧,靈堂內(nèi)的尸體忽然破棺而出豺瘤,到底是詐尸還是另有隱情,我是刑警寧澤听诸,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布坐求,位于F島的核電站,受9級特大地震影響晌梨,放射性物質(zhì)發(fā)生泄漏桥嗤。R本人自食惡果不足惜须妻,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望泛领。 院中可真熱鬧荒吏,春花似錦、人聲如沸渊鞋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锡宋。三九已至动知,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間员辩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工鸵鸥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留奠滑,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓妒穴,卻偏偏與公主長得像宋税,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子讼油,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

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

  • 多表查詢之關連查詢 多表數(shù)據(jù)連接查詢杰赛,簡稱連接查詢。本篇我們來一同學習多表連接查詢的相關用法矮台,主要內(nèi)容有: 內(nèi)連接...
    Elder閱讀 5,717評論 0 12
  • 多表查詢有如下幾種: 合并結果集乏屯;UNION、UNION ALL 連接查詢 內(nèi)連接[INNER] JOINON 外...
    三萬_chenbing閱讀 500評論 1 1
  • 多表查詢有如下幾種: 合并結果集瘦赫;UNION辰晕、UNION ALL 連接查詢 內(nèi)連接[INNER] JOINON 外...
    Michael_林閱讀 3,439評論 0 6
  • 前言 連接查詢包括合并、內(nèi)連接确虱、外連接和交叉連接含友,如果涉及多表查詢,了解這些連接的特點很重要校辩。只有真正了解它們之間...
    小喜_ww閱讀 1,277評論 0 7
  • 這個十三天正好是我回老家過年的時間窘问,可以說這個新年跟以往過得真的不一樣。以往雖然每個新年也都會回到父母...
    歸途123閱讀 132評論 0 0