圖書簡介:
本書使用了三個數據庫,第一個數據庫貫穿于書始末的任務問題系統。第二個數據庫貫穿于書始末的獨立實踐。第三個數據庫貫穿于書始末的項目實踐。本書以這三個數據庫作為框架,以SQL Server 2008作為工具和開發平臺,全面闡述了數據庫技術原理及應用,包括SQL Server 2008的使用。全書共分為6個課題:課題一是認識和使用數據庫,包括認識數據庫、數據庫功能及定義,使用最基本的SQL查詢語言和SQL中的DLL數據定義語言;課題二是設計數據庫,包括創建實體-聯系模型、實體-聯系模型到數據庫設計的轉換和表的規范化;課題三是實現數據庫,包括創建數據庫和表,創建表的關系及參照完整性,使用SQL查詢數據庫;課題四是為數據庫創建對象和程序,包括創建視圖、存儲過程、觸發器和用戶定義函數,游標、控制結構和事務;課題五是運行與管理數據庫,包括安全管理和數據庫維護;課題六是操作SSMS實現數據庫和維護數據庫。
本書可作為高職高專院校計算機專業學生和應用型高等院校計算機專業學生的教材和教學參考書,也適合所有希望學習數據庫技術和SQL Server 2008的讀者使用。
前 言
高等職業教育的教育內涵、教育模式和教學思想,課程體系及內容的設計一直是高等職業教育改革發展中的重點、難點、熱點問題之一。在研究過程中,相繼提出了各種教學理念、模式和方法,如案例教學、項目教學、典型產品組織教學等。縱觀已提出的教學理念、模式和方法及其應用實踐,作者認為以下幾個方面沒有取得突破性的進展。
(1) 教學內容的真實性和學習性環境的統一。要么教學內容缺乏真實性,要么教學內容具有真實性但不具有學習性的環境,存在不一致、相互脫節、孤立的現象。
(2) 理論和實踐的有機融合,并符合高職學生的認知規律,符合教學規律。
作者力圖在高職教育模式上有所創新,并避免概念化,力圖在實踐上有所作為。
20世紀90年代末期作者在教學實踐中就提出和應用了“在實踐中學習、在學習中實踐”,“實踐、學習、再實踐、再學習”的教學思想,經過多年工程實踐和教學實踐,逐步形成了如下高職 教育模式:
* 感知、認識、使用
* 分析與設計
* 解決方案(實現和運行)
* 分析與討論(反思、歸納與總結)
* 獨立實踐
* 項目實踐
這種教育模式是一種基于“任務問題系統”的高職教育模式。該教育模式以真實的“任務問題系統”作為教學的框架或環境,將知識和能力的教學及實踐融入其中,將知識的學習和職業訓練融合在一起。讓學生以主動的、實踐的、課程之間和知識點之間有機聯系的方式學習。學生在完成真實的“任務問題系統”的過程中學會相應的知識、技術,訓練職業能力,掌握相應的理論知識,培養職業素養,學會學習,學會思考。通過這種教育模式達到理論與實踐一體化。
該教育模式應用于以下三個層面。
第一個層面,專業層面。在專業知識與能力的基本架構下,按此模式組織各課程。
第二個層面,課程層面。在課程知識與能力的基本架構下,按此模式組織課程內容。
第三個層面,課程中主題或知識點層面。課程中各主題按此模式組織內容。
該教育模式在這三個層面上,通過真實的“任務問題系統”將新舊知識有機聯系起來,將學生需要的理論知識串起來,將學科學習和工程職業訓練融合在一起,將技術知識和能力的教學實踐融入其中。
該教育模式注重了以下幾方面。
(1) 該教育模式從具體到抽象,再從抽象到具體;從感性到理性,再從理性到感性。在實踐中學習,在學習中實踐,實踐、學習、再實踐、再學習,循環往復,螺旋上升。
(2) 該教育模式是階梯式的,是一個螺旋上升的過程,是一個逐步求精的過程。
(3) 該教育模式關注的不僅僅是做事,也就是關注的不僅僅是解決某個問題,完成某個任務或項目或產品,而是通過做事讓學生學會思考,學會分析問題、解決問題。學生通過在做事和反思的過程中學習。學生在完成任務時,不僅要明白做什么、怎么做,而且要明白為什么這樣做。該教育模式注重反思。
(4) 該教育模式倡導學生學習方式的轉變,讓學生學會學習、學會思考。同時,該教育模式倡導教學方式的轉變。
(5) 該教育模式既讓學生從一般概念中看到它的具體背景,不使概念“空洞”,又讓學生在具體的事物中想到它蘊含的一般概念,使事物有“靈魂”,以達到讓學生學會應用知識,將知識轉化為能力。
(6) 該教育模式讓學生知道任何概念、方法和思想都是為了解決問題的、是水到渠成的產物。如果感到某個概念不自然,是強加于人的,那么只要想一想它的背景、它的應用,以及它與其他概念的聯系,就會發現它實際上是水到渠成、渾然天成的產物,不僅合情合理,甚至很有人情味。通過這種方式達到學生對概念、方法和思想的掌握和應用。
《SQL Server數據庫及應用(SQL Server 2008版)》是以上教育模式在課程層面和課程中主題或知識點層面的具體實踐和應用。
運用以上教育模式,本書由圖0.1所示的一系列任務問題組成,每個教學模塊都有一個任務問題,通過這一系列任務問題將學生需要的理論知識串起來。
課題N:×××
場景引入
任務N:×××
問題描述:×××
問題分析
解決方案
分析與討論
獨立實踐
項目實踐
圖0.1 本書結構
本書的主要特點
(1) 理念的創新。教材顛覆了以往教材的寫作模式和理念。教材的體系結構、設計編排和內容組織模式有重要創新。
貫穿于教材始末的任務問題系統具有真實性、實用性、教學性,將學生需要的理論知識用一系列任務串起來,保證學習過程有序、連貫,以符合學生的認知規律,且符合教學規律。教材獨特的體系結構、設計編排和內容組織模式將復雜的技術體系以簡潔易懂的方式呈現給學生。
教材按“現代簡約”設計,做到“簡約但不簡單”。
(2) 本書使用了三個數據庫內容,第一個是貫穿于教材始末的任務問題系統。第二個是貫穿于教材始末的獨立實踐。第三個是貫穿于教材始末的項目實踐。
本書遵循“在實踐中學習,在學習中實踐”的原則,以數據庫的生產周期作為教學和實踐的框架,學生通過在完成數據庫任務的過程中學會相應的知識、技術、方法,掌握相應的理論知識,讓學生學會學習,學會思考。
(3) 從應用與實用的角度出發,闡述數據庫應用設計與實現。本書將集中重要的主題并進行充分論述,而不是膚淺地涉及許多問題,或者羅列許多概念、術語。
(4) 將理論與實踐有機地融合。例如,在學習數據庫建模、關系模型和規范化時,不是抽象地討論概念和原理,而是和應用實例融合在一起,用實例說明抽象的概念和原理。這樣有助于學生對概念和知識點的理解和應用,同時也可激發學生的學習熱情。
(5) 學生對教材中某個關鍵技術的掌握是階梯式的,即先體驗、認識、感知或使用,然后隨著學生對軟件和解決問題方法的熟悉以及所學知識的增加逐步掌握。教材中所涉及的關鍵技術都采用了這種自然推進階梯式的教學方式。
教材采用了“實踐、學習、再實踐、再學習”的教學思想,這種教學思想也是階梯式的。
(6) 以技術較全面、應用很廣的SQL Server的最新版本SQL Server 2008作為工具來闡述數據庫技術,而不僅僅是講解SQL Server 2008,注重數據庫的共同要素,做到舉一反三,觸類旁通。
(7) 注重SQL,同時對數據庫創建和管理維護部分提供了對應的可視化操作部分,以便查閱和學習。
教學方法建議
以下教學方法是作者在采用本教材授課時采用的主要教學方法,僅供參考。
(1) 在介紹某個主題時,如果可以的話,通過解釋為什么需要它,來引入該主題。然后可以對該主題進行最簡要的解釋。這對應于圖0.1中“場景引入”。
(2) 提出要完成的任務,描述要解決的問題。在該步驟中,教師可以演示解決該問題的程序讓學生了解其工作過程,或讓學生自己“嘗試”解決該問題的程序了解其工作過程。
(3) 分析問題。
(4) 提出解決方案。在解決方案中,實現解決問題的程序,并運行程序。
(5) 分析與討論。重點分析與討論完成任務中包含的新的知識點、技術、方法和思想。“分析與討論”還包括反思、歸納和總結。重點歸納總結出通過完成該任務學生應該掌握什么技術、方法、思想,以及應該掌握哪些知識點。
(6) 讓學生按照解決方案完成該任務,并讓學生進行反思。
(7) 提出新任務和新的實際問題,讓學生獨立實踐。新任務和新的實際問題在教材的獨立實踐部分。
通過這種方式,完成教材中某個主題或知識點的教學及實踐。教材中所有的主題或知識點都可按照這種方式進行。
學習方法建議
“從實踐中學習,在學習中實踐”,“實踐”是學習數據庫技術最穩妥、最有效、最快捷的途徑。
書中針對每一個新概念、知識點的提出,都伴隨著一個任務,任務是構成本書的主要部分。建議讀者仔細地研究這些任務。認真體會解決任務的方法及思路,按照書中提出的解決方案創建完成任務的程序。然后,仔細研讀“分析與討論”部分,弄懂程序中的每行代碼。讀者在完成任務時,不僅要明白做什么、怎么做,而且要明白為什么這樣做。要弄清楚整個的編程思想。然后對程序進行修改或擴展。通過這些方式以掌握程序背后所包含的概念、原理、知識點和方法等。
接著,應用完成任務時所學的方法、技術,獨立完成獨立實踐中的各項任務。
書中的代碼及“分析與討論”部分是本書的精華,建議讀者認真研究。
盡管作者以嚴謹的工作作風來完善本書,但受水平的限制,加上時間的關系,書中可能會出現錯誤和不足,希望讀者能夠指正和諒解(pmshao@163.com)。
邵鵬鳴
目 錄
課題一 認識和使用數據庫任務1 認識數據庫及其應用 2
1.1 場景引入 2
1.2 了解數據庫的一些應用 2
1.3 了解數據庫管理系統的概念 3
1.4 認識應用程序與數據庫管理系統
之間的關系 3
1.5 認識一個真實的數據庫 4
1.6 了解數據庫定義 7
1.7 獨立實踐 7
1.7.1 任務 7
1.7.2 安裝 SQL Server 2008 8
1.7.3 打開SSMS并連接到數據庫
引擎 12
1.7.4 顯示“已注冊的服務器” 13
1.7.5 注冊本地服務器 13
1.7.6 啟動數據庫引擎 13
1.7.7 連接對象資源管理器 14
1.7.8 附加數據庫 14
1.7.9 使用 SSMS編寫代碼 15
任務2 認識SQL 17
2.1 場景引入 17
2.2 了解SQL的作用 17
2.3 查詢單一表中的數據 17
2.3.1 從單一的表中選擇特定列 17
2.3.2 從單一的表中選擇所有列 18
2.3.3 使用 DISTINCT 消除
重復項 19
2.3.4 使用 TOP 和 PERCENT
限制結果集 19
2.3.5 獨立實踐 20
2.4 簡單條件查詢 21
2.4.1 實例研究 21
2.4.2 獨立實踐 24
2.5 復雜條件查詢 24
2.5.1 使用AND和OR邏輯
運算符 24
2.5.2 AND 和 OR 的優先級 25
2.5.3 獨立實踐 27
2.6 創建查詢列的別名 27
2.7 創建計算列的查詢 28
2.7.1 創建計算列的查詢 28
2.7.2 數學運算符和文本運算符 29
2.7.3 獨立實踐 30
2.8 排序 30
2.8.1 單列排序 30
2.8.2 多列排序 31
2.8.3 降序排序 31
2.8.4 使用計算列排序 32
2.8.5 獨立實踐 34
任務3 使用關系(表)存儲用戶數據 35
3.1 場景引入 35
3.2 理解關系模型 35
3.2.1 理解關系模型的概念 35
3.2.2 理解關鍵字 36
3.2.3 理解域 36
3.3 使用數據類型 37
3.4 實現關系 41
3.4.1 創建數據庫 41
3.4.2 刪除數據庫 41
3.4.3 重命名數據庫 42
3.4.4 創建表 42
3.4.5 修改表 43
3.4.6 獨立實踐 46
3.5 操作表的數據 47
3.5.1 添加數據 47
3.5.2 修改數據 50
3.5.3 刪除數據 52
3.5.4 獨立實踐 53
任務4 設置列的屬性和約束 55
4.1 場景引入 55
4.2 設置列的屬性 55
4.2.1 設置默認值 55
4.2.2 設置精度和小數位數 59
4.2.3 創建標識符列 60
4.2.4 使用空值 64
4.2.5 獨立實踐 65
4.3 創建約束 65
4.3.1 創建PRIMARY KEY 約束 65
4.3.2 創建UNIQUE約束 67
4.3.3 創建CHECK約束 69
4.3.4 比較列約束和表約束 71
4.3.5 獨立實踐 72
課題二 設計數據庫任務5 使用實體-聯系模型進行數據
建模 74
5.1 場景引入 74
5.2 確定實體 75
5.3 標識實體的屬性 75
5.3.1 簡單屬性和復合屬性 75
5.3.2 單值屬性和多值屬性 76
5.3.3 派生屬性 76
5.3.4 屬性的域 76
5.3.5 關鍵字 76
5.4 標識實體間的聯系 77
5.4.1 聯系的類型 77
5.4.2 1對1聯系(1∶1) 77
5.4.3 1對多聯系(1∶*) 77
5.4.4 多對多聯系(*∶*) 77
5.5 畫出實體-聯系圖 77
5.5.1 實體類的圖形化表示 78
5.5.2 關系的圖形化表示 78
5.5.3 屬性的圖形化表示 79
5.6 實例研究 80
5.6.1 標識實體類 80
5.6.2 標識實體類間的關系 80
5.6.3 標識實體的屬性 82
5.6.4 E-R圖 86
5.7 獨立實踐 86
任務6 將實體-聯系模型轉變成
數據庫設計 89
6.1 場景引入 89
6.2 使用關系模型表示實體類 89
6.3 表的規范化 91
6.3.1 函數依賴和函數依賴傳遞 91
6.3.2 更新異常 92
6.3.3 規范化的本質 92
6.3.4 第一范式 93
6.3.5 第二范式 93
6.3.6 第三范式 93
6.4 表示HAS-A聯系 94
6.4.1 表示1對1聯系 94
6.4.2 表示1對多聯系 94
6.4.3 表示多對多聯系 95
6.5 實例研究 96
6.5.1 將E-R模型映射為表 96
6.5.2 對多值屬性的處理 98
6.5.3 再論1對1關系 98
6.6 獨立實踐 99
課題三 實現數據庫任務7 創建數據庫和表 102
7.1 場景引入 102
7.2 物理實現數據庫 102
7.2.1 理解數據庫 102
7.2.2 創建數據庫 103
7.2.3 修改數據庫 108
7.2.4 獨立實踐 109
7.3 創建表 109
7.4 實例研究 110
7.5 獨立實踐 113
任務8 創建表的關系和參照完整性 114
8.1 場景引入 114
8.2 創建表的關系 114
8.2.1 在創建表時創建外鍵約束 115
8.2.2 給已有的外鍵創建外鍵
約束 116
8.2.3 在已有的表中添加外鍵
并創建外鍵約束 117
8.2.4 獨立實踐 117
8.3 創建參照完整性 117
8.3.1 理解參照完整性 117
8.3.2 創建級聯刪除規則 117
8.3.3 創建級聯更新規則 118
8.3.4 對 INSERT 和 UPDATE
語句忽略外鍵約束 119
8.3.5 獨立實踐 119
8.4 實例研究 119
任務9 使用SQL查詢數據庫 122
9.1 場景引入 122
9.2 創建基本查詢 122
9.2.1 創建范圍查詢 122
9.2.2 列表查詢 124
9.2.3 創建模糊查詢 124
9.2.4 使用NULL值查詢 128
9.2.5 獨立實踐 128
9.3 創建匯總與分組查詢 129
9.3.1 匯總數據 129
9.3.2 創建分組查詢 130
9.3.3 獨立實踐 133
9.4 使用子查詢 133
9.4.1 了解子查詢的概念 133
9.4.2 查詢中列名的限定 134
9.4.3 使用相關子查詢 135
9.4.4 使用單行子查詢和多行
子查詢 136
9.4.5 使用 EXISTS 和NOT
EXISTS的子查詢 138
9.4.6 使用子查詢替代表達式 139
9.4.7 在UPDATE、DELETE語句中
使用子查詢 140
9.4.8 獨立實踐 140
9.5 創建連接查詢 141
9.5.1 創建內連接查詢 141
9.5.2 創建外連接查詢 143
9.5.3 創建交叉連接查詢 145
9.5.4 創建連接三個或更多的表的
查詢 145
9.5.5 獨立實踐 146
9.6 合并結果集 147
9.6.1 使用UNION進行查詢 147
9.6.2 獨立實踐 147
9.7 更改數據庫中的數據 148
9.7.1 使用SELECT和TOP子句
向表中添加數據 148
9.7.2 使用 FROM 和TOP子句
更改數據 152
9.7.3 使用TOP和附加的 FROM
子句刪除數據 155
9.7.4 獨立實踐 158
9.8 實例研究 158
任務10 索引 162
10.1 場景引入 162
10.2 了解索引 162
10.3 了解索引的類型 163
10.3.1 了解聚集索引 163
10.3.2 了解非聚集索引 163
10.3.3 了解唯一索引 164
10.4 創建與刪除索引 164
10.4.1 在現有表上創建索引 164
10.4.2 在創建表時創建索引 165
10.4.3 刪除索引 166
10.4.4 獨立實踐 166
10.5 使用索引 167
10.5.1 使用聚集索引 167
10.5.2 使用非聚集索引 167
10.5.3 使用唯一索引 168
10.6 實例研究 168
課題四 為數據庫創建對象和程序任務11 創建視圖 172
11.1 場景引入 172
11.2 理解視圖 172
11.2.1 了解視圖的概念 172
11.2.2 理解視圖的作用 173
11.3 創建視圖 173
11.3.1 創建簡單視圖 174
11.3.2 使用視圖 174
11.3.3 創建具有計算列的視圖 175
11.3.4 創建視圖列的別名 176
11.3.5 加密視圖 177
11.3.6 創建具有數據約束的視圖 177
11.3.7 獨立實踐 178
11.4 修改和重命名視圖 179
11.4.1 修改視圖 179
11.4.2 重命名視圖 180
11.5 通過視圖修改數據 180
11.6 比較視圖和查詢 181
11.7 實例研究 181
任務12 編寫批處理和腳本 183
12.1 場景引入 183
12.2 使用變量與系統函數 183
12.2.1 使用變量 183
12.2.2 使用系統函數 185
12.3 編寫批處理 187
12.3.1 使用批處理 187
12.3.2 批處理中的錯誤 188
12.3.3 何時使用批處理 190
12.4 使用腳本 192
12.5 獨立實踐 193
任務13 存儲過程 195
13.1 場景引入 195
13.2 了解存儲過程 195
13.3 創建簡單的存儲過程 196
13.3.1 創建并使用存儲過程 196
13.3.2 獨立實踐 196
13.4 創建帶參數的存儲過程 196
13.4.1 創建使用參數的簡單存儲
過程 197
13.4.2 創建使用參數默認值的
存儲過程 197
13.4.3 執行存儲過程 198
13.4.4 使用包含通配符的參數
默認值創建存儲過程 199
13.4.5 獨立實踐 200
13.5 創建復雜存儲過程 200
13.5.1 使用變量、IF語句和RETURN
語句 200
13.5.2 使用IF…ELSE語句 202
13.5.3 在存儲過程中調用其他存儲
過程 204
13.5.4 創建使用輸出參數返回數據的
存儲過程 205
13.5.5 獨立實踐 207
13.6 修改和刪除存儲過程 208
13.6.1 修改存儲過程 208
13.6.2 查看存儲過程的定義 209
13.6.3 刪除存儲過程 209
13.6.4 獨立實踐 209
13.7 實例研究 209
任務14 創建DML觸發器和用戶定義
函數 217
14.1 場景引入 217
14.2 了解DML觸發器種類 217
14.2.1 了解AFTER 觸發器 217
14.2.2 了解INSTEAD OF觸發器 217
14.3 創建DML觸發器 217
14.3.1 創建AFTER 觸發器 218
14.3.2 查看、禁用和刪除DML
觸發器 218
14.3.3 了解Inserted和Deleted表 220
14.3.4 AFTER 觸發器實例研究 220
14.3.5 獨立實踐 222
14.4 創建INSTEAD OF 觸發器 222
14.4.1 一個應用實例研究 222
14.4.2 獨立實踐 224
14.5 比較觸發器與約束 224
14.6 修改和重命名觸發器 225
14.6.1 修改觸發器 225
14.6.2 重命名觸發器 225
14.6.3 刪除觸發器 226
14.7 實例研究 226
14.8 創建用戶定義函數 228
14.8.1 創建標量函數 228
14.8.2 創建表值函數 230
14.8.3 獨立實踐 232
任務15 創建游標和控制SQL
程序流 233
15.1 場景引入 233
15.2 了解為何要使用游標 233
15.3 創建游標 233
15.3.1 實例研究 234
15.3.2 獨立實踐 236
15.4 控制SQL程序流 236
15.4.1 使用WHILE 236
15.4.2 使用BREAK和
CONTINUE 238
15.4.3 使用CASE 239
15.4.4 獨立實踐 242
15.5 創建更新游標 242
15.6 在其他SQL語句中使用游標中的
數據 244
15.7 獨立實踐 246
任務16 創建事務與鎖 247
16.1 場景引入 247
16.2 理解事務 248
16.3 使用BEGIN和COMMIT 248
16.4 使用ROLLBACK
TRANSACTION 251
16.5 使用SAVE TRANSACTION 252
16.6 使用嵌套事務 254
16.7 獨立實踐 256
16.8 使用包含回滾或提交的存儲過程
和觸發器 256
16.8.1 使用包含回滾的觸發器 256
16.8.2 使用包含回滾的存儲過程 258
16.8.3 獨立實踐 260
課題五 運行與管理數據庫任務17 實現數據庫安全性 262
17.1 場景引入 262
17.2 了解安全機制 262
17.2.1 平臺與網絡安全性 263
17.2.2 主體與數據庫對象安全性 263
17.2.3 應用程序安全性 264
17.3 創建登錄賬戶 264
17.3.1 創建使用 Windows 身份
驗證的 SQL Server 登錄
賬戶 265
17.3.2 創建使用 SQL Server 身份
驗證的 SQL Server 登錄
賬戶 266
17.3.3 修改登錄賬戶 267
17.3.4 使用內置 SQL Server 系統
管理員賬戶 268
17.3.5 獨立實踐 270
17.4 創建數據庫用戶 270
17.4.1 創建SQL Server 登錄的
數據庫用戶 271
17.4.2 創建Windows登錄的
數據庫用戶 271
17.4.3 修改數據庫用戶 272
17.4.4 刪除數據庫用戶 273
17.4.5 使用內置數據庫用戶 273
17.4.6 獨立實踐 274
17.5 授予權限 274
17.5.1 授予用戶對象權限 275
17.5.2 授予語句權限 279
17.5.3 獨立實踐 280
17.6 使用和創建角色 280
17.6.1 使用服務器角色 281
17.6.2 使用和創建數據庫角色 282
17.6.3 向數據庫角色添加和刪除
用戶 287
17.6.4 獨立實踐 290
任務18 維護數據庫 291
18.1 場景引入 291
18.2 了解數據庫備份和還原的概念 291
18.2.1 理解數據庫備份類型 291
18.2.2 理解恢復模式 294
18.3 開始備份準備工作 294
18.3.1 切換數據庫的恢復模式 294
18.3.2 創建備份設備 295
18.3.3 獨立實踐 297
18.4 創建數據庫備份 297
18.4.1 創建完整數據庫備份 297
18.4.2 創建差異數據庫備份 298
18.4.3 創建新媒體集并追加
備份集 300
18.4.4 獨立實踐 302
18.5 創建事務日志備份 302
18.5.1 事務日志備份 302
18.5.2 獨立實踐 304
18.6 實現數據庫還原 304
18.6.1 設計簡單恢復模式下還原
數據庫方案 304
18.6.2 還原完整數據庫備份 305
18.6.3 還原差異數據庫備份 306
18.6.4 設計完全恢復模式下還原
數據庫方案 308
18.6.5 還原事務日志備份 309
18.6.6 獨立實踐 313
18.7 分離和附加數據庫 314
18.7.1 分離數據庫 314
18.7.2 附加數據庫 314
18.7.3 獨立實踐 315
課題六 操作SSMS實現數據庫和維護數據庫任務19 創建數據庫和表 318
19.1 場景引入 318
19.2 創建數據庫 318
19.2.1 創建簡單數據庫 318
19.2.2 創建指定數據和事務日志
文件的數據庫 318
19.2.3 創建多個數據和事務日志
文件的數據庫 320
19.2.4 創建自定義文件組的
數據庫 321
19.3 修改數據庫 322
19.3.1 重命名數據庫 322
19.3.2 刪除數據庫 323
19.3.3 修改數據庫文件大小 323
19.3.4 向數據庫中添加數據
或日志文件 324
19.3.5 查看數據庫 324
19.4 創建與修改表 325
19.4.1 創建表 325
19.4.2 修改表 325
19.5 操作表的數據 328
19.5.1 添加數據 328
19.5.2 修改數據 329
19.5.3 從表中刪除行 329
19.6 設置列的屬性和約束 330
19.6.1 設置默認值 330
19.6.2 設置精度和小數位數 331
19.6.3 創建標識符列 331
19.7 獨立實踐 332
任務20 創建約束和表的關系 333
20.1 場景引入 333
20.2 創建約束 333
20.2.1 創建PRIMARY KEY
約束 333
20.2.2 創建UNIQUE約束 335
20.2.3 創建CHECK約束 336
20.2.4 創建表約束 337
20.2.5 獨立實踐 338
20.3 創建表的關系 338
20.3.1 創建表的關系 338
20.3.2 創建級聯規則 339
20.3.3 修改關系屬性 340
20.3.4 獨立實踐 340
任務21 實現數據庫安全性 341
21.1 場景引入 341
21.2 創建登錄賬戶 341
21.2.1 創建使用 Windows 身份
驗證的 SQL Server 登錄
賬戶 341
21.2.2 創建使用 SQL Server 身份
驗證的 SQL Server 登錄
賬戶 343
21.2.3 修改登錄賬戶 343
21.2.4 獨立實踐 346
21.3 創建數據庫用戶 346
21.3.1 創建SQL Server 登錄的
數據庫用戶 346
21.3.2 創建Windows登錄的
數據庫用戶 347
21.3.3 修改數據庫用戶 347
21.3.4 刪除數據庫用戶 348
21.3.5 獨立實踐 348
21.4 授予權限 348
21.4.1 授予用戶對象權限 348
21.4.2 授予語句權限 354
21.4.3 獨立實踐 355
21.5 使用和創建角色 355
21.5.1 使用服務器角色 355
21.5.2 創建和使用數據庫角色 357
21.5.3 向數據庫角色添加和刪除
用戶 365
21.5.4 獨立實踐 367
任務22 維護數據庫 369
22.1 場景引入 369
22.2 開始備份準備工作 369
22.2.1 查看和切換數據庫的恢復
模式 369
22.2.2 創建備份設備 369
22.2.3 查看邏輯備份設備 370
22.2.4 刪除邏輯備份設備 370
22.2.5 獨立實踐 371
22.3 創建數據庫備份 371
22.3.1 創建完整數據庫備份 371
22.3.2 創建差異數據庫備份 373
22.3.3 創建新媒體集并追加
備份集 374
22.3.4 獨立實踐 377
22.4 創建事務日志備份 378
22.5 實現數據庫還原 380
22.5.1 還原完整數據庫備份 380
22.5.2 還原差異數據庫備份 382
22.5.3 還原事務日志備份 384
22.5.4 獨立實踐 391
22.6 附加和分離數據庫 391
22.6.1 分離數據庫 391
22.6.2 附加數據庫 393
22.6.3 獨立實踐 393