今天講下T-sql中用于查詢的表關(guān)聯(lián)和視圖,我們平時(shí)做項(xiàng)目的時(shí)候會(huì)遇到一些復(fù)雜的查詢操作,比如有班級(jí)表,學(xué)生表,現(xiàn)在要查詢一個(gè)學(xué)生列表,要求把學(xué)生所屬班級(jí)名稱也查詢出來(lái),這時(shí)候簡(jiǎn)單的select查詢就不行了,需要關(guān)聯(lián)班級(jí)表,因?yàn)閷W(xué)生是一定屬于某一個(gè)班級(jí)的,所以關(guān)聯(lián)的示例需要自關(guān)聯(lián)。
表關(guān)聯(lián)(join)
下面列一些示例代碼,幫助大家理解。
select t2. * -- 表自關(guān)聯(lián) from Tree t1 inner join Tree t2 on t1.NO = t2.ParentNo where t1.Name = ' Node1_2 ' ; select * from tree -- 子嵌套查詢 where ParentNo = ( select NO from tree where Name = ' Node1_2 ' ); select * from tree where parentNo in ( select no from tree where Name = ' Node1_2 ' );
上面是表自關(guān)聯(lián),關(guān)鍵字inner,就是返回t1.NO = t2.ParentNo 條件的所有t2表的數(shù)據(jù),
有表自關(guān)聯(lián),當(dāng)然還有左關(guān)聯(lián),右關(guān)聯(lián),示例代碼:
select t2. * -- 左關(guān)聯(lián) from Tree t1 left join Tree t2 on t1.NO = t2.ParentNo where t1.Name = ' Node1_2 ' ; select t2. * -- 右關(guān)聯(lián) from Tree t1 right join Tree t2 on t1.NO = t2.ParentNo where t1.Name = ' Node1_2 ' ;
視圖View
視圖的關(guān)鍵字是View,就是一個(gè)查詢集合,方便我們?nèi)ゲ樵償?shù)據(jù),視圖其實(shí)就是表,多表連接的表,我們查詢的時(shí)候不需要反復(fù)的去拼接語(yǔ)句,直接查詢視圖就可以,方便我們的操作,當(dāng)然一些簡(jiǎn)單的查詢操作就沒必要去創(chuàng)建視圖了。
示例代碼:
create view Production.vw_Product as select t1. * from Production.Product t1 left outer join Production.ProductModel t2 on t2.ProductModelID = t1.ProductModelID left outer join Production.ProductSubcategory t3 on t3.ProductSubcategoryID = t1.ProductSubcategoryID left outer join Production.UnitMeasure t4 on t4.UnitMeasureCode = t1.SizeUnitMeasureCode and t4.UnitMeasureCode = t1.SizeUnitMeasureCode -- order by t1.ProductID
查詢視圖:
select * from Production.vw_Product
表關(guān)聯(lián)和視圖都是比較簡(jiǎn)單的數(shù)據(jù)庫(kù)操作,但也是比較常用的。大家好好練習(xí)。
還有一些相關(guān)編程知識(shí)的整理,希望大家關(guān)注下。。。
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
