国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

T-SQL 查詢(xún)語(yǔ)句的執(zhí)行順序解析

2024-08-31 00:57:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

(5)SELECT (5-2) DISTINCT(5-3)TOP(<top_specification>)(5-1) <select_list>

(1)FROM (1-J) <left_table> <join_type> JOIN <right_table> on <on_predicate>

(2)WHERE <where_predicate>

(3)GROUP BY <group_by_specification>

(4)HAVING <having_predicate>

(6)ORDER BY <order_by_list>;

  每一步都會(huì)生成一個(gè)虛擬表,該虛擬表會(huì)作為下一步的輸入。這些虛擬表對(duì)于調(diào)用者是不可用的,只有最后一步生成的虛擬表才會(huì)返回給調(diào)用者。如果在查詢(xún)中沒(méi)有指定某一個(gè)子句,則會(huì)跳過(guò)相應(yīng)的步驟。接下來(lái)就簡(jiǎn)單地描述一下這些不同的邏輯步驟。

(1)FROM FROM階段標(biāo)識(shí)出查詢(xún)的來(lái)源表,處理表運(yùn)算符,每個(gè)表運(yùn)算符也會(huì)應(yīng)用一系列子階段。例如,在聯(lián)接運(yùn)算中涉及的階段是(1-J1)笛卡爾積、(1-J2)ON篩選器和(1-J3)添加外部行。FROM階段生成虛擬表VT1。

(1-J1)笛卡爾積 這個(gè)階段對(duì)表運(yùn)算符涉及的兩個(gè)表執(zhí)行笛卡爾積(交叉聯(lián)接),生成虛擬表VT1-J1。

(1-J2)ON篩選器 這個(gè)階段對(duì)VT1-J1中的行根據(jù)ON子句中出現(xiàn)的謂語(yǔ)進(jìn)行篩選。只有讓該謂語(yǔ)取值為T(mén)RUE的行,才能插入VT1-J2中。

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

(2)WHERE 這個(gè)階段根據(jù)在WHERE子句中出現(xiàn)的謂語(yǔ)(<where_predicate>)對(duì)于VT1中的行進(jìn)行篩選。只有讓謂語(yǔ)計(jì)算結(jié)果為T(mén)RUE的行,才會(huì)插入VT2中。

(3)GROUP BY 按照GROUP BY子句中指定的列名列表,將VT2中的行進(jìn)行分組,生成VT3。

(4)HAVING 根據(jù)HAVING子句中出現(xiàn)的謂語(yǔ)(<having_predicate>)對(duì)VT3中的分組進(jìn)行篩選。只有讓謂語(yǔ)計(jì)算結(jié)果為T(mén)RUE的組,才會(huì)插入到VT4。

(5)SELECT 處理SELECT子句中的元素,生成VT5。

(5-1)計(jì)算表達(dá)式 計(jì)算SELECT列表中的表達(dá)式,生成VT5-1。

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

(5-3)TOP 根據(jù)ORDER BYi子句定義的邏輯排序,從VT5-2中選擇前面指定數(shù)量或百分比的行,生成表VT5-3。

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

以上就是一個(gè)完整的T-SQL語(yǔ)句的執(zhí)行過(guò)程,希望能給大家?guī)椭?/P>

以上內(nèi)容摘自《Microsoft SQL Server 2008技術(shù)內(nèi)幕 T-SQL查詢(xún)》一書(shū)。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 炉霍县| 手游| 仙游县| 万载县| 临海市| 廊坊市| 将乐县| 临清市| 旬阳县| 翁源县| 和顺县| 炉霍县| 察隅县| 白银市| 古丈县| 贵港市| 东乡族自治县| 济南市| 修武县| 桐柏县| 淳安县| 海丰县| 泸溪县| 永寿县| 高安市| 灌阳县| 霍山县| 马龙县| 和林格尔县| 皮山县| 舟曲县| 阿鲁科尔沁旗| 岳阳县| 建阳市| 吴忠市| 博乐市| 舞阳县| 云南省| 沧州市| 宜都市| 泰州市|