最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

SQLServer2008技術(shù)內(nèi)幕T

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 15:24:23
文檔

SQLServer2008技術(shù)內(nèi)幕T

SQLServer2008技術(shù)內(nèi)幕T:1、SQL編程有許多獨(dú)特之處,如:面向集合的思維方式、查詢(xún)?cè)氐倪壿嬏幚眄樞?、三邏輯。如果不掌握這些知識(shí)就開(kāi)始用SQL編程,得到的將是冗余的、性能低下的代碼,而且難以維護(hù)。 2、在SQLServer中負(fù)責(zé)生成實(shí)際工作計(jì)劃(執(zhí)行計(jì)劃)的組件是:查詢(xún)優(yōu)化器(qu
推薦度:
導(dǎo)讀SQLServer2008技術(shù)內(nèi)幕T:1、SQL編程有許多獨(dú)特之處,如:面向集合的思維方式、查詢(xún)?cè)氐倪壿嬏幚眄樞?、三邏輯。如果不掌握這些知識(shí)就開(kāi)始用SQL編程,得到的將是冗余的、性能低下的代碼,而且難以維護(hù)。 2、在SQLServer中負(fù)責(zé)生成實(shí)際工作計(jì)劃(執(zhí)行計(jì)劃)的組件是:查詢(xún)優(yōu)化器(qu

1、SQL編程有許多獨(dú)特之處,如:面向集合的思維方式、查詢(xún)?cè)氐倪壿嬏幚眄樞颉⑷壿?。如果不掌握這些知識(shí)就開(kāi)始用SQL編程,得到的將是冗余的、性能低下的代碼,而且難以維護(hù)。 2、在SQLServer中負(fù)責(zé)生成實(shí)際工作計(jì)劃(執(zhí)行計(jì)劃)的組件是:查詢(xún)優(yōu)化器(que

1、SQL編程有許多獨(dú)特之處,如:面向集合的思維方式、查詢(xún)?cè)氐倪壿嬏幚眄樞?、?#20540;邏輯。如果不掌握這些知識(shí)就開(kāi)始用SQL編程,得到的將是冗余的、性能低下的代碼,而且難以維護(hù)。

2、在SQLServer中負(fù)責(zé)生成實(shí)際工作計(jì)劃(執(zhí)行計(jì)劃)的組件是:查詢(xún)優(yōu)化器(query optimizer)。只有在確保結(jié)果集正確的前提下,優(yōu)化器才會(huì)走捷徑。明確區(qū)分查詢(xún)的邏輯處理和物理處理是非常重要的。

3、邏輯查詢(xún)的各個(gè)階段:

(5) SELECT (5-2) DISTINCT (5-3) TOP () (5-1) 
(1) FROM (1-J)   JOIN  ON 
 |(1-A)  APPLY  AS 
 |(1-P)  PIVOT () AS 
 |(1-U)  UNPIVOT () AS 
(2) WHERE 
(3) GROUP BY 
(4) HAVING 
(6) ORDER BY ;


第一步:FROM :表示出查詢(xún)的來(lái)源表,在聯(lián)結(jié)運(yùn)算中涉及的階段是(1-J1)笛卡兒積、(1-J2)ON篩選器和(1-J3)添加外部行。并生成虛擬表VT1。

1.1、笛卡兒積:兩表執(zhí)行笛卡兒積,生成虛擬表VT1-J1。

1.2、ON篩選器:針對(duì)VT1-J1中滿(mǎn)足ON為true的行,插入VT1-J2。

1.3、添加外部行:如果指定了OUTER JOIN (相對(duì)于CROSS JOIN或INNER JOIN ),則將保留表中沒(méi)有匹配的行,作為外部行添加,生成VT1-J3。

第二步:WHERE:根據(jù)WHERE 子句中的謂詞對(duì)VT1中的數(shù)據(jù)進(jìn)行行篩選,只對(duì)結(jié)果為T(mén)RUE的行,插入VT2。

第三步:GROUP BY :根據(jù)group by中的列表,將VT2進(jìn)行分組,每一組只有一個(gè)結(jié)果行,生成VT3。

第四步:HAVING:根據(jù)HAVING出現(xiàn)的謂詞對(duì)VT3金信篩選,只讓結(jié)果為T(mén)RUE的組才插入VT4。

第五步:SELECT:處理SELECT 子句中的元素,產(chǎn)生VT5。

5.1、計(jì)算表達(dá)式:根據(jù)SELECT 列表中的表達(dá)式,生成VT5-1。

5.2、DISTINCT:刪除VT5-1中重復(fù)的行,生成VT5-2。

5.3、TOP:根據(jù)ORDER BY 子句定義邏輯排序,從VT5-2中選擇前面指定數(shù)量或百分比的行,生產(chǎn)VT5-3。

第六步:ORDER BY :根據(jù)ORDER BY 子句中指定的列名,對(duì)VT5-3進(jìn)行排序。生成游標(biāo)VC6。

對(duì)于三值邏輯:

a、所有的查詢(xún)篩選器(ON、WHERE 和HAVING )都把null當(dāng)作FALSE來(lái)處理。

b、check約束中的null值被當(dāng)作TRUE來(lái)對(duì)待。

c、UNIQUE約束、集合運(yùn)算(UNION 和EXCEPT)、及排序和分組操作,認(rèn)為兩個(gè)null是相等的。

注意:

1、如果FROM 子句中有多個(gè)表運(yùn)算符,則按從左到右的順序進(jìn)行處理。每個(gè)表運(yùn)算符的結(jié)果作為下一個(gè)表運(yùn)算符的左輸入,最后生成虛擬表作為下一階段的輸入。

2、因?yàn)樵赪HERE之前還沒(méi)對(duì)數(shù)據(jù)分組,所以WHERE 子句不能使用聚合。在篩選器中,ON對(duì)保留表中部分行的刪除并不是最終的,而WHERE是最終的。只有使用外聯(lián)結(jié)的時(shí)候,ON和WHERE才有邏輯區(qū)別。

3、如果在查詢(xún)中指定了GROUP BY ,后續(xù)所有步驟都只能在指定的分組上操作。

4、HAVING是唯一可用于分組數(shù)據(jù)的篩選器。

5、由于SQL具有多個(gè)運(yùn)算同時(shí)計(jì)算(all-at-once operation),所以SELECT 語(yǔ)句中的邏輯順序是無(wú)關(guān)的。

6、ORDER BY 是唯一可以使用SELECT 中別名的步驟。

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

SQLServer2008技術(shù)內(nèi)幕T

SQLServer2008技術(shù)內(nèi)幕T:1、SQL編程有許多獨(dú)特之處,如:面向集合的思維方式、查詢(xún)?cè)氐倪壿嬏幚眄樞颉⑷壿?。如果不掌握這些知識(shí)就開(kāi)始用SQL編程,得到的將是冗余的、性能低下的代碼,而且難以維護(hù)。 2、在SQLServer中負(fù)責(zé)生成實(shí)際工作計(jì)劃(執(zhí)行計(jì)劃)的組件是:查詢(xún)優(yōu)化器(qu
推薦度:
標(biāo)簽: 2008 技術(shù) sql
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專(zhuān)題
Top