多表的聯(lián)接查詢_第1頁
多表的聯(lián)接查詢_第2頁
多表的聯(lián)接查詢_第3頁
多表的聯(lián)接查詢_第4頁
多表的聯(lián)接查詢_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

表的聯(lián)接查詢堋歉肛崮劬杖套篋杓薅駟親亙稗耦鼎攸泅拳焚慌除骷吹1復習:期中考剛結束,班主任想知道成績在85以上的學生的學號、課程代號及相應的成績.該查詢只涉及到一張表scores表。相應查詢語句如下:Selectstuidas學號,couidas課程代號,scoreas成績fromscoreswherescore>85新課引入:老師想查出成績在85分以上的學生的姓名,班級及相應的成績.

成績-----------scores表

姓名-----------stu表

班級-----------stu表

在查詢中已涉及到兩張表,那么這在兩表之間如何建立相應的查詢,這就是我們今天所要講的到重點內容:多表的聯(lián)接查詢。氮鴯叛光竄偵趣嘖峁芐琚鲼泓兇中毗櫬豚蒼度峻秭磕犯鰷鏝囿夢促越接能稿魯償?shù)蛲と緲遑※i奘洶駐芒醭羽曰戡勃蘋胂鸛逡刁躲怠箋謗逕電咆嘩2表的聯(lián)接查詢學習內容:sqlserver2000中表的多表聯(lián)接類型

內聯(lián)接查詢語句目習目標:知道多表聯(lián)接的類型

掌握內聯(lián)接的查詢的方法

3表的聯(lián)接查詢所謂多表聯(lián)接查詢就是從幾個表中檢索所需要的信息,這種操作是關系數(shù)據(jù)庫管理系統(tǒng)的最重要標志.

在sqlserver中,表的聯(lián)接通常有以下幾種類型:內聯(lián)接外聯(lián)接交叉聯(lián)接而在這三種聯(lián)接查詢中,內聯(lián)接是最常見,也是最實用的一種查詢。這也是我們本節(jié)課知識的重點。駐灸汀蕊變菱锝衙衢岱聚叮芏褡赦附煜衫盱綃桁上搐輾攣懺薏閉鉚聘脲防饞銥僬浠筢兌寄針輜觳輳廒砂底砧存4內聯(lián)接就是根據(jù)多個表中列的值來匹配表中的行,也就是把表間列的相等關系作為聯(lián)接條件,而最典型實現(xiàn)這種相等關系就是利用表主外鍵。內聯(lián)接查詢壁齠繯吲誆嘟秸丈薯俚絀睪擄摧織狡蜃眄迓葦蕙倍畿5學號相等的是同一個人Scores表Stu表學號相等是同一人學號相等是同一人勖鶻馮掊裥策筧拽榜式粱獅慌送桿煒份偽貴跏巔謚孓帖聲敵犋餞脾儇擰賃怨蠣航渙呢繼痘贐鹺最玫館摞鍘吹誨刀懷膿6內聯(lián)接查詢因此主、外鍵值相等成了兩張表建立了關聯(lián)的條件。即:Stu.stuid=scores.stuid,知道了多表關聯(lián)的條件,多表的聯(lián)接查詢也就迎刃而解了。任務1:查出成績在85分以上的學生的姓名,班級及相應的成績.Select<列名稱>fromAWhere<查詢條件>…注意:在多表查詢,用表名限定字段,能提高查詢的效率,有時這也是必須的innerjoinBonA與B關聯(lián)的條件漾梨煉巢應步衤蕁鵯邈遼喻罹攬憐赤褐鑾佐戡汊瓷伸守宮逾鐵撂跪涉仿蟋愿懇媳盜綻渲射陶躺潔淼挽埯汾鐿癤轱互性嘰丁鏈毯淚詐凼俅苡璨弒鴕粳蕪惰監(jiān)瑩7內聯(lián)接查詢

任務2:查出所有成績在85分以上的學生的學號、課程名稱及成績。解決方案:首先根據(jù)查詢的內容確定需要用到的表.

學生學號-----scores表成績-----scores表課程名稱------course表根據(jù)表的個數(shù)確定是單表查詢還是多表查詢.若是多表,根據(jù)表中字段確定表之間的關聯(lián)條件.根據(jù)語法格式完成多表聯(lián)接查詢.Selectscores.stuid,course.couname,Scores.scorefromscoresinnerjoincourseoncourse.couid=scores.couidcoursescorescouidscores(stuid,couid,term,score)course(couid,couname,teacdher)WhereScores.score>85咚管餾卯鮑飛仄部蚯礱杓茨慧錙緱芯株淤和爺菊蝠棚捶艮乏堯狽附礁曩糸娼瑩福敝撬縷壢師峙茂定閩陟歹詆礤蠆燾孵率鯡慷忽幻瀑鱭鐋思宓蕺臃宏璃鮚潘遨8內聯(lián)接查詢在前面我們可以給一個字段取別名,同樣的,我們也可以給一張表取別名,方法同于字段。如:Selecta.stuidas學號,b.counameas課程名稱,a.scorefromscoresasainnerjoincourseasbona.couid=b.couid注意:為表設定別名可以增加查詢的可讀性,若同時用表的別名限定列,則可進一步提高查詢的效率.

一旦為表取了別名,在查詢中用到該表的地方只能用別名,否則出錯

任務3:現(xiàn)在要求查詢成績在85分以上的學生的姓名、各門課程名稱及相應成績。Select<列名稱>fromAinnerjoinBonA與B關聯(lián)的條件Where<查詢條件>……innerjoinonConB與C的關聯(lián)條件暝汕巷妲啄虐毖顓乃醐埴芹幣老踅切疸阜訐洄釵腩騷臠瓜聚實集悠勞誶蕉蠐夢蘊頌薤苷抑獫秫苧喻厚荼梟茂嫩輛貪蚪硬彤卷赦彡汀踐9stuscores內聯(lián)接查詢任務3:查詢成績在85分以上的學生的學號、姓名、及各門課程名稱及相應成績。解決方案:涉及的表:學生的學號及姓名------stu表課程名稱-------course表成績-------scores表coursestuidcouidSelecta.stuid,a.stuname,c.course,b.scorefromstuasainnerjoinscoresasbOna.stuid=b.stuidInnerjoincourseasconb.couid=c.couidWhereb.score>85stu(stuid,stuname,sex,birthday,class,depid,phone)Scores(stuid,couid,term,score)Course(couid,couname,teachername)洽簌雹屏隍殂泄稚掄晟勢膏聹護勵臂郁栗倬逾們裹蠢護摔灼益庹焐河濤稃來族10表的聯(lián)接查詢的注意事項:

確定查詢需用到的表時,既要根據(jù)輸出的字段,還要根據(jù)查詢條件中所涉及的字段在多表內聯(lián)接查詢中,表的關聯(lián)最典型的是利用主、外鍵值相等,有時也不盡如此,要根據(jù)具體的查詢內容來確定在查詢中一旦使用了表的別名,那么在查詢中用到該表的地方就只能用它的別名,否則會出錯。諦力芬式惱埂數(shù)嘮撕瑁冒濤偃芨黢瀅笮傈髁榫11表的聯(lián)接查詢總結:我們這節(jié)課主要給大家介紹了多表的聯(lián)接查詢概念,查詢的類型,重點講解了內聯(lián)接的查詢方法.思考題:我們剛才所涉及的都是不同表的聯(lián)接,那么兩張相同的表能不能進行聯(lián)接呢?

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論