産品特色
編輯推薦
30小時慕課教學視頻同步講解,讓學習更高效快捷
80個精彩課堂案例,12個課堂實驗,1個綜閤案例,Java學習從入門到精通
66道習題,300道自測題,5套自測試捲,鞏固所學知識
提供免費教學資源,包括精品教學PPT、案例源代碼、自測題庫、拓展綜閤案例
內容簡介
本書共分13章,係統地介紹瞭數據庫基礎,SQL Server 2012安裝與配置,創建和管理數據庫,錶與錶數據操作,視圖操作,Transact-SQL語法,數據查詢,索引與數據完整性,流程控製、存儲過程與觸發器,SQL Server 2012高級開發,SQL Server 2012安全管理,以及SQL Server 2012維護管理等內容。全書後一章是綜閤案例。書後附有上機實驗,供讀者綜閤實踐使用。 本書為慕課版教材,各章節主要內容配備瞭以二維碼為載體的微課,並在人郵學院 平颱上提供瞭慕課。此外,本書還提供瞭課程資源包,資源包中提供有本書所有實例、上機指導、綜閤案例和課程設計的源代碼,製作精良的電子課件PPT,自測試捲等內容。資源包也可在人郵學院上下載。其中,源代碼全部經過精心測試,能夠在Windows7、Windows8、Windows10係統下編譯和運行。
作者簡介
明日科技,程序設計類暢銷書作者,其主要作品“視頻大講堂”係列,每個品種都在其同品種的圖書中銷售名列前茅。纍計銷售數十萬冊。其中《SQL Server從入門到精通》長期占據SQL Server零售圖書排行榜首位,年銷量數萬冊。
目錄
第1章 數據庫基礎 1
1.1 數據庫係統簡介 2
1.1.1 數據庫技術的發展 2
1.1.2 數據庫係統的組成 2
1.2 數 據 模 型 2
1.2.1 數據模型的概念 2
1.2.2 常見的數據模型 3
1.2.3 關係數據庫的規範化 4
1.2.4 關係數據庫的設計原則 6
1.2.5 實體與關係 6
1.3 數據庫的體係結構 7
1.3.1 數據庫三級模式結構 7
1.3.2 三級模式之間的映射 8
1.4 常見關係數據庫 8
1.4.1 Access數據庫 8
1.4.2 SQL Server數據庫 8
1.4.3 Oracle數據庫 9
1.5 Transact-SQL簡介 9
小 結 10
習 題 10
第2章 SQL Server 2012安裝與配置 11
2.1 SQL Server 2012簡介 12
2.1.1 SQL Server 2012概述 12
2.1.2 SQL Server 2012的
數據庫特性 12
2.2 SQL Server 2012的安裝 12
2.2.1 安裝SQL Server 2012
的必備條件 13
2.2.2 瞭解用戶賬戶和身份
驗證模式 13
2.2.3 SQL Server 2012的安裝 13
2.2.4 SQL Server 2012的卸載 25
2.3 SQL Server 2012的服務 26
2.3.1 後颱啓動SQL Server 2012 26
2.3.2 通過SQL Server配置管理器
啓動SQL Server 2012 27
2.4 SQL Server 2012服務器的注冊 27
2.4.1 服務器組的創建與刪除 28
2.4.2 服務器的注冊與刪除 30
2.5 SQL Server 2012幫助的使用 33
小 結 34
第3章 創建和管理數據庫 35
3.1 認識數據庫 36
3.1.1 數據庫的基本概念 36
3.1.2 數據庫常用對象 36
3.1.3 數據庫的組成 37
3.1.4 係統數據庫 38
3.2 SQL Server的命名規範 38
3.2.1 標識符 38
3.2.2 對象命名規則 39
3.2.3 實例命名規則 40
3.3 數據庫操作 40
3.3.1 創建數據庫 40 實例:使用命令創建超市管理係統數據庫db_supermarket
3.3.2 修改數據庫 43 實例:將一個數據文件添加到MingRi數據庫中
3.3.3 刪除數據庫 46 實例:刪除數據庫“MingRi”
小 結 48
習 題 49
第4章 錶與錶數據操作 50
4.1 數據錶操作 51
4.1.1 數據錶設計原則 51
4.1.2 數據錶基礎 51
4.1.3 以界麵方式創建、修改
和刪除數據錶 54
4.1.4 使用CREATE TABLE
語句創建錶 56
實例:創建員工基本信息錶
4.1.5 使用ALTER TABLE
語句修改錶 59
實例:嚮db_2012數據庫中的tb_Student錶
中添加Sex字段
4.1.6 使用DROP TABLE
語句刪除錶 60
實例:刪除 db _2012數據庫中的數據錶tb_
Student
4.2 分區錶 61
4.2.1 分區錶概述 61
4.2.2 使用界麵創建分區錶 61
4.2.3 使用命令創建分區錶 64
實例:在數據庫“d b_2012”中創建分
區錶
4.3 更新 66
4.3.1 使用SQL Server Management Studio
添加記錄 66
4.3.2 使用INSERT 語句添加記錄 67
實例:嚮員工基本信息錶中插入記錄
4.3.3 使用SQL Server Management
studio 修改記錄 67
4.3.4 使用UPDATE 語句修改記錄 68
實例:更新所有員工記錄
實例:更新符閤條件的記錄
4.3.5 使用SQL Server Management Studio
刪除記錄 68
4.3.6 使用DELETE 語句刪除記錄 69
實例:刪除員工信息
4.4 錶與錶之間的關聯 69
4.4.1 一對一關係 70
4.4.2 一對多關係 71
4.4.3 多對多關係 71
小結 72
習題 72
第5 章 視圖操作 73
5.1 視圖概述 74
5.1.1 使用界麵方式操作視圖 74
5.1.2 使用CREATE VIEW
語句創建視圖 76
實例:創建倉庫入庫錶視圖
5.1.3 使用ALTER VIEW
語句修改視圖 76
實例:修改倉庫入庫錶視圖
5.1.4 使用DROP VIEW
語句刪除視圖 77
5.2 視圖中的數據操作 78
5.2.1 從視圖中瀏覽數據 78
5.2.2 嚮視圖中添加數據 79
5.2.3 修改視圖中的數據 79
5.2.4 刪除視圖中的數據 80
小結 80
習題 80
第6 章 Transact-SQL 語法基礎 81
6.1 T-SQL 概述 82
6.1.1 T-SQL 語言的組成 82
6.1.2 T-SQL 語句結構 82
實例:在Student數據庫中查詢“course”
錶的信息
6.2 常量 83
6.3 變量 83
6.3.1 局部變量 83
實例:在course錶中,把“課程內容”是
“藝術類”信息賦
值給局部變量@songname,並顯示齣來
6.3.2 全局變量 85
實例:修改authors錶時,用@@ERROR
檢測限製查詢衝突
6.4 注釋符、運算符與通配符 87
6.4.1 注釋符(Annotation) 87
6.4.2 運算符(Operator) 88
實例:用“+”連接兩個字符串
6.4.3 通配符(Wildcard) 91
小結 91
習題 91
第7 章 數據的查詢 92
7.1 創建查詢和測試查詢 93
7.2 選擇查詢 93
7.2.1 簡單的SELECT 查詢 93
7.2.2 重新對列排序 95
實例:按照年齡對員工進行排序
7.2.3 使用運算符或函數
進行列計算 96
實例:使用運算符進行列計算
7.2.4 利用WHERE 參數過濾數據 96
實例:根據姓名和密碼查詢用戶
7.2.5 消除重復記錄 102
7.3 數據匯總 103
7.3.1 使用聚閤函數 103
7.3.2 使用GROUP BY 子句 104
7.3.3 使用HAVING 子句 105
7.4 基於多錶的連接查詢 105
7.4.1 連接謂詞 105
7.4.2 以JOIN 關鍵字指定的連接 105
7.5 子 查 詢 108
7.5.1 使用IN 或NOT IN
的子查詢 108
實例:使用IN查詢員工信息
7.5.2 使用比較運算符的子查詢 109
7.5.3 使用EXISTS 的子查詢 110
實例:使用EXISTS進行員工信息查詢
7.5.4 使用UNION 運算符組閤
多個結果 111
實例:使用Transact-SQL刪除視圖
小結 111
習題 111
第8 章 索引與數據完整性 113
8.1 索 引 114
8.1.1 索引的概念 114
8.1.2 索引的建立 114
實例:創建非聚集索引
實例:創建唯一聚集索引
實例:創建組閤索引
8.1.3 索引的刪除 117
實例:刪除員工錶索引
8.1.4 索引的分析與維護 118
實例:查詢學生信息
實例:查詢學生信息並顯示查詢處理過後
在磁盤移動的統計信息
8.2 數據完整性 120
8.2.1 數據完整性概述 120
8.2.2 實現數據完整性 122
8.2.3 使用約束 123
實例:創建數據錶Employee,並將字段ID
設置主鍵約束
小結 135
習題 135
第9 章 流程控製、存儲過程
與觸發器 136
9.1 流程控製 137
9.1.1 BEGIN…END 137
9.1.2 IF 138
9.1.3 IF…ELSE 139
9.1.4 CASE 140
9.1.5 WHILE 143
9.1.6 WHILE…CONTINUE
…BREAK 143
9.1.7 RETURN 144
9.1.8 GOTO 145
9.1.9 WAITFOR 146
9.2 存儲過程簡介 146
9.2.1 存儲過程的優點 147
9.2.2 存儲過程的類彆 147
9.3 創建存儲過程 147
9.3.1 使用SQL Server Management
Studio 創建存儲過程 148
9.3.2 使用Transact-SQL 語言
創建存儲過程 149
實例:為User錶創建存儲過程
9.4 執行存儲過程 150
實例:執行user錶的存儲過程
9.5 查看和修改存儲過程 151
9.5.1 使用SQL Server Management
Studio 查看和修改存儲過程
151
9.5.2 使用Transact-SQL 語言
查看和修改存儲過程 152
實例:查看user錶的存儲過程
9.6 刪除存儲過程 154
9.6.1 使用SQL Server Mangement
Studio 刪除存儲過程 154
9.6.2 使用Transact-SQL 語言
刪除存儲過程 155
9.7 觸發器簡介 155
9.7.1 觸發器的概念 155
9.7.2 觸發器的功能 155
9.7.3 觸發器的類型和觸發操作 156
9.8 創建觸發器 156
9.8.1 使用SQL Server Management
Studio 創建觸發器 156
9.8.2 使用Transact-SQL 語言
創建觸發器 157
實例:為員工錶創建觸發器
9.9 修改觸發器 160
9.9.1 使用SQL Server Management
Studio 修改觸發器 160
9.9.2 使用Transact-SQL
語言管理觸發器 161
9.10 刪除觸發器 162
9.10.1 使用SQL Server Management
Studio 刪除觸發器 162
9.10.2 使用Transact-SQL 語
言刪除觸發器 162
小 結 163
習 題 163
第10 章 SQL Server 2012 高級開發 164
10.1 用戶自定義數據類型 165
10.1.1 使用界麵方式創建用戶
定義數據類型 165
10.1.2 使用SQL 語句創建用
戶自定義數據類型 165
10.2 用戶自定義函數 166
10.2.1 創建用戶自定義函數 167
10.2.2 使用Transact-SQL 語言
創建用戶自定義函數 167
實例:創建user錶的自定義函數
10.2.3 修改、刪除用戶自定
義函數 168
實例:刪除user錶的自定義函數
10.3 使用SQL Server 2012 實現
交叉錶查詢 169
10.3.1 使用PIVOT 和UNPIVOT
實現交叉錶查詢 169
實例:使用PIVOT運算符實現交叉錶查詢
10.3.2 使用CASE 實現交叉
錶查詢 173
10.4 事務處理 174
10.4.1 事務簡介 174
10.4.2 事務處理 175
10.5 鎖 178
10.5.1 鎖簡介 178
10.5.2 死鎖的産生機製 180
小 結 181
習 題 181
第11 章 SQL Server 2012 安全管理 182
11.1 SQL Server 身份驗證 183
11.1.1 驗證模式 183
11.1.2 配置SQL Server 的身份
驗證模式 183
11.1.3 管理登錄賬號 184
11.2 數據庫用戶 192
11.2.1 創建數據庫用戶 192
11.2.2 刪除數據庫用戶 193
11.3 SQL Server 角色 193
11.3.1 固定服務器角色 194
11.3.2 固定數據庫角色 194
11.3.3 管理SQL Server 角色 194
11.4 管理SQL Server 權限 195
小 結 198
習 題 198
第12 章 SQL Server 2012 維護管理 199
12.1 脫機與聯機數據庫 200
12.1.1 脫機數據庫 200
12.1.2 聯機數據庫 201
12.2 分離和附加數據庫 201
12.2.1 分離數據庫 202
12.2.2 附加數據庫 202
12.3 導入和導齣數據錶 203
12.3.1 導入SQL Server 數據錶 203
12.3.2 導齣SQL Server 數據錶 209
12.4 備份和恢復數據庫 213
12.4.1 備 份 類 型 213
12.4.2 恢復類型 214
12.4.3 備份數據庫 214
12.4.4 恢復數據庫 216
12.5 腳本 219
12.5.1 將數據庫生成腳本 219
12.5.2 將數據錶生成腳本 220
12.5.3 執行腳本 221
12.6 數據庫維護計劃 221
小結 226
習題 226
第13 章 綜閤案例——騰龍進銷
存管理係統 227
13.1 需求分析 228
13.2 總體設計 228
13.2.1 係統目標 228
13.2.2 構建開發環境 228
13.2.3 係統功能結構 228
13.2.4 業務流程圖 229
13.3 數據庫設計 230
13.3.1 數據庫概要說明 230
13.3.2 數據庫E-R 圖 231
13.3.3 數據錶結構 232
13.4 公共類設計 234
13.4.1 DataBase 公共類 234
13.4.2 BaseInfo 公共類 237
13.5 係統主要模塊開發 242
13.5.1 係統主窗體設計 242
13.5.2 庫存商品管理模塊設計 244
13.5.3 進貨管理模塊概述 249
13.5.4 商品銷售排行模塊概述 257
13.6 運行項目 259
小結 260
附錄 上機實驗 261
實驗1 安裝SQL Server 2012 數據庫 262
實驗2 創建數據庫和修改數據庫 263
實驗3 創建數據錶和修改數據錶 265
實驗4 使用語句更新記錄 266
實驗5 創 建 視 圖 266
實驗6 在查詢中使用Transact-SQL
函數 267
實驗7 查詢和匯總數據庫的數據 268
實驗8 創建和使用索引 271
實驗9 創建並使用約束及實現數據
完整性 272
實驗10 創建和使用存儲過程 272
實驗11 創建觸發器 273
實驗12 用戶自定義函數與事務 274
實驗13 SQL Server 身份驗證 275
實驗14 備份和恢復數據庫 276
前言/序言
數據庫架構與精要:構建高性能、可擴展的數據解決方案 在當今數據驅動的世界裏,掌握數據庫管理與開發的精髓,是每一個 IT 專業人士不可或缺的技能。本書並非專注於某一特定數據庫版本,而是深入探討數據庫設計的底層邏輯、核心概念與最佳實踐,旨在幫助讀者構建堅實而靈活的數據解決方案,應對從小型應用到大型企業級係統的各種挑戰。 第一部分:數據庫基礎與設計原理 本部分將帶領您穿越數據庫世界的基石,理解數據是如何被組織、存儲和訪問的。 第一章:數據模型與範式:理解數據結構的藝術 數據模型概覽:我們將從關係型數據庫模型齣發,深入剖析其核心組件——錶、行、列,以及它們之間的關係。同時,也會簡要介紹其他數據模型,如NoSQL數據庫中的文檔模型、鍵值模型、圖模型等,幫助您理解不同模型適用於不同場景的優勢。 實體-關係模型(ERM):這是數據庫設計的基礎。我們將詳細講解實體、屬性、關係(一對一、一對多、多對多)的概念,並通過豐富的圖例展示如何繪製ER圖,將現實世界的需求轉化為清晰的數據庫結構。 規範化(Normalization):規範化是消除數據冗餘、保證數據一緻性的關鍵。我們將係統地介紹第一範式(1NF)、第二範式(2NF)、第三範式(3NF)以及巴斯-科德範式(BCNF),並輔以大量實例,演示如何將非規範化的錶逐步分解為更高範式的錶,從而優化數據存儲和查詢效率。我們會強調,規範化並非越高越好,在性能和規範化程度之間需要權衡,並討論反規範化的應用場景。 反規範化(Denormalization):在某些對讀性能要求極高的場景下,適度的反規範化可以顯著提升查詢速度。我們將探討反規範化的幾種常見策略,如冗餘列、閤並錶等,並分析其潛在的風險,如數據更新的復雜性。 第二章:SQL語言精粹:數據操作的通用語言 SQL基礎語法:掌握SQL是進行數據庫交互的必備技能。我們將從最基本的`SELECT`、`INSERT`、`UPDATE`、`DELETE`語句講起,詳細解釋`WHERE`子句、`ORDER BY`子句、`GROUP BY`子句、`HAVING`子句等,幫助您熟練地進行數據的查詢、增刪改操作。 連接(JOIN)操作:理解不同類型的`JOIN`(`INNER JOIN`、`LEFT JOIN`、`RIGHT JOIN`、`FULL OUTER JOIN`)是高效閤並多錶數據的關鍵。我們將通過實際案例,演示如何利用`JOIN`高效地從多個錶中提取關聯數據。 子查詢(Subqueries):子查詢提供瞭強大的嵌套查詢能力。我們將講解如何在`SELECT`列錶、`FROM`子句、`WHERE`子句中使用子查詢,並對比子查詢與`JOIN`的適用場景。 集閤操作(Set Operations):`UNION`、`UNION ALL`、`INTERSECT`、`EXCEPT`是閤並和比較結果集的強大工具。我們將演示如何使用這些操作符來整閤來自不同查詢的數據。 窗口函數(Window Functions):作為SQL的進階特性,窗口函數在進行排序、聚閤、排名等復雜分析時發揮著至關重要的作用。我們將詳細介紹各種窗口函數,如`ROW_NUMBER()`、`RANK()`、`DENSE_RANK()`、`LAG()`、`LEAD()`、`SUM() OVER()`、`AVG() OVER()`等,並展示它們在實際業務分析中的應用。 常用SQL函數:我們將匯總和介紹各種字符串函數、日期函數、數值函數、聚閤函數等,幫助您編寫更簡潔、更強大的SQL語句。 第二部分:數據庫管理與性能優化 本部分將聚焦於數據庫的日常運維、性能調優以及安全保障,確保數據庫穩定、高效地運行。 第三章:數據庫性能優化:讓數據飛速運轉 索引(Indexes):索引是提升查詢性能的最重要手段之一。我們將深入講解不同類型的索引(B-tree索引、哈希索引、全文索引、空間索引等),以及索引的工作原理。我們將指導您如何創建、維護和選擇閤適的索引,避免過度索引或無效索引。 查詢優化器(Query Optimizer):理解查詢優化器的工作機製,是掌握性能調優的關鍵。我們將解釋查詢優化器如何選擇執行計劃,並介紹如何通過`EXPLAIN`(或等效命令)來分析和理解查詢執行計劃。 慢查詢分析與調優:識彆和解決慢查詢是數據庫性能優化的核心。我們將介紹各種識彆慢查詢的方法,並針對常見的慢查詢原因,如全錶掃描、不恰當的連接、過多的排序等,提供行之有效的調優策略。 數據庫統計信息(Statistics):準確的統計信息對於查詢優化器做齣最優決策至關重要。我們將講解如何收集、更新和維護數據庫的統計信息。 緩存機製(Caching):理解數據庫的各種緩存機製(如查詢緩存、緩衝池、索引緩存等),以及如何通過配置和調整來優化緩存效率。 並發控製與鎖機製(Concurrency Control & Locking):在多用戶訪問的環境下,如何保證數據的一緻性至關重要。我們將介紹事務、隔離級彆、鎖類型(共享鎖、排他鎖、意嚮鎖等)以及死鎖的産生與解決。 第四章:數據庫安全與備份恢復:守護您的數據資産 用戶與權限管理:安全的第一道防綫是精細化的用戶和權限管理。我們將講解如何創建用戶、分配角色、授予和撤銷權限,遵循最小權限原則。 SQL注入防護:SQL注入是常見的安全威脅。我們將深入剖析SQL注入的原理,並提供多種有效的防護措施,如參數化查詢、存儲過程、輸入驗證等。 數據加密:在敏感數據存儲和傳輸過程中,加密是必不可少的安全手段。我們將介紹靜態數據加密(TDE)和動態數據加密的原理與應用。 數據庫審計(Auditing):審計能夠記錄數據庫的操作行為,便於事後追溯和安全分析。我們將講解如何配置和使用數據庫審計功能。 備份策略(Backup Strategies):數據丟失是災難性的。我們將詳細介紹不同類型的數據庫備份(完全備份、差異備份、事務日誌備份),以及如何製定閤理的備份計劃。 恢復策略(Recovery Strategies):備份的目的是為瞭恢復。我們將講解如何執行數據恢復操作,包括完整恢復、時間點恢復等,並強調恢復演練的重要性。 高可用性(High Availability, HA)與災難恢復(Disaster Recovery, DR):為應對硬件故障、網絡中斷甚至區域性災難,我們將介紹常見的HA/DR解決方案,如復製(Replication)、集群(Clustering)、故障轉移(Failover)等。 第三部分:數據庫開發進階與應用 本部分將帶領讀者掌握更高級的數據庫開發技術,以及如何將數據庫應用於實際業務場景。 第五章:存儲過程、函數與觸發器:擴展數據庫功能 存儲過程(Stored Procedures):存儲過程是一組預編譯的SQL語句,能夠提高執行效率、簡化開發、增強安全性。我們將講解如何創建、調用和管理存儲過程,並介紹變量、條件語句、循環語句等編程元素。 用戶定義函數(User-Defined Functions, UDFs):函數可以封裝計算邏輯,並在SQL語句中被調用。我們將區分標量函數和錶值函數,並演示其應用。 觸發器(Triggers):觸發器是在特定事件(如INSERT、UPDATE、DELETE)發生時自動執行的SQL代碼。我們將講解觸發器的類型、工作原理,並提供實際應用場景,如數據驗證、日誌記錄、自動更新等。 批處理與事務控製:在編寫存儲過程和觸發器時,掌握批處理和事務控製(`BEGIN TRANSACTION`、`COMMIT TRANSACTION`、`ROLLBACK TRANSACTION`)是保證數據一緻性的關鍵。 第六章:數據倉庫與ETL:構建決策支持係統 數據倉庫概念:理解數據倉庫與事務型數據庫的區彆,以及其在商業智能(BI)和決策支持中的核心作用。我們將介紹數據倉庫的維度模型(事實錶、維度錶、星型模型、雪花模型)。 ETL(Extract, Transform, Load)過程:ETL是將數據從源係統抽取、轉換並加載到數據倉庫的關鍵流程。我們將講解ETL的各個階段,並討論常用的ETL工具和技術。 數據集成與數據治理:在ETL過程中,數據質量、數據一緻性和數據元數據管理是重要的挑戰。我們將探討數據集成和數據治理的基本原則。 第七章:現代數據庫應用與趨勢 NoSQL數據庫簡介:簡要介紹NoSQL數據庫的興起原因,以及其與關係型數據庫的對比。我們將概述文檔數據庫(如MongoDB)、鍵值數據庫(如Redis)、列族數據庫(如Cassandra)和圖數據庫(如Neo4j)的特點和適用場景。 雲計算與數據庫:探討數據庫在雲平颱上的部署、管理和優化,包括雲數據庫服務(PaaS)的優勢與挑戰。 大數據與數據庫:瞭解數據庫在處理海量數據場景下的解決方案,如Hadoop生態係統與傳統數據庫的結閤。 數據庫自動化與DevOps:探討如何將自動化技術應用於數據庫的部署、管理和監控,以及DevOps理念在數據庫領域的實踐。 本書旨在為您提供一個全麵、深入且實用的數據庫知識體係。通過學習本書,您將不僅能夠熟練地管理和開發數據庫,更能理解數據背後的邏輯,設計齣高性能、高可用、安全的數據庫解決方案,成為一名齣色的數據架構師和開發者。