sql 多表查詢 代碼示例_第1頁(yè)
sql 多表查詢 代碼示例_第2頁(yè)
sql 多表查詢 代碼示例_第3頁(yè)
sql 多表查詢 代碼示例_第4頁(yè)
sql 多表查詢 代碼示例_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

SQL多表查詢代碼示例在Pubs數(shù)據(jù)庫(kù)中,完成以下查詢usepubs-—使用內(nèi)聯(lián)接查詢出authors和publishers表中位于同一個(gè)城市的作者和出版社信息selectau_fname+'·’+au_lnameas作者,pub_nameas出版社fromauthorsinnerjoinpublishersonauthors.city=publishers。city—-查詢出作者號(hào)以1~5開頭的所有作者,并使用右外聯(lián)接在查詢的結(jié)果集中列出和作者—-在同一個(gè)城市的出版社名selectau_fname+'·’+au_lnameas作者,pub_nameas出版社fromauthorsrightouterjoinpublishersonauthors.au_idlike’[1—5]%'whereauthors.city=publishers。city—-使用自聯(lián)接查找居住在Oakland相同郵碼區(qū)域中的作者。fromauthorsainnerjoinauthorsbwherea.city=’Oakland’anda.au_fname<〉b.au_fnameP所有題目selectascii('sql’)selectchar(66)selectcharindex(’E’,’HELLO’)-—結(jié)果:2selectleft('RICHARD',4)--結(jié)果:RICHselectlen(’RICHARD’)selectlower(’RICHARD')select'SQL'+ltrim('RICHARD')selectreverse(’ACTION')selectright('RICHARD',4)selectrtrim(’RICHARD')+’SQL'selectpatindex('%BOX%’,'ACTIONBOX')select’RICHARD’+space(2)+'HELL'——結(jié)果:RICHARDHELLselectstuff('Weather’,2,2,'I')selectsubstring(’Weather’,2,2)selectupper('Richard’)-—結(jié)果:RICHARDselectdateadd(dd,10,getdate())selectdatediff(dy,getdate(),’2005—01-01’)-—結(jié)果:-288selectdatepart(dw,’2004—10—01’)—-結(jié)果:6selectdatename(dw,’2004-10-01’)——結(jié)果:星期五——第七講多表查詢上機(jī)實(shí)驗(yàn)userecruitment外部候選人的信息select*fromExternalCandidatewheredatediff(yy,dbirthdate,getdate())between35and40—-—需要在當(dāng)前日期之后的10天在報(bào)紙上登載一則廣告,系統(tǒng)需要計(jì)算出日期并顯示selectdistinctgetdate()astoday,dateadd(day,10,getdate())as’10daysfromtoday’fromnewsad-——統(tǒng)計(jì)外部候選人接受測(cè)試和面試日期的間隔的時(shí)間平均值selectavg(datediff(day,dtestdate,dinterviewdate))as測(cè)試面試日期間隔平均天數(shù)fromexternalcandidate——-需要獲取外部候選人的姓名和他們申請(qǐng)的職位selectexternalcandidate。vcandidatenameas姓名,position.vdescriptionas申請(qǐng)職位fromexternalcandidateleftjoinpositiononexternalcandidate.cpositioncode=position.cpositioncode--—需要獲得在2001年應(yīng)聘的外部候選人的名字,及推薦他們的招聘機(jī)構(gòu)名selectexternalcandidate.vcandidatenameas名字,ameas推薦他們的招聘機(jī)構(gòu)名fromexternalcandidateleftjoinrecruitmentagenciesonexternalcandidate.cagencycode=recruitmentagencies.cagencycodewhereyear(externalcandidate.ddateofapplication)=2001---需要獲取外部候選人的姓名以及他們的參照的招聘的廣告所屬的報(bào)紙名selectexternalcandidate.vcandidatenameas姓名,ewspapernameas參照招聘廣告所屬報(bào)紙fromexternalcandidate,newsad,newspaperwhereewsadno=ewspapercode=ewspapercode—-—需要獲取大學(xué)名稱、報(bào)紙名稱以及它們地址的列表selectcollege.cCollegeNameas大學(xué)名稱,college.vcollegeaddress學(xué)校地址,ewspapernameas報(bào)紙名稱,newspaper。vhoaddressas報(bào)社地址fromcollege,newspaper—-問(wèn)題:這兩張表之間沒有聯(lián)系,那么應(yīng)選用何種聯(lián)接?否則這里面有太多冗余數(shù)據(jù)selectcollege.cCollegeNameas大學(xué)名稱,college。vcollegeaddress學(xué)校地址,ewspapernameas報(bào)紙名稱,newspaper.vhoaddressas報(bào)社地址fromcollege,newspaperwherecollege.ccity=newspaper。ccity--因?yàn)榇髮W(xué)所在城市的值為某某,而報(bào)紙所在城市的值為某某市,因此按此不能正確查出結(jié)果--采用以下辦法可以解決selectcollege.cCollegeNameas大學(xué)名稱,college。vcollegeaddress學(xué)校地址,ewspapernameas報(bào)紙名稱,newspaper.vhoaddressas報(bào)社地址fromcollege,newspaperwhereleft(ltrim(college。ccity),2)=left(ltrim(newspaper.ccity),2)—-還是顯示出大學(xué)表里符合條件的記錄與報(bào)紙表里符合條件的記錄之積,內(nèi)聯(lián)接結(jié)果一樣--第七講多表查詢作業(yè)useGlobalToyz-—按指定格式(詳見學(xué)習(xí)手冊(cè)P27)顯示所有運(yùn)貨的報(bào)表(天數(shù)=實(shí)際到達(dá)日期-運(yùn)貨日期)selectcordernoas定單號(hào),dshipmentdateas運(yùn)貨日期,dactualdeliverydateas實(shí)際到達(dá)日期,datediff(day,dshipmentdate,dactualdeliverydate)as運(yùn)送天數(shù)fromshipment-—小結(jié):兩日期之差運(yùn)算為第二個(gè)日期參數(shù)—第一個(gè)日期參數(shù)—-按指定格式(詳見學(xué)習(xí)手冊(cè)P27)顯示所有的訂單selectcOrderNoas定單號(hào),cShopperIdas購(gòu)物者號(hào),dOrderDateas'訂單日期(號(hào))’,datename(dw,dorderdate)星期幾fromorders—-小結(jié):求星期幾,日期元素只能用DW,而不能用WK,WK求得是在一年中的第幾周,而列別名如果有--特殊字符需要引號(hào)引起來(lái)——顯示所有玩具名和所屬的種類名selecttoys.vToyNameas玩具名,Category.cCategoryas種類名fromcategoryjointoysontoys.cCategoryId=Category。cCategoryId——小結(jié):交叉聯(lián)接不能使用條件,而內(nèi)聯(lián)接和右外聯(lián)接在此效果相同,-—左外聯(lián)接和全外聯(lián)接效果相同,但多出九條玩具名為空的記錄,--因?yàn)樽笸饴?lián)接時(shí)將顯示所有左表中即種類表中的記錄,即使沒有該玩具屬于該種類,—-JOIN前不加關(guān)鍵字時(shí)默認(rèn)為內(nèi)聯(lián)接——用join聯(lián)接表名時(shí),后面條件語(yǔ)句只能先跟on關(guān)鍵字,不能直接用where——按指定格式(詳見學(xué)習(xí)手冊(cè)P27)顯示所有玩具的名稱、商標(biāo)和種類selecttoys。vtoynameas玩具名,ToyBrand。cBrandNameas商標(biāo)名,Category.ccategoryas類別名fromtoys,ToyBrand,Categorywheretoys。cBrandId=ToyBrand.cBrandIdandtoys.cCategoryId=Category.cCategoryId—-按指定格式(詳見學(xué)習(xí)手冊(cè)P28)顯示所有玩具的訂貨號(hào)、玩具ID和玩具使用的禮品包裝說(shuō)明selectorderdetail.cordernoas定單號(hào),orderdetail.ctoyidas玩具號(hào),wrapper。vdescriptionas包裝信息fromorderdetailleftjoinwrapperonorderdetail.cwrapperid=wrapper.cwrapperidselectorderdetail.cordernoas定單號(hào),orderdetail.ctoyidas玩具號(hào),wrapper.vdescriptionas包裝信息fromtoys,orderdetail,wrapperwheretoys。ctoyid=orderdetail。ctoyidandorderdetail.cwrapperid=wrapper.cwrapperid——小結(jié):外連接的關(guān)鍵字outer可以省略不寫-—問(wèn)題:采用以上方式查出的結(jié)果好象未能滿足需求,沒有顯示所有的玩具,如果用三張表,即-—加入toys表后,加上一個(gè)toys.ctoyid=orderdetail.ctoyid后也不能列出所有玩具?!?按指定格式(詳見學(xué)習(xí)手冊(cè)P28)顯示所有購(gòu)物者名,及他們所購(gòu)買的訂單信息(無(wú)論購(gòu)物者是否有訂單)selectshopper.vfirstnameas購(gòu)物者名,orders。cordernoas定單號(hào),orders.dorderdateas定單時(shí)間,orders.mtotalcostas定單金額fromshopperleftjoinordersonshopper.cshopperid=orders。cshopperid——按指定格式(詳見學(xué)習(xí)手冊(cè)P28)顯示訂單號(hào)碼、訂單日期和每個(gè)訂單所在的季節(jié)selectcOrderNoas定單號(hào),dOrderDateas定單日期,datename(qq,dOrderDate)as季節(jié)fromorders句?——按指定格式(詳見學(xué)習(xí)手冊(cè)P28)顯示所有購(gòu)物者ID、名字、電話和相應(yīng)訂單的接受者selectshopper.cshopperidas購(gòu)物者號(hào),shopper。vfirstnameas名字,shopper。cphoneas電話,recipient。vfirstnameas接受者名,recipient。cphoneas電話fromshopper,orders,recipientwhereshopper。cshopperid=orders.cshopperidandorders。corderno=recipient.corderno—-小結(jié):如果表與表之間聯(lián)接沒用JOIN,則條件語(yǔ)句關(guān)鍵字不能用ON,只能用WHERE—-按指定格式(詳見學(xué)習(xí)手冊(cè)P28)顯示所有購(gòu)物者和接受者的名字、地址selectshopper.vfirstnameas購(gòu)物者名字,shopper.vaddressas購(gòu)物者地址,recipient.vfirstnameas接受者名字,recipient.vaddressas接受者地址fromshopper,orders,recipientwhereshopper.cshopperid=orders。cshopperidandorders。corderno=recipient.corderno——顯示所有玩具名及該玩具的銷售數(shù)量selecttoys.vtoynameas玩具名,orderdetail.siqtyas銷售數(shù)量fromtoysleftjoinorderdetailontoys.ctoyid=orderdetai

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論