本書全面系統地介紹了SQL Server 2012的管理操作和應用開發, 以學生成績數據庫為主線, 將基礎知識和實際應用有機結合起來。全書共18章, 第1-15章介紹SQL Server 2012服務器端數據庫的管理和操作; 第16-18章介紹以SQL Server數據庫為后端平臺、Java EE為前端開發平臺的應用開發。
實例豐富、圖文并茂、注重實用性。
起點低,能夠全面提升學生的綜合應用能力和動手編程能力。
每章都有大量示范性設計實例。
SQL Server是微軟公司推出的功能完備的關系數據庫管理系統,以其具有大型數據庫技術和易于使用的特點被眾多院校列為必修課程。SQL Server 2012是微軟公司21世紀初具有重要意義的數據庫新產品,具有更高的性能、更強的處理能力,在高穩定性、高可用性和可靠性等方面有了進一步的提升,已成為企業級數據庫管理系統軟件的首選產品。
本書以功能強大的關系數據庫SQL Server 2012作為平臺,以學生成績數據庫為主線,全面系統地介紹了SQL Server 2012的管理操作和應用開發,將基礎知識和實際應用有機結合起來。第1章至第15章介紹SQL Server 2012服務器端數據庫的管理和操作,主要內容有數據庫系統和數據庫設計、SQL Server概述、創建和修改數據庫、創建和使用表、T-SQL基礎、視圖、索引、數據完整性、T-SQL程序設計、存儲過程、觸發器、事務和鎖、系統安全管理、備份和恢復、SQL Server的自動化管理;第16章至第18章介紹以SQL Server數據庫為后端平臺、Java EE為前端開發平臺的應用開發,主要內容有Java EE開發環境、Java EE項目開發基礎、基于Java EE和SQL Server的學生成績管理系統開發。
第2版所做重要改進如下:
* 從SQL Server 2008升級到SQL Server 2012,使用SQL Server 2012調試通過了所有實例的源代碼,重新制作有關SQL Server 2012的插圖。
* 在教材配套素材中,增加了習題參考答案,重新制作電子課件。
* 為適應升級到SQL Server 2012,改寫了第2章的內容和其他章節有關內容,重要章節增加應用舉例,各章末增加小結。
本書亮點如下:
* 方便教學,資源配套。本書免費提供教學課件、所有實例的源代碼,章末習題有選擇題、填空題、問答題和應用題等類型,書末附習題答案,以供教學參考。
* 理論與實踐相結合。以SQL Server 2012作為平臺,培養學生掌握基本知識和數據庫管理、操作、T-SQL語言編程能力。
* 在數據庫設計中,著重培養學生掌握基本知識和畫出合適的E-R圖和將E-R圖轉換為關系模式的能力。
* 詳細介紹T-SQL中的數據查詢語言,著重培養學生編寫T-SQL查詢語句的能力。
* 通過T-SQL程序設計、游標、用戶定義函數、存儲過程和觸發器等章節的論述和應用舉例,著重培養學生數據庫語言編程能力。
* 基于Java EE和SQL Server數據庫的學生成績管理系統開發等章節可作為教學和實訓的內容,培養學生開發一個簡單應用系統的能力。
本書全部代碼已通過SQL Server 2012測試,考慮到部分院校由于設備條件等因素,有一個從SQL Server 2008到 SQL Server 2012的過程,全部代碼(除個別實例外)也可用SQL Server 2008運行。
本書可作為大學本科、高職高專及培訓班課程的教學用書,也可作為計算機應用人員和計算機愛好者的自學參考書。
本書由趙明淵主編,參加本書編寫的有賈宇明、成和平、何明星、王俊峰、杜亞軍、夏軍飛、譚向軍、胡宇、傅翀、周亮宇、趙凱文、程小菊、鄧鎧凌、王成均。對于幫助完成基礎工作的同志,在此表示感謝!
由于作者水平有限,不當之處,敬請讀者批評指正。
編 者
2017年5月
第1章 數據庫系統和數據庫設計 1
1.1 數據庫系統 1
1.1.1 數據庫和數據庫管理系統 1
1.1.2 數據模型 2
1.1.3 關系數據庫 3
1.1.4 數據庫系統的模式與組成 5
1.2 數據庫設計 5
1.2.1 需求分析 6
1.2.2 概念結構設計 6
1.2.3 邏輯結構設計 8
1.2.4 物理結構設計 10
1.2.5 數據庫的實施 10
1.2.6 數據庫的運行和維護 10
1.3 應用舉例 10
1.4 小結 11
習題1 12
第2章 SQL Server概述 14
2.1 SQL Server簡介 14
2.2 SQL Server的安裝 15
2.2.1 SQL Server 2012的安裝 15
2.2.2 SQL Server 2008的安裝 21
2.3 服務器組件和管理工具 25
2.3.1 服務器組件 25
2.3.2 管理工具 25
2.4 SQL Server Management Studio環境 27
2.5 小結 30
習題2 30
第3章 創建和修改數據庫 32
3.1 SQL Server數據庫的基本概念 32
3.1.1 邏輯數據庫 32
3.1.2 物理數據庫 34
3.2 創建SQL Server數據庫 34
3.2.1 創建數據庫 35
3.2.2 修改數據庫 37
3.2.3 刪除數據庫 38
3.3 小結 40
習題3 40
第4章 創建和使用表 42
4.1 表的基本概念 42
4.1.1 表和表結構 42
4.1.2 數據類型 43
4.1.3 表結構設計 48
4.2 創建SQL Server表 49
4.2.1 創建表 49
4.2.2 修改表 54
4.2.3 刪除表 57
4.3 操作SQL Server表數據 57
4.4 小結 59
習題4 60
第5章 T-SQL基礎 63
5.1 SQL和T-SQL 63
5.1.1 SQL語言 63
5.1.2 T-SQL概述 64
5.2 T-SQL中的數據定義語言 66
5.2.1 數據庫操作語句 66
5.2.2 數據表操作語句 72
5.3 T-SQL中的數據操縱語言 77
5.3.1 插入語句 77
5.3.2 修改語句 80
5.3.3 刪除語句 81
5.4 T-SQL中的數據查詢語言 81
5.4.1 投影查詢 81
5.4.2 選擇查詢 84
5.4.3 連接查詢 86
5.4.4 統計計算 91
5.4.5 排序查詢 94
5.4.6 子查詢 95
5.4.7 SELECT查詢的其他子句 98
5.5 綜合訓練 105
5.6 小結 107
習題5 108
第6章 視圖 111
6.1 創建視圖 111
6.1.1 使用圖形界面方式創建視圖 111
6.1.2 使用T-SQL語句創建視圖 113
6.2 查詢視圖 114
6.3 更新視圖 116
6.3.1 可更新視圖 116
6.3.2 插入數據 117
6.3.3 修改數據 117
6.3.4 刪除數據 118
6.4 修改視圖定義和重命名視圖 118
6.4.1 修改視圖定義 118
6.4.2 重命名視圖 122
6.5 查看視圖信息 123
6.5.1 使用圖形界面方式查看視圖信息 123
6.5.2 使用系統存儲過程查看視圖信息 124
6.6 刪除視圖 124
6.6.1 使用圖形界面方式刪除視圖 124
6.6.2 使用T-SQL語句刪除視圖 124
6.7 小結 125
習題6 126
第7章 索引 127
7.1 索引的分類 127
7.2 索引的創建 128
7.2.1 使用圖形界面方式創建索引 128
7.2.2 使用T-SQL語句創建索引 131
7.3 查看和修改索引屬性 132
7.3.1 使用圖形界面方式查看和修改索引屬性 132
7.3.2 使用系統存儲過程查看索引屬性 134
7.3.3 使用T-SQL語句修改索引屬性 135
7.4 索引的刪除 136
7.4.1 使用圖形界面方式刪除索引 136
7.4.2 使用T-SQL語句刪除索引 136
7.5 小結 137
習題7 138
第8章 數據完整性 139
8.1 數據完整性概述 139
8.2 域完整性 140
8.2.1 CHECK約束 141
8.2.2 DEFAULT約束 143
8.3 實體完整性 144
8.3.1 使用圖形界面方式創建與刪除PRIMARY KEY約束、UNIQUE約束 144
8.3.2 使用T-SQL語句創建與刪除PRIMARY KEY約束、UNIQUE約束 145
8.4 參照完整性 146
8.4.1 使用圖形界面方式創建與刪除表間參照關系 147
8.4.2 使用T-SQL語句創建與刪除表間參照關系 149
8.5 規則 150
8.5.1 創建規則 151
8.5.2 查看規則 152
8.5.3 綁定規則 152
8.5.4 驗證規則的作用 153
8.5.5 解除規則 154
8.5.6 刪除規則 154
8.6 默認值 155
8.6.1 創建默認值 155
8.6.2 查看默認值 156
8.6.3 綁定默認值 156
8.6.4 驗證默認值的作用 156
8.6.5 解除默認值 157
8.6.6 刪除默認值 157
8.7 綜合訓練 158
8.8 小結 160
習題8 160
第9章 T-SQL程序設計 163
9.1 數據類型 163
9.1.1 系統數據類型 163
9.1.2 用戶自定義數據類型 164
9.1.3 用戶自定義表數據類型 167
9.2 標識符、常量和變量 167
9.2.1 標識符 167
9.2.2 常量 168
9.2.3 變量 169
9.3 運算符與表達式 171
9.3.1 算術運算符 172
9.3.2 位運算符 172
9.3.3 比較運算符 172
9.3.4 邏輯運算符 173
9.3.5 字符串連接運算符 174
9.3.6 賦值運算符 174
9.3.7 一元運算符 174
9.3.8 運算符的優先級 174
9.4 流程控制語句 175
9.4.1 BEGIN…END語句 175
9.4.2 IF…ELSE語句 176
9.4.3 WHILE、BREAK和CONTINUE語句 177
9.4.4 GOTO語句 179
9.4.5 RETURN語句 179
9.4.6 WAITFOR語句 180
9.4.7 TRY…CATCH語句 180
9.5 系統內置函數 180
9.6 用戶定義函數 189
9.6.1 用戶定義函數的定義和調用 190
9.6.2 用戶定義函數的刪除 196
9.7 游標 196
9.7.1 游標的概念 196
9.7.2 游標的基本操作 197
9.7.3 游標的使用 200
9.8 綜合訓練 201
9.9 小結 202
習題9 203
創建和修改數據庫
本章要點:
* SQL Server數據庫的基本概念。
* 創建SQL Server數據庫。
如果要使用SQL Server設計和實現信息系統,首先要設計和實現數據的表示和存儲,即創建數據庫,數據庫是SQL Server用于組織和管理數據的基本對象,SQL Server能夠支持多個數據庫。本章介紹SQL Server數據庫的基本概念、創建SQL Server數據庫等內容。從本章起以后各章,SQL Server都是指SQL Server 2012。
3.1 SQL Server數據庫的基本概念
數據庫是SQL Server存儲和管理數據的基本對象,本節從邏輯數據庫和物理數據庫兩個角度進行討論。
3.1.1 邏輯數據庫
從用戶的觀點看,組成數據庫的邏輯成分稱為數據庫對象,SQL Server數據庫由存放數據的表以及支持這些數據的存儲、檢索、安全性和完整性的對象所組成。
1. 數據庫對象
SQL Server的數據庫對象包括表(table)、視圖(view)、索引(index)、存儲過程(stored procedure)、觸發器(trigger)等,下面介紹常用的數據庫對象。
* 表:表是包含數據庫中所有數據的數據庫對象,由行和列構成,它是最重要的數據庫對象。
* 視圖:視圖是由一個表或多個表導出的表,又稱為虛擬表。
* 索引:為加快數據檢索速度并可以保證數據唯一性的數據結構。
* 存儲過程:為完成特定功能的T-SQL語句集合,編譯后存放于服務器端的數據庫中。
* 觸發器:它是一種特殊的存儲過程,當某個規定的事件發生時該存儲過程自動執行。
2. 系統數據庫和用戶數據庫
SQL Server的數據庫有兩類,一類是系統數據庫,另一類是用戶數據庫。
1)系統數據庫
SQL Server在安裝時創建4個系統數據庫,即master、model、msdb和tempdb。系統數據庫存儲有關SQL Server的系統信息,當系統數據庫受到破壞時SQL Server將不能正常啟動和工作。
* master數據庫:它是系統最重要的數據庫,記錄了SQL Server的系統信息,例如登錄賬號、系統配置、數據庫位置及數據庫錯誤信息等,用于控制用戶數據庫和SQL Server的運行。
* model數據庫:為創建數據庫提供模板。
* msdb數據庫:該數據庫是代理服務數據庫,為調度信息、作業記錄等提供存儲 空間。
* tempdb數據庫:它是一個臨時數據庫,為臨時表和臨時存儲過程提供存儲空間。
2)用戶數據庫
用戶數據庫是由用戶創建的數據庫,本書所創建的數據庫都是用戶數據庫,用戶數據庫和系統數據庫在結構上是相同的。
3. 完全限定名和部分限定名
在T-SQL中引用SQL Server對象對其進行查詢、插入、修改、刪除等操作,所使用的T-SQL語句需要給出對象的名稱,用戶可以使用完全限定名和部分限定名。
1)完全限定名
完全限定名是對象的全名,SQL Server創建的每個對象都有唯一的完全限定名,它由4個部分組成,即服務器名、數據庫名、數據庫架構名和對象名,其格式如下:
server.database.scheme.object
例如,DELL-PC.stsc.dbo.student即為一個完全限定名。
2)部分限定名
使用完全限定名往往很煩瑣且沒有必要,經常省略其中的某些部分。在對象全名的4個部分中,前3個部分均可被省略,當省略中間的部分時圓點符“.”不可省略。這種只包含對象完全限定名中的一部分的對象名稱為部分限定名。
在部分限定名中,未指出的部分使用以下默認值。
……