發表於2024-11-23
微軟MVP、51CTO專傢講師韓立剛老師嘔心著作,十餘年企業實踐經驗+大學授課經驗,毫無保留
l 範式、多錶聯接、聯接查詢、存儲過程、索引、觸發、事務、鎖……這些核心概念你真的懂嗎?
l 用好懂的方式水煮講解復雜概念,所有似懂非懂一掃而光!
l 超10年企業實戰經驗與多年大學授課經驗完美結閤
l 課本知識與企業需求無縫銜接,項目教學+案例教學+校企閤作的完美實踐
本書是一本數據庫設計與開發的創新型教材。
本書以SQL Server為平颱,在滿足知識係統性的前提下,重點解決數據庫設計與開發的學習過程中的重點難點問題。全書力求深入淺齣,生動有趣,貼閤職業需求,以好教、好學、有用為標準,是一本真正具有創新意義的數據庫技術教材經典。
在軟件設計和開發過程中,需求分析確定後,在開發軟件前就需要先設計數據庫,然後再編寫代碼。本書講解的內容是軟件開發人員必須要掌握的技術,先講解如何根據項目的需求按關係型數據庫設計規範設計數據庫中的錶,然後使用自己設計的數據庫來學習SQL語句。
本書完整地講述瞭SQL語句中使用的變量、數據類型、注釋行、運算符、常用函數,以及流程控製語句。從單錶查詢講起,講解使用WHERE篩選行將查詢的結果分組、排序,然後講解多錶查詢和數據匯總,講解多錶交叉聯結、內聯結、外聯結、自聯結,使用UNION閤並查詢結果集,使用聚閤函數匯總查詢結果,接著講解瞭子查詢、開窗函數和行列轉換技術,實現數據完整性,創建和使用索引優化性能,在數據庫中創建和使用視圖簡化查詢,使用存儲過程操作數據庫,創建用戶自定義函數,在SQL語句中使用自定義函數,使用觸發器實現復雜的業務邏輯,使用事務實現數據的完整性和一緻性。
本書適閤於本專科計算機專業或相關專業的數據庫教學用書。也適閤於數據庫管理員、軟件開發人員、企業IT運維人員及廣大數據庫愛好者自學使用
●微軟MVP,超過10年微軟、思科技術培訓及企業實踐經驗
●現任河北師範大學一綫授課講師
●51CTO視頻學院金牌講師,聽課人數達到數百萬。錄有完整的IT技術視頻課程體係,現已錄製共49套課程,總時長超過3萬分鍾
●在IT教育領域倡導“視頻教學+QQ答疑”和“終身師徒關係”教學模式
●韓老師的課程,學生的普遍感受是學得輕鬆、學得透徹、學得管用,在找工作或換工作時心裏真正有底氣。原因有四:
1. 一是著力解決大學生在傳統數據庫教材中不易吃透的、似是而非的、似懂非懂問題。
2. 二是著力解決普通數據庫技術教材中理論不易實踐的問題。
3. 三是著力解決普通數據庫教材中知識點與企業實際需求脫節的問題。
4. 四是著力解決怎樣纔能讓學生學得輕鬆、學得生動、學得深刻的問題。
前言
第1章 關係數據庫 /1
1.1 關係模型基本概念 /1
1.2 E-R模型到關係模型的轉化 /3
1.3 數據庫設計規範 /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 標識符 /18
2.4 變量 /19
2.5 數據類型 /21
2.5.1 字符串類型 /21
2.5.2 Unicode字符串類型 /23
2.5.3 日期時間類型 /23
2.5.4 數值類型 /23
2.6 運算符 /25
2.6.1 算術運算符 /25
2.6.2 比較運算符 /25
2.6.3 邏輯運算符 /25
2.6.4 連接運算符 /26
2.7 常用函數 /26
2.7.1 聚閤函數 /27
2.7.2 數值函數 /28
2.7.3 字符串函數 /29
2.7.4 日期時間函數 /30
2.7.5 數據類型轉換函數 /31
2.7.6 控製NULL的常用函數 /32
2.8 流程控製語句 /32
2.8.1 條件判斷語句IF…ELSE和CASE /33
2.8.2 循環語句 /35
第3章 查詢基礎 /36
3.1 簡單查詢邏輯處理過程 /36
3.2 數據庫對象的引用規則 /39
3.3 指定錶的返迴列來篩選列 /40
3.4 使用WHERE篩選行 /41
3.4.1 使用比較運算符過濾數據 /41
3.4.2 搜索範圍內的值 /41
3.4.3 使用IN指定列錶搜索條件 /42
3.4.4 使用LIKE關鍵字進行模糊匹配 /42
3.4.5 使用NULL比較搜索條件 /43
3.4.6 篩選時影響性能的注意事項 /44
3.5 格式化結果集 /44
3.5.1 在選擇列錶中使用常量、函數和錶達式 /44
3.5.2 使用彆名 /45
3.5.3 使用ORDER BY子句對結果排序 /46
3.5.4 使用TOP限製結果集 /48
3.5.5 使用DISTINCT消除重復行 /50
3.6 使用GROUP BY子句和聚集函數進行
分組計算 /51
3.6.1 在查詢中使用聚集函數 /51
3.6.2 GROUP BY使用基礎 /52
3.6.3 使用HAVING子句篩選分組後的數據 /53
第4章 多錶聯接查詢和數據匯總 /55
4.1 聯接基礎知識 /55
4.1.1 在FROM子句中聯接 /56
4.1.2 在WHERE子句中聯接 /56
4.2 交叉聯接 /57
4.3 內聯接 /57
4.4 外聯接 /59
4.4.1 左外聯接 /59
4.4.2 右外聯接 /60
4.4.3 完全外部聯接 /60
4.5 自聯接 /62
4.5.1 使用同一列進行自聯接 /62
4.5.2 使用不同列進行自聯接 /62
4.6 聯接查詢的邏輯處理過程 /64
4.7 多錶聯接查詢 /64
4.8 UNION閤並結果集 /64
4.8.1 UNION和UNION ALL /65
4.8.2 對閤並結果集進行排序 /66
4.8.3 結果集的閤並順序 /66
4.9 匯總數據 /67
4.9.1 ROLLUP /67
4.9.2 CUBE /70
4.9.3 使用GROUPING SETS /70
4.9.4 GROUPING查看匯總行並區分NULL /71
第5章 子查詢 /73
5.1 獨立子查詢 /73
5.1.1 獨立標量子查詢 /74
5.1.2 獨立多值子查詢 /74
5.2 相關子查詢 /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 錶錶達式 /81
5.4.1 派生錶 /81
5.4.2 公用錶錶達式(CTE) /84
第6章 開窗函數和行列轉換 /89
6.1 窗口和開窗函數 /89
6.2 排名窗口函數 /90
6.2.1 使用ROW_NUMBER()進行分區編號 /91
6.2.2 使用RANK()和DENSE_RANK()進行分區排名 /94
6.2.3 使用NTILE()進行數據分組 /96
6.3 聚閤窗口函數 /97
6.4 行列轉換 /100
6.4.1 行轉列 /100
6.4.2 列轉行 /105
第7章 數據修改 /109
7.1 插入數據 /109
7.1.1 使用INSERT和VALUES插入數據 /109
7.1.2 使用SELECT INTO插入數據 /110
7.1.3 使用INSERT和SELECT插入數據 /111
7.2 刪除數據 /112
7.2.1 使用DELETE刪除行 /112
7.2.2 使用TRUNCATE TABLE刪除所有行 /113
7.3 更新數據 /113
7.3.1 使用SET和WHERE更新數據 /113
7.3.2 更新基於其他錶的數據 /113
7.4 使用MERGE閤並數據 /114
7.5 通過錶錶達式修改數據 /118
第8章 數據完整性 /121
8.1 數據完整性的類型和實現方式 /121
8.1.1 域完整性及實現方式 /122
8.1.2 實體完整性及實現方式 /122
8.1.3 參照完整性及實現方式 /122
8.2 實現實體完整性 /124
8.2.1 使用主鍵 /124
8.2.2 使用UNIQUE約束 /127
8.2.3 使用自增列 /127
8.3 實現域完整性 /131
8.3.1 CHECK約束 /131
8.3.2 DEFAULT約束 /132
8.3.3 NOT NULL定義 /133
8.4 參照完整性 /134
8.4.1 實現錶間列的參照完整性 /134
8.4.2 實現錶內列的參照完整性 /137
8.5 使用關係圖實現參照完整性 /138
8.6 使約束失效 /141
8.7 使用圖形界麵實現數據完整性 /141
8.7.1 添加主鍵 /141
8.7.2 設置UNIQUE約束 /142
8.7.3 設置CHECK約束 /142
8.7.4 設置默認值約束 /144
8.7.5 設置外鍵 /145
8.7.6 禁用約束 /147
第9章 索引 /148
9.1 數據的存儲方式 /149
9.1.1 頁(Page) /149
9.1.2 區(Extent) /152
9.1.3 索引分配映射頁(IAM頁) /152
9.1.4 估算錶的大小 /153
9.2 B樹(Balanced Tree) /154
9.3 查看頁內容的工具 /156
9.3.1 DBCC IND /156
9.3.2 DBCC PAGE /158
9.4 堆(Heaps) /160
9.5 聚集索引 /162
9.5.1 約束與索引的關係 /162
9.5.2 唯一聚集索引的物理結構 /163
9.5.3 不唯一聚集索引的物理結構 /167
9.5.4 使用聚集索引查找數據的執行計劃 /168
9.6 非聚集索引及其物理結構 /169
9.6.1 在堆中的非聚集索引 /169
9.6.2 在聚集錶中的非聚集索引 /172
9.6.3 使用非聚集索引查找數據的執行計劃 /175
9.7 修改數據對索引結構的影響 /176
9.7.1 頁拆分和行移動現象 /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 復閤索引 /187
9.10 包含列索引 /188
9.11 索引交叉 /188
9.12 篩選索引 /189
9.13 全文搜索 /190
9.13.1 創建和修改全文目錄 /191
9.13.2 創建全文索引 /191
9.13.3 全文搜索的查詢方法 /192
9.14 統計信息 /194
9.14.1 瞭解統計信息的作用 /194
9.14.2 查看和分析統計信息 /195
9.14.3 創建統計信息 /198
9.14.4 更新統計信息 /198
9.14.5 同步和異步統計信息更新 /200
9.15 基於索引設計的考慮 /200
第10章 視圖 /202
10.1 視圖簡介 /202
10.2 使用標準視圖 /204
10.2.1 創建標準視圖 /204
10.2.2 通過視圖更新數據 /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 創建索引視圖 /213
10.4.2 索引視圖的性能 /213
10.4.3 更新索引視圖 /214
10.5 視圖的優點 /215
第11章 存儲過程 /216
11.1 存儲過程的類型 /216
11.1.1 係統存儲過程 /217
11.1.2 擴展存儲過程 /217
11.1.3 用戶自定義存儲過程 /217
11.2 SQL存儲過程 /218
11.2.1 創建無參數的存儲過程 /218
11.2.2 修改和刪除存儲過程 /220
11.2.3 創建帶參數的存儲過程 /221
11.2.4 獲取存儲過程的執行結果 /223
11.3 存儲過程示例分析 /224
11.4 存儲過程的解析特點 /225
11.5 存儲過程的編譯、重編譯 /226
11.6 使用存儲過程的優缺點 /227
第12章 用戶自定義函數 /229
12.1 UDF簡介 /229
12.2 標量UDF /230
12.3 內聯錶值函數 /232
12.4 多語句錶值函數 /233
12.5 UDF的修改和刪除 /235
12.6 UDF的調用分析 /235
第13章 觸發器 /239
13.1 觸發器的概念和分類 /239
13.2 DML觸發器 /240
13.2.1 兩張特殊的臨時錶 /240
13.2.2 insert觸發器 /241
13.2.3 delete觸發器 /242
13.2.4 update觸發器 /244
13.2.5 禁用和啓用觸發器 /244
13.2.6 檢測基於列修改的觸發器 /244
13.2.7 FIRST觸發器和LAST觸發器 /245
13.3 使用觸發器實現審核跟蹤 /246
13.4 DML觸發器的工作原理和事務控製 /246
13.4.1 觸發器的工作原理 /247
13.4.2 DML觸發器的事務控製 /248
13.5 DDL觸發器 /249
13.5.1 創建數據庫級彆的DDL觸發器 /249
13.5.2 創建服務器級彆的DDL觸發器 /250
第14章 事務和鎖 /251
14.1 事務 /251
14.1.1 顯式事務處理模式 /252
14.1.2 自動提交事務模式 /253
14.1.3 隱式事務處理模式 /253
14.1.4 嵌套事務的控製 /254
14.1.5 事務、事務日誌和檢查點 /255
14.2 並發訪問引起的問題 /257
14.3 鎖 /260
14.3.1 鎖的粒度和鎖升級 /260
14.3.2 鎖的類型和查看鎖 /261
14.3.3 鎖的兼容性 /265
14.4 設置事務隔離級彆 /266
14.4.1 SQL標準定義的4種事務隔離級彆 /266
14.4.2 行版本的事務隔離級彆 /271
14.5 隔離級彆、鎖和並發問題的關係 /274
14.6 死鎖 /275
基礎不牢 地動山搖
●何去何從?
也許你正在大學學習數據庫課程,也許你已從計算機或相關專業大學畢業,無論如何,你或多或少已聽說瞭SQL、SQL Server、Oracle、DB、MySQL、Access等一大堆相關概念。倒底從哪裏開始學?
SQL的英文全稱是Structured Query Language,也就是結構化查詢語言。SQL Server、Oracle、DB、M 跟韓老師學SQL Server數據庫設計與開發 下載 mobi epub pdf txt 電子書 格式
跟韓老師學SQL Server數據庫設計與開發 下載 mobi pdf epub txt 電子書 格式 2024
跟韓老師學SQL Server數據庫設計與開發 下載 mobi epub pdf 電子書公司購買的專業書籍,是正版。
評分這是MSSQL2008版,正好能用上。韓老師很專業,講解的都是能夠用上的知識。。
評分藍月亮 清潔抑菌 滋潤保濕洗手液
評分還行。
評分老韓2017年最新IT基礎力作——繼上次VMware虛擬機後的第2本IT基礎類教材,對學習微軟SQL Server基礎知識的朋友來說,可以看看,內容通俗易懂,秉持瞭老韓一貫的教學風格。
評分書質量不錯
評分挺好的,不錯
評分正在學習中,如果有配套視頻就好瞭。
評分包裝太差太差
跟韓老師學SQL Server數據庫設計與開發 mobi epub pdf txt 電子書 格式下載 2024