跟韓老師學(xué)SQL Server數(shù)據(jù)庫設(shè)計與開發(fā)

簡介
本書特色
前言
章節(jié)列表
精彩閱讀
下載資源
相關(guān)圖書
在軟件設(shè)計和開發(fā)過程中,需求分析確定后,在開發(fā)軟件前就需要先設(shè)計數(shù)據(jù)庫,然后再編寫代碼。本書講解的內(nèi)容是軟件開發(fā)人員必須要掌握的技術(shù),先講解如何根據(jù)項目的需求按關(guān)系型數(shù)據(jù)庫設(shè)計規(guī)范設(shè)計數(shù)據(jù)庫中的表,然后使用自己設(shè)計的數(shù)據(jù)庫來學(xué)習(xí)SQL語句。
本書完整地講述了SQL語句中使用的變量、數(shù)據(jù)類型、注釋行、運算符、常用函數(shù),以及流程控制語句。從單表查詢講起,講解使用WHERE篩選行將查詢的結(jié)果分組、排序,然后講解多表查詢和數(shù)據(jù)匯總,講解多表交叉聯(lián)結(jié)、內(nèi)聯(lián)結(jié)、外聯(lián)結(jié)、自聯(lián)結(jié),使用UNION合并查詢結(jié)果集,使用聚合函數(shù)匯總查詢結(jié)果,接著講解了子查詢、開窗函數(shù)和行列轉(zhuǎn)換技術(shù),實現(xiàn)數(shù)據(jù)完整性,創(chuàng)建和使用索引優(yōu)化性能,在數(shù)據(jù)庫中創(chuàng)建和使用視圖簡化查詢,使用存儲過程操作數(shù)據(jù)庫,創(chuàng)建用戶自定義函數(shù),在SQL語句中使用自定義函數(shù),使用觸發(fā)器實現(xiàn)復(fù)雜的業(yè)務(wù)邏輯,使用事務(wù)實現(xiàn)數(shù)據(jù)的完整性和一致性。
范式、多表聯(lián)接、聯(lián)接查詢、存儲過程、索引、觸發(fā)、事務(wù)、鎖……這些核心概念你真的懂嗎?
用最好懂的方式水煮復(fù)雜概念,所有似懂非懂一劍封喉!
超10年企業(yè)實戰(zhàn)經(jīng)驗與多年大學(xué)授課經(jīng)驗完善結(jié)合!
課本知識與企業(yè)需求無縫銜接,項目教學(xué)+案例教學(xué)+校企合作的完善實踐!
我最初學(xué)習(xí)數(shù)據(jù)庫是2001年,感覺學(xué)習(xí)SQL語句很難,而且學(xué)完后時間稍微一長就忘了。現(xiàn)在回想起來,當(dāng)時學(xué)習(xí)的難點非常關(guān)鍵的一點就是使用微軟SQL Server 2000的示例數(shù)據(jù)庫來學(xué)習(xí),作為初學(xué)者,根本不知道Northwind數(shù)據(jù)庫是用來做什么的,更不知道其中各個表之間的關(guān)系,也不知道為什么要把數(shù)據(jù)放到多張表,查詢時再連接成一張表。使用陌生的數(shù)據(jù)庫學(xué)習(xí)新知識自然帶來不少困難,不理解數(shù)據(jù)庫為什么要設(shè)計出多張表來存放數(shù)據(jù)以及各表之間的關(guān)系也就弄不清如何寫多表聯(lián)合查詢的條件。
獨立為幾家企業(yè)開發(fā)幾款軟件后熟悉了整個軟件開發(fā)流程,從客戶的需求分析到數(shù)據(jù)庫設(shè)計,再到軟件開發(fā)、測試部署和維護。在此期間使用自己設(shè)計的數(shù)據(jù)庫編寫SQL語句真是得心應(yīng)手,也因此找到了學(xué)習(xí)SQL的正確方法,即先學(xué)習(xí)數(shù)據(jù)庫設(shè)計,再學(xué)習(xí)對這些表增刪改查的SQL語句。
本書使用微軟SQL Server 2008搭建學(xué)習(xí)環(huán)境,以軟件開發(fā)過程中的需求分析文檔為基礎(chǔ)設(shè)計學(xué)習(xí)數(shù)據(jù)庫,然后使用自己設(shè)計的數(shù)據(jù)庫來學(xué)習(xí)SQL語句。
本書提供了生成學(xué)習(xí)環(huán)境的數(shù)據(jù)庫表和插入記錄的SQL語句,為你的學(xué)習(xí)準(zhǔn)備好了數(shù)據(jù)。
本書主要內(nèi)容
數(shù)據(jù)的結(jié)構(gòu)化集合稱為數(shù)據(jù)庫。數(shù)據(jù)庫模型可分為層次模型、網(wǎng)狀模型和關(guān)系模型。關(guān)系模型是目前最普遍使用的一種數(shù)據(jù)模型,它采用人們所熟知的二維表格來描述現(xiàn)實世界中的實體以及各實體之間的各種聯(lián)系,概念清晰、使用方便。在其被提出之后,就得到數(shù)據(jù)庫開發(fā)商的積極支持,使其迅速成為繼層次模型和網(wǎng)狀模型之后一種嶄新的數(shù)據(jù)庫模型,如今在數(shù)據(jù)庫技術(shù)領(lǐng)域占據(jù)了統(tǒng)治地位,市場上流行的數(shù)據(jù)庫產(chǎn)品幾乎都支持關(guān)系模型。本章通過一張表和一個簡單的教學(xué)管理系統(tǒng)案例來講解關(guān)系模型,以及如何利用關(guān)系模型來設(shè)計數(shù)據(jù)庫。
SQL的全稱是結(jié)構(gòu)化查詢語言,是Structured Query Language的縮寫。隨著關(guān)系數(shù)據(jù)庫理論的提出,美國國家標(biāo)準(zhǔn)協(xié)會(ANSI)首次定義了SQL標(biāo)準(zhǔn),隨后國際標(biāo)準(zhǔn)化組織(ISO)將SQL標(biāo)準(zhǔn)采納為國際標(biāo)準(zhǔn)。SQL語言在不斷發(fā)展的過程中經(jīng)歷了多次修改和完善。各大數(shù)據(jù)庫廠商在遵循ANSI標(biāo)準(zhǔn)的同時,根據(jù)自己的產(chǎn)品特點對SQL進行再開發(fā)和擴展,于是就有了SQL Server的Transact-SQL(簡稱T-SQL)、Oracle的PL/SQL等語言。本書以T-SQL為基礎(chǔ)進行SQL語言介紹,大部分SQL語言內(nèi)容同樣適用于其他數(shù)據(jù)庫產(chǎn)品。本章講述最基本的SQL內(nèi)容,這些知識雖然基礎(chǔ)簡單,但是對學(xué)好本書的后續(xù)內(nèi)容起著至關(guān)重要的作用。
從本章開始將踏上對數(shù)據(jù)的操作之旅,這正是SQL的目的,也是學(xué)習(xí)SQL語句樂趣的開始。數(shù)據(jù)的查詢,是SQL中使用最頻繁的操作,也是最重要的知識之一。在SQL Server中,大量的組件和技術(shù)都是為了查詢而存在,這正說明了查詢的重要性。在本章的數(shù)據(jù)查詢中會大量使用上一章中介紹的T-SQL語法、運算符等基礎(chǔ)知識,這些基礎(chǔ)知識還會貫穿在后續(xù)的章節(jié)中。
第3章中講述了基礎(chǔ)查詢,其涉及的都是在單個表上的查詢。但是單表查詢常常不能滿足查詢需求。在關(guān)系數(shù)據(jù)庫設(shè)計時,出于規(guī)范化,需要將數(shù)據(jù)分散在多個表中。T-SQL因關(guān)系型數(shù)據(jù)庫而生,因此在使用T-SQL進行查詢時會經(jīng)常涉及兩表或多表中的數(shù)據(jù),這就需要使用表的聯(lián)接來實現(xiàn)多個表數(shù)據(jù)之間的聯(lián)接查詢。聯(lián)接查詢是關(guān)系型數(shù)據(jù)庫的一個主要特點,同時也是區(qū)別于其他類型數(shù)據(jù)庫管理系統(tǒng)的一個主要標(biāo)志。本章將詳細(xì)講述多表聯(lián)接的類型,UNION合并結(jié)果集,增強型分組函數(shù)CUBE、ROLLUP和GROUPING SETS的使用方法。
如果說多表聯(lián)接使查詢語句變得復(fù)雜,那么子查詢則使得查詢變得更靈活、更有邏輯。所謂子查詢,就是一個嵌套在SELECT、INSERT、UPDATE、DELETE語句或其他子查詢中的查詢。在很多情況下,查詢并不是一蹴而就的,往往需要其他載體充當(dāng)中間角色,而子查詢正是充當(dāng)著中間集這樣一種角色。子查詢是內(nèi)部查詢,返回的結(jié)果集供外部查詢使用。子查詢根據(jù)返回結(jié)果集中值的數(shù)量可以分為標(biāo)量子查詢、多值子查詢和表子查詢,也可以根據(jù)對外部查詢的依賴性分為獨立子查詢和相關(guān)子查詢。本章會按照這兩種分類方式穿插介紹子查詢。
在設(shè)計表的時候,很多情況下都以方便數(shù)據(jù)存儲為目的,導(dǎo)致有時候直接閱讀這些表數(shù)據(jù)比較困難。前面幾章介紹的SQL查詢,數(shù)據(jù)的檢索都是針對一張表或多張表進行的,而窗口計算則是在表內(nèi)按用戶自定義規(guī)則進行每組數(shù)據(jù)的檢索和計算。在使用GROUP BY子句時,總是需要將篩選的所有數(shù)據(jù)進行分組操作,它的分組作用域是整張表,分組以后查詢?yōu)槊總組只返回一行,而使用基于窗口的操作則是對表中的一個窗口進行操作。行列轉(zhuǎn)換是通過語句將行數(shù)據(jù)轉(zhuǎn)換成列或列數(shù)據(jù)轉(zhuǎn)換成行顯示出來。
在前面各章中詳細(xì)地講述了有關(guān)數(shù)據(jù)查詢SELECT的知識,也在必要的地方略有涉及數(shù)據(jù)修改語句。在本章中,將會詳細(xì)介紹數(shù)據(jù)操作語言(DML)中的INSERT、UPDATE和DELETE語句以及使用MERGE進行數(shù)據(jù)合并。
數(shù)據(jù)完整性是用來保證數(shù)據(jù)庫中數(shù)據(jù)一致性的一種物理機制,主要用于防止非法、不合理或贅余數(shù)據(jù)存在于數(shù)據(jù)庫中。SQL Server提供了諸如數(shù)據(jù)類型、主鍵、外鍵、默認(rèn)值約束、檢查約束和規(guī)則等措施來實現(xiàn)這種機制。數(shù)據(jù)類型的實現(xiàn)機制不言自明,規(guī)則已經(jīng)逐漸被淘汰,并且可以使用約束來替代它,因此本章主要介紹數(shù)據(jù)完整性的基礎(chǔ)知識和實現(xiàn)數(shù)據(jù)完整性的各種約束。
無論是數(shù)據(jù)庫的開發(fā)人員、管理人員還是用戶,他們都希望能夠快速地從數(shù)據(jù)庫中查詢到期望的數(shù)據(jù)。如果表中數(shù)據(jù)量小,可能都能立即得到結(jié)果,但隨著數(shù)據(jù)量的不斷增大,查詢所花費的時間也在急劇增加。使用合理的索引可以對查詢進行優(yōu)化,但是不合理的索引也可能會產(chǎn)生很大的副作用。
在本章中將詳細(xì)介紹另一種表表達(dá)式:視圖(VIEW)。表表達(dá)式的基本目的是一樣的,都是通過查詢語句將滿足條件的數(shù)據(jù)篩選出來作為中間結(jié)果集以作他用。相比前面介紹的兩種表表達(dá)式,視圖和表一樣是數(shù)據(jù)庫的一種對象,它實實在在存儲在數(shù)據(jù)庫中,只要不顯式刪除它們就可以重復(fù)使用。
存儲過程(Stored Procedure)是“過程”的,和其他編程語言的過程類似。存儲過程是一段可執(zhí)行的服務(wù)端程序,一個存儲過程可以集合多條SQL語句,當(dāng)它和服務(wù)器進行數(shù)據(jù)交互時,不管存儲過程中包含有多少條SQL語句,服務(wù)器都會將它們作為一個事務(wù)進行處理并緩存它的執(zhí)行計劃。存儲過程封裝了語句,在編程角度考慮,它提高了復(fù)用性。和視圖類似,它隱藏了數(shù)據(jù)庫的復(fù)雜性,通過和視圖類似的授權(quán)方式它還提高了數(shù)據(jù)庫的安全性。同時,作為一種數(shù)據(jù)庫對象,存儲過程可以在需要時直接調(diào)用。本章主要介紹存儲過程的創(chuàng)建、修改和注意事項,以及存儲過程的特性。
在第2章中介紹了一些內(nèi)置的系統(tǒng)函數(shù),如聚合函數(shù)AVG()和SUM()、字符串函數(shù)SUBSTRING()和LTRIM()等,這些函數(shù)的作用就是實現(xiàn)特定的功能,簡化并封裝頻繁執(zhí)行的邏輯操作。除了這些內(nèi)置函數(shù),SQL Server還允許創(chuàng)建用戶自定義函數(shù)(User-Defined Functions,UDF)來擴展SQL語句的功能。
觸發(fā)器實現(xiàn)的是一種通過某些操作的觸發(fā)來完成另一個操作過程的功能。例如,當(dāng)刪除一張表中的某些記錄時同時希望刪除另一張表中的某些相關(guān)記錄,當(dāng)然這可以通過外鍵引用來實現(xiàn),但是對有些表沒有必要定義外鍵,這時候就可以通過觸發(fā)器來觸發(fā)實現(xiàn)。觸發(fā)器是被動觸發(fā)執(zhí)行的,它不像函數(shù)、存儲過程一樣可以被顯式調(diào)用。本章將詳細(xì)講述常用的AFTER觸發(fā)器及其工作原理,在介紹過程中會涉及簡單的事務(wù)概念。
多個用戶對同一數(shù)據(jù)進行交互稱為并發(fā)。如果不加以控制,并發(fā)可能引起很多問題。數(shù)據(jù)庫提供了可以合理解決并發(fā)問題的方案。在本章中,從事務(wù)開始介紹,然后介紹并發(fā)帶來的問題,最后詳細(xì)介紹鎖的機制和事務(wù)隔離級別。本章內(nèi)容貫穿整個數(shù)據(jù)庫系統(tǒng),理解本章內(nèi)容對數(shù)據(jù)庫其他方面的學(xué)習(xí)有極大幫助,由于涉及較多理論,因此這些內(nèi)容應(yīng)當(dāng)著重理解并通過實驗進行驗證。
本書適用于
數(shù)據(jù)庫管理員
軟件開發(fā)人員
企業(yè)IT運維人員
學(xué)生評價
韓立剛老師數(shù)據(jù)庫開發(fā)視頻教程:
http://edu.51cto.com/course/course_id-904.html
http://edu.51cto.com/course/course_id-926.html
下面是51CTO學(xué)院學(xué)生聽完韓老師“數(shù)據(jù)庫設(shè)計與開發(fā)”課程后的評價。
技術(shù)支持
技術(shù)交流和資料索取請聯(lián)系韓老師。
韓老師QQ:458717185。
韓立剛IT技術(shù)交流群:301678170。
韓老師視頻教學(xué)網(wǎng)站:http://www.91xueit.com。
韓老師微信:hanligangdongqing,微信支付書費,韓老師簽名寄書。
韓老師微信公眾號:han_91xueit。
致謝
河北師范大學(xué)軟件學(xué)院采用“校企合作”的辦學(xué)模式:在課程體系設(shè)計上與市場接軌;在教師的使用上,大量聘用來自企業(yè)一線的工程師;在教材及實驗手冊建設(shè)上,結(jié)合國內(nèi)優(yōu)秀教材的知識體系,大膽創(chuàng)新,開發(fā)了一系列理論與實踐相結(jié)合的教材(本教材即是其中一本)。在學(xué)院新穎模式的培養(yǎng)下,百余名學(xué)生進入知名企業(yè)實習(xí)或已簽訂就業(yè)合同,得到了用人企業(yè)的廣泛認(rèn)可。這些改革及成果的取得,首先要感謝河北師范大學(xué)校長蔣春瀾教授的大力支持和鼓勵,同時還要感謝河北師范大學(xué)校黨委對這一辦學(xué)模式的肯定與關(guān)心。
在此對河北師范大學(xué)數(shù)學(xué)與信息科學(xué)學(xué)院院長鄧明立教授、軟件學(xué)院副院長趙書良教授和李文斌副教授表示真誠的謝意,是他們?yōu)楸緯膶懽魈峁┝肆己玫沫h(huán)境,為本書內(nèi)容的教學(xué)實踐保駕護航,他們與編著者關(guān)于教學(xué)的溝通與交流為本書提供了豐富的案例和建議。感謝河北師范大學(xué)軟件學(xué)院教學(xué)團隊的每一位成員,感謝河北師范大學(xué)軟件學(xué)院的每一位學(xué)生,是他們的友好、熱情、幫助和關(guān)心促成了本書。
最后,感謝我的家人在本書創(chuàng)作過程中給予我的支持和理解。
韓立剛
2016年12月
1.1 關(guān)系模型基本概念 1
1.2 E-R模型到關(guān)系模型的轉(zhuǎn)化 3
1.3 數(shù)據(jù)庫設(shè)計規(guī)范 6
1.3.1 第一范式(1NF) 6
1.3.2 第二范式(2NF) 7
1.3.3 第三范式(3NF) 8
第2章 Transact-SQL概述 10
2.1 啟動SQL Server Management Studio
(SSMS) 10
2.2 T-SQL語句的類型 12
2.2.1 DDL語句 12
2.2.2 DCL語句 13
2.2.3 DML 14
2.3 T-SQL語法要素 16
2.3.1 SQL語句的批處理符號GO 16
2.3.2 EXEC 17
2.3.3 注釋符 17
2.3.4 標(biāo)識符 18
2.4 變量 19
2.5 數(shù)據(jù)類型 21
2.5.1 字符串類型 21
2.5.2 Unicode字符串類型 23
2.5.3 日期時間類型 23
2.5.4 數(shù)值類型 23
2.6 運算符 25
2.6.1 算術(shù)運算符 25
2.6.2 比較運算符 25
2.6.3 邏輯運算符 25
2.6.4 連接運算符 26
2.7 常用函數(shù) 26
2.7.1 聚合函數(shù) 27
2.7.2 數(shù)值函數(shù) 28
2.7.3 字符串函數(shù) 29
2.7.4 日期時間函數(shù) 30
2.7.5 數(shù)據(jù)類型轉(zhuǎn)換函數(shù) 31
2.7.6 控制NULL的常用函數(shù) 32
2.8 流程控制語句 32
2.8.1 條件判斷語句IF…ELSE和CASE 33
2.8.2 循環(huán)語句 35
第3章 查詢基礎(chǔ) 36
3.1 簡單查詢邏輯處理過程 36
3.2 數(shù)據(jù)庫對象的引用規(guī)則 39
3.3 指定表的返回列來篩選列 40
3.4 使用WHERE篩選行 41
3.4.1 使用比較運算符過濾數(shù)據(jù) 41
3.4.2 搜索范圍內(nèi)的值 41
3.4.3 使用IN指定列表搜索條件 42
3.4.4 使用LIKE關(guān)鍵字進行模糊匹配 42
3.4.5 使用NULL比較搜索條件 43
3.4.6 篩選時影響性能的注意事項 44
3.5 格式化結(jié)果集 44
3.5.1 在選擇列表中使用常量、函數(shù)和
表達(dá)式 44
3.5.2 使用別名 45
3.5.3 使用ORDER BY子句對結(jié)果排序 46
3.5.4 使用TOP限制結(jié)果集 48
3.5.5 使用DISTINCT消除重復(fù)行 50
3.6 使用GROUP BY子句和聚集函數(shù)進行
分組計算 51
3.6.1 在查詢中使用聚集函數(shù) 51
3.6.2 GROUP BY使用基礎(chǔ) 52
3.6.3 使用HAVING子句篩選分組后
的數(shù)據(jù) 53
第4章 多表聯(lián)接查詢和數(shù)據(jù)匯總 55
4.1 聯(lián)接基礎(chǔ)知識 55
4.1.1 在FROM子句中聯(lián)接 56
4.1.2 在WHERE子句中聯(lián)接 56
4.2 交叉聯(lián)接 57
4.3 內(nèi)聯(lián)接 57
4.4 外聯(lián)接 59
4.4.1 左外聯(lián)接 59
4.4.2 右外聯(lián)接 60
4.4.3 完全外部聯(lián)接 60
4.5 自聯(lián)接 62
4.5.1 使用同一列進行自聯(lián)接 62
4.5.2 使用不同列進行自聯(lián)接 62
4.6 聯(lián)接查詢的邏輯處理過程 64
4.7 多表聯(lián)接查詢 64
4.8 UNION合并結(jié)果集 64
4.8.1 UNION和UNION ALL 65
4.8.2 對合并結(jié)果集進行排序 66
4.8.3 結(jié)果集的合并順序 66
4.9 匯總數(shù)據(jù) 67
4.9.1 ROLLUP 67
4.9.2 CUBE 70
4.9.3 使用GROUPING SETS 70
4.9.4 GROUPING查看匯總行并區(qū)分
NULL 71
第5章 子查詢 73
5.1 獨立子查詢 73
5.1.1 獨立標(biāo)量子查詢 74
5.1.2 獨立多值子查詢 74
5.2 相關(guān)子查詢 75
5.3 使用IN(NOT IN)和EXISTS(NOT
EXISTS)謂詞 76
5.3.1 IN和NOT IN 77
5.3.2 EXISTS和NOT EXISTS 77
5.4 表表達(dá)式 81
5.4.1 派生表 81
5.4.2 公用表表達(dá)式(CTE) 84
第6章 開窗函數(shù)和行列轉(zhuǎn)換 89
6.1 窗口和開窗函數(shù) 89
6.2 排名窗口函數(shù) 90
6.2.1 使用ROW_NUMBER()進行
分區(qū)編號 91
6.2.2 使用RANK()和DENSE_RANK()
進行分區(qū)排名 94
6.2.3 使用NTILE()進行數(shù)據(jù)分組 96
6.3 聚合窗口函數(shù) 97
6.4 行列轉(zhuǎn)換 100
6.4.1 行轉(zhuǎn)列 100
6.4.2 列轉(zhuǎn)行 105
第7章 數(shù)據(jù)修改 109
7.1 插入數(shù)據(jù) 109
7.1.1 使用INSERT和VALUES插入
數(shù)據(jù) 109
7.1.2 使用SELECT INTO插入數(shù)據(jù) 110
7.1.3 使用INSERT和SELECT插入
數(shù)據(jù) 111
7.2 刪除數(shù)據(jù) 112
7.2.1 使用DELETE刪除行 112
7.2.2 使用TRUNCATE TABLE刪除
所有行 113
7.3 更新數(shù)據(jù) 113
7.3.1 使用SET和WHERE更新數(shù)據(jù) 113
7.3.2 更新基于其他表的數(shù)據(jù) 113
7.4 使用MERGE合并數(shù)據(jù) 114
7.5 通過表表達(dá)式修改數(shù)據(jù) 118
第8章 數(shù)據(jù)完整性 121
8.1 數(shù)據(jù)完整性的類型和實現(xiàn)方式 121
8.1.1 域完整性及實現(xiàn)方式 122
8.1.2 實體完整性及實現(xiàn)方式 122
8.1.3 參照完整性及實現(xiàn)方式 122
8.2 實現(xiàn)實體完整性 124
8.2.1 使用主鍵 124
8.2.2 使用UNIQUE約束 127
8.2.3 使用自增列 127
8.3 實現(xiàn)域完整性 131
8.3.1 CHECK約束 131
8.3.2 DEFAULT約束 132
8.3.3 NOT NULL定義 133
8.4 參照完整性 134
8.4.1 實現(xiàn)表間列的參照完整性 134
8.4.2 實現(xiàn)表內(nèi)列的參照完整性 137
8.5 使用關(guān)系圖實現(xiàn)參照完整性 138
8.6 使約束失效 141
8.7 使用圖形界面實現(xiàn)數(shù)據(jù)完整性 141
8.7.1 添加主鍵 141
8.7.2 設(shè)置UNIQUE約束 142
8.7.3 設(shè)置CHECK約束 142
8.7.4 設(shè)置默認(rèn)值約束 144
8.7.5 設(shè)置外鍵 145
8.7.6 禁用約束 147
第9章 索引 148
9.1 數(shù)據(jù)的存儲方式 149
9.1.1 頁(Page) 149
9.1.2 區(qū)(Extent) 152
9.1.3 索引分配映射頁(IAM頁) 152
9.1.4 估算表的大小 153
9.2 B樹(Balanced Tree) 154
9.3 查看頁內(nèi)容的工具 156
9.3.1 DBCC IND 156
9.3.2 DBCC PAGE 158
9.4 堆(Heaps) 160
9.5 聚集索引 162
9.5.1 約束與索引的關(guān)系 162
9.5.2 唯一聚集索引的物理結(jié)構(gòu) 163
9.5.3 不唯一聚集索引的物理結(jié)構(gòu) 167
9.5.4 使用聚集索引查找數(shù)據(jù)的
執(zhí)行計劃 168
9.6 非聚集索引及其物理結(jié)構(gòu) 169
9.6.1 在堆中的非聚集索引 169
9.6.2 在聚集表中的非聚集索引 172
9.6.3 使用非聚集索引查找數(shù)據(jù)的
執(zhí)行計劃 175
9.7 修改數(shù)據(jù)對索引結(jié)構(gòu)的影響 176
9.7.1 頁拆分和行移動現(xiàn)象 176
9.7.2 插入行 178
9.7.3 刪除行 179
9.7.4 更新行 180
9.8 碎片和索引維護 180
9.8.1 碎片 180
9.8.2 維護索引 182
9.9 復(fù)合索引 187
9.10 包含列索引 188
9.11 索引交叉 188
9.12 篩選索引 189
9.13 全文搜索 190
9.13.1 創(chuàng)建和修改全文目錄 191
9.13.2 創(chuàng)建全文索引 191
9.13.3 全文搜索的查詢方法 192
9.14 統(tǒng)計信息 194
9.14.1 了解統(tǒng)計信息的作用 194
9.14.2 查看和分析統(tǒng)計信息 195
9.14.3 創(chuàng)建統(tǒng)計信息 198
9.14.4 更新統(tǒng)計信息 198
9.14.5 同步和異步統(tǒng)計信息更新 200
9.15 基于索引設(shè)計的考慮 200
第10章 視圖 202
10.1 視圖簡介 202
10.2 使用標(biāo)準(zhǔn)視圖 204
10.2.1 創(chuàng)建標(biāo)準(zhǔn)視圖 204
10.2.2 通過視圖更新數(shù)據(jù) 206
10.2.3 修改和刪除視圖 208
10.3 視圖選項 209
10.3.1 使用ENCRYPTION選項 209
10.3.2 使用SCHEMABINDING選項 210
10.3.3 使用CHECK OPTION選項 211
10.4 使用索引視圖 212
10.4.1 創(chuàng)建索引視圖 213
10.4.2 索引視圖的性能 213
10.4.3 更新索引視圖 214
10.5 視圖的優(yōu)點 215
第11章 存儲過程 216
11.1 存儲過程的類型 216
11.1.1 系統(tǒng)存儲過程 217
11.1.2 擴展存儲過程 217
11.1.3 用戶自定義存儲過程 217
11.2 SQL存儲過程 218
11.2.1 創(chuàng)建無參數(shù)的存儲過程 218
11.2.2 修改和刪除存儲過程 220
11.2.3 創(chuàng)建帶參數(shù)的存儲過程 221
11.2.4 獲取存儲過程的執(zhí)行結(jié)果 223
11.3 存儲過程示例分析 224
11.4 存儲過程的解析特點 225
11.5 存儲過程的編譯、重編譯 226
11.6 使用存儲過程的優(yōu)缺點 227
第12章 用戶自定義函數(shù) 229
12.1 UDF簡介 229
12.2 標(biāo)量UDF 230
12.3 內(nèi)聯(lián)表值函數(shù) 232
12.4 多語句表值函數(shù) 233
12.5 UDF的修改和刪除 235
12.6 UDF的調(diào)用分析 235
第13章 觸發(fā)器 239
13.1 觸發(fā)器的概念和分類 239
13.2 DML觸發(fā)器 240
13.2.1 兩張?zhí)厥獾呐R時表 240
13.2.2 insert觸發(fā)器 241
13.2.3 delete觸發(fā)器 242
13.2.4 update觸發(fā)器 244
13.2.5 禁用和啟用觸發(fā)器 244
13.2.6 檢測基于列修改的觸發(fā)器 244
13.2.7 FIRST觸發(fā)器和LAST觸發(fā)器 245
13.3 使用觸發(fā)器實現(xiàn)審核跟蹤 246
13.4 DML觸發(fā)器的工作原理和事務(wù)控制 246
13.4.1 觸發(fā)器的工作原理 247
13.4.2 DML觸發(fā)器的事務(wù)控制 248
13.5 DDL觸發(fā)器 249
13.5.1 創(chuàng)建數(shù)據(jù)庫級別的DDL觸發(fā)器 249
13.5.2 創(chuàng)建服務(wù)器級別的DDL觸發(fā)器 250
第14章 事務(wù)和鎖 251
14.1 事務(wù) 251
14.1.1 顯式事務(wù)處理模式 252
14.1.2 自動提交事務(wù)模式 253
14.1.3 隱式事務(wù)處理模式 253
14.1.4 嵌套事務(wù)的控制 254
14.1.5 事務(wù)、事務(wù)日志和檢查點 255
14.2 并發(fā)訪問引起的問題 257
14.3 鎖 260
14.3.1 鎖的粒度和鎖升級 260
14.3.2 鎖的類型和查看鎖 261
14.3.3 鎖的兼容性 265
14.4 設(shè)置事務(wù)隔離級別 266
14.4.1 SQL標(biāo)準(zhǔn)定義的4種事務(wù)隔離
級別 266
14.4.2 行版本的事務(wù)隔離級別 271
14.5 隔離級別、鎖和并發(fā)問題的關(guān)系 274
14.6 死鎖 275
- 信息技術(shù)基礎(chǔ)(麒麟操作系統(tǒng)+WPS Office) [主編 芮雪 蔣莉 王亮亮]
- Office高級應(yīng)用項目式教程(第2版) [主編 李觀金 張倩文 黎夏克 ]
- 巧用翻譯學(xué)英語:英漢互譯500例 [王學(xué)文 著]
- 高等教育多維評價體系構(gòu)建與高質(zhì)量發(fā)展研究 [張妍 著]
- 系統(tǒng)規(guī)劃與管理師章節(jié)習(xí)題與考點特訓(xùn)(第二版) [主編 薛大龍]
- 計算機操作系統(tǒng)實踐指導(dǎo)(openEuler版) [主編 秦光 曾陳萍 岳付強]
- 信息系統(tǒng)管理工程師真題及模考卷精析(適用機考) [主 編 薛大龍 程 剛 上官緒]
- 航海類院校體育教育教學(xué)研究 [張利超 李寧 著]
- 新時代背景下我國職業(yè)教育產(chǎn)教融合長效機制建設(shè)研究 [王玉賢 著]
- 電路分析 [主編 李飛 毛先柏]
- 信息系統(tǒng)管理工程師(適用第2版大綱)一站通關(guān) [指尖瘋 編著]
- 傳統(tǒng)山水畫論解讀與實踐 [陳鈉 著]
- 網(wǎng)絡(luò)工程師備考一本通(適配第6版考綱) [夏杰 編著]
- 陳孝云的職教理想與情懷 [祝吉太 江傳瑞 張義廷 著]
- 地方本科院校電子信息學(xué)科課程思政案例集 [王甫]
- Excel數(shù)據(jù)處理與分析(第二版) [主編 張志明 鄒 蕾]
- 網(wǎng)絡(luò)工程師5天修煉(適配第6版考綱) [主編 朱小平 施游]
- 倉儲管理實務(wù)(第二版) [周寧武 編著]
- 基于AE與C#的地理信息系統(tǒng)二次開發(fā) [李小根 賈艷昌 喬翠平 姜彤 ]
- 2023年長沙市文化和旅游業(yè)發(fā)展報告 [主編 陳莉]
- 舞臺化妝造型設(shè)計 [主編 劉思彤 張 濤 張憶雨]
- 產(chǎn)教融合視角高校體育專業(yè)實踐教學(xué)體系構(gòu)建研究 [楊柳青 葉華兵 著]
- 知識圖譜及應(yīng)用案例 [張善文 黃文準(zhǔn) 于長青 陳明淑]
- Python程序設(shè)計案例教程(微課版) [主編 石利平 田輝平 余以勝]
- 皓月繁星:青少年兒童心理成長手冊 [主 編 林贊歌 副主編 杜志南]
- 材料力學(xué) [章寶華 趙新勝 徐斌]
- 系統(tǒng)集成項目管理工程師考試32小時通關(guān)(第3版) [主編 薛大龍 副主編 上官緒陽]
- 軟考論文高分特訓(xùn)與范文10篇——系統(tǒng)分析師(第二版) [薛大龍 鄒月平 施游]
- 黃河海勃灣水利樞紐防凌安全運行 [王戰(zhàn)領(lǐng) 王叢發(fā) 范瑜彬 著]
- 大學(xué)生心理健康教育 [方雄 著]