新聞中心
此文章主要向大家描述的是SQL Server子查詢,在實際操作中SQL Server子查詢所占的比例還是比較常見的,所以對其有一定的了解在以后的學(xué)習(xí)中還是比較有用的,以下就是文章的主要內(nèi)容的詳細(xì)描述,望你能有所收獲。

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),大祥企業(yè)網(wǎng)站建設(shè),大祥品牌網(wǎng)站建設(shè),網(wǎng)站定制,大祥網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,大祥網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
子查詢是指將一條SQL Sever語句嵌入到另一條SQL Sever語句中。數(shù)據(jù)庫引擎將子查詢做為虛表執(zhí)行查詢操作。子查詢可做為連接語句中的一個表,可做為選擇語句中的一個值,也可以是SQL Sever查詢子句,還可以是SQL Sever查詢子句的字句,與數(shù)據(jù)操作語句混合在一起。
子查詢的執(zhí)行依賴于嵌套查詢。查詢樹從最里層開始,一層一層向外執(zhí)行。高層的嵌套查詢可以訪問低層嵌套查詢的結(jié)果。
什么是相關(guān)子查詢?
與經(jīng)典子查詢不同,相關(guān)子查詢依賴于外部查詢。外部查詢和SQL Server子查詢是有聯(lián)系的,尤其在子查詢的WHERE語句中更是如此。相關(guān)子查詢的工作方式是:在子查詢中找到外部查詢的參考時執(zhí)行外部查詢,此時將結(jié)果返回給子查詢。然后在外部查詢返回的結(jié)果集上執(zhí)行子查詢操作。
相關(guān)子查詢的執(zhí)行性能
由于相關(guān)子查詢中的子查詢在外部查詢返回的結(jié)果集上進(jìn)行執(zhí)行,其效率肯定下降。子查詢的性能完全依賴于查詢和有關(guān)的數(shù)據(jù)。但是,如果相關(guān)子查詢的語句寫得很有效率,則其執(zhí)行性能能夠勝過那些使用幾個連接和臨時表的程序。
一個示例
相關(guān)子查詢的一個主要優(yōu)點在于,它能完成傳統(tǒng)SQL Sever查詢不能解決的問題。例如,使用相關(guān)SQL Server子查詢可以輕易完成這樣的任務(wù):獲得連續(xù)的銷售總計結(jié)果或每一個州中出售最多的商品。
下面的例子說明了如何使用相關(guān)子查詢創(chuàng)建運(yùn)行總計的過程。首先,運(yùn)行下面的腳本創(chuàng)建一個例表:
- CREATE TABLE SalesHistory
- (SaleID INT IDENTITY(1,1),
- Product VARCHAR(30),
- SaleDate SMALLDATETIME,
- SalePrice MONEY
- )
現(xiàn)在,這個表保存了這些數(shù)據(jù)字段,讓我們運(yùn)行腳本程序向其中添加一些記錄。Listing A中顯示了向表中輸入的300條記錄的程序,其中SalePrice有些變化。雖然SalePrice的變化不大,但是也足以說明相關(guān)子查詢?nèi)绾喂ぷ?。接下來,運(yùn)行Listing B中的相關(guān)子查詢程序創(chuàng)建銷售報表。
在報表中引入的連續(xù)的銷售總計查詢即是相關(guān)子查詢。對于表中的每種產(chǎn)品,相關(guān)SQL Server子查詢重述了其結(jié)果集,并且在將結(jié)果返回到結(jié)果集之前,為每一種售出產(chǎn)品的SalePrice進(jìn)行加和操作。
試一試
試著運(yùn)行一下上面的例子,并且玩玩這些代碼。對于我來說,可以從例子中學(xué)到很多新技術(shù)。如果已經(jīng)精通了相關(guān)子查詢的原理,則可以考慮讓自己進(jìn)入數(shù)據(jù)庫開發(fā)者的高層梯隊。
【編輯推薦】
- SQL Server 2008之新版CTP特性大盤點
- SQL Server 數(shù)據(jù)庫中鎖的自定義
- 淺談SQL Server鎖粒
- SQL Server分布式數(shù)據(jù)庫的優(yōu)點與缺點
- SQL Server數(shù)據(jù)庫占用過多內(nèi)存時產(chǎn)生的一些問題
分享標(biāo)題:SQL Server子查詢的作用是什么?
當(dāng)前網(wǎng)址:http://m.fisionsoft.com.cn/article/djgsogi.html


咨詢
建站咨詢
