1、MicrosoftSQLServer
SQLServer是Microsoft公司推出的關系型資料庫管理系統。具有使用方便可伸縮性好與相關軟體集成程度高等優點,可跨越從運行MicrosoftWindows98的膝上型電腦到運行MicrosoftWindows2012的大型多處理器的伺服器等多種平台使用。
MicrosoftSQLServer是一個全面的資料庫平台,使用集成的商業智能(BI)工具提供了企業級的數據管理。MicrosoftSQLServer資料庫引擎為關系型數據和結構化數據提供了更安全可靠的存儲功能,使您可以構建和管理用於業務的高可用和高性能的數據應用程序。
2、Oracle資料庫
它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是目前世界上流行的關系資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的、適應高吞吐量的資料庫方案。
3、DB2
IBM公司研製的一種關系型資料庫系統。DB2主要應用於大型應用系統,具有較好的可伸縮性,可支持從大型機到單用戶環境,應用於OS/2.Windows等平台下。
DB2提供了高層次的數據利用性、完整性、安全性、可恢復性,以及小規模到大規友鉛哪模應用程序的執行能力,具有與平台無關的基本功能和SQL命令。
4、MySQL
MySQL是一個小型關系型資料庫管理系統,開發者為瑞典MySQLAB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracle收購。
對於Mysql的前途,沒有任何人抱樂觀的態度。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。
5、Sybase
Sybase公司成立於1984年11月,總部設在美國加州的Emeryville(現為美好碼國加州的Dublin市)。作為全球最大的獨立軟體廠商之一,Sybase公司致力於幫助企業等各種機激做構進行應用、內容及數據的管理和發布。
Sybase的產品和專業技術服務,為企業提供集成化的解決方案和全面的應用開發平台。Sybase作為享譽全球的跨國公司,在63個國家設立了分支機構,擁有4萬多家客戶,主要集中在金融服務業、政府部門、電信、醫療保健和媒體服務業。
❷ 想自學做網站,主要對sqlserver資料庫開發, 需要學什麼語言
建議學C#,C#是微軟主打的面向對象開發語言,運行在window下,支持操作sqlserver
❸ SQL語法範例大全的目 錄
第1篇 SQL及關系資料庫概述
第1章 關系資料庫概述 2
1.1 資料庫的基本概念 3
1.1.1 資料庫的發展 3
1.1.2 資料庫系統組成 3
1.1.3 數據處理的抽象描述 3
1.1.4 數據模型 4
1.2 關系資料庫基本概念 4
1.2.1 關系模式 4
1.2.2 關系模型的特點及組成 5
1.2.3 關系數據語言的種類 6
1.2.4 域 7
1.2.5 笛卡兒積 7
1.2.6 關系 8
1.2.7 全關系系統十二准則 9
1.2.8 規范化(NF範式) 9
1.3 關系資料庫類型 10
1.3.1 桌面資料庫 10
1.3.2 網路資料庫 10
1.4 常用關系資料庫介紹 10
1.4.1 Microsoft Access 11
1.4.2 FoxPro 11
1.4.3 MySQL 11
1.4.4 Firebird 12
1.4.5 PostgreSQL 13
1.4.6 Informix 14
1.4.7 DB2 14
1.4.8 Sybase 15
1.4.9 SQL Server 17
1.4.10 Oracle 22
1.5 小結 29
第2章 SQL概述 30
2.1 SQL的功能和特性 31
2.2 SQL語法分類 32
2.3 SQL標准與版本 32
2.3.1 SQL92標准 33
2.3.2 SQL99標准 33
2.3.3 SQL:2003標准 34
2.4 SQL表達式 34
2.5 SQL標識符 34
2.5.1 特殊字元(語法約定) 34
2.5.2 注釋字元 35
2.6 SQL常量 35
2.7 SQL變數 37
2.8 SQL數據類型 37
2.8.1 數值型數據 37
2.8.2 字元型數據 38
2.8.3 日期數據類型 38
2.8.4 其他數據類型 39
2.9 SQL語句 40
2.9.1 SQL語句分類 40
2.9.2 SELECT查詢語句 41
2.10 SQL語句的執行方法 42
2.11 SQL與關系資料庫 42
2.12 SQL的發展 42
2.13 小結 42
第3章 SQL擴展、工具及範例資料庫介紹 44
3.1 T-SQL 46
3.1.1 注釋語句 46
3.1.2 常量 46
3.1.3 變數 46
3.1.4 運算符 47
3.1.5 數據類型 48
3.1.6 函數 49
3.1.7 流程式控制制語句 49
3.2 PL/SQL 50
3.2.1 注釋語句 50
3.2.2 數據類型 51
3.2.3 SQL92、T-SQL、PL/SQL數據
類型比較 51
3.2.4 運算符 52
3.2.5 函數 52
3.2.6 PL/SQL與T-SQL函數比較 53
3.2.7 常量和變數 53
3.2.8 流程式控制制語句 54
3.3 SQLCMD工具 55
3.4 SQL Server查詢分析工具 57
3.5 Oracle企業管理器EM工具 58
3.6 Oracle SQL * Plus工具 60
3.6.1 SQL*Plus的主要功能 60
3.6.2 SQL*Plus啟動和快速登錄
方法 61
3.6.3 SQL*Plus常用命令操作 62
3.6.4 iSQL * Plus 70
3.7 PL/SQL Developer工具 72
3.7.1 主要功能特性 72
3.7.2 軟體資源 74
3.7.3 基本用法 74
3.8 TOAD工具 76
3.8.1 主要功能特性 76
3.8.2 軟體資源 77
3.8.3 基本用法 77
3.9 範例資料庫介紹 80
3.9.1 SQL Server學籍管理資料庫 80
3.9.2 SQL Server系統示例庫 84
3.9.3 Oracle系統示例庫 84
3.10 本章小結 90
第2篇 SQL運算符和函數
第4章 SQL運算符 92
4.1 算術運算符 94
4.2 賦值運算符 94
4.3 字元串串聯運算符 94
4.3.1 加號「+」 94
4.3.2 雙豎號「||」 94
4.4 一元運算符 94
4.5 邏輯運算符 95
4.6 比較運算符 95
4.7 集合運算符 96
4.7.1 UNION運算符 96
4.7.2 EXCEPT運算符 96
4.7.3 INTERSECT運算符 97
4.8 運算符優先順序 97
4.9 SQL92、SQL Server和Oracle運算符
比較 97
4.10 小結 99
第5章 函數 100
5.1 數值函數 102
5.2 字元串函數 103
5.3 日期時間函數 104
5.4 數據類型轉換函數 106
5.4.1 CAST ()函數 106
5.4.2 CONVERT () 函數 107
5.5 統計函數 109
5.5.1 SUM ()求和 110
5.5.2 COUNT ()計數 110
5.5.3 MAX () /MIN ()求最大/
最小值 111
5.5.4 AVG ()求均值 112
5.5.5 VAR () /VARP () 求方差 113
5.5.6 STDEV () /STDEVP ()求標准
誤差 113
5.5.7 使用DISTINCT關鍵字進行
重值篩選 114
5.6 小結 114
第3篇 數據查詢操作
第6章 簡單查詢 116
6.1 用SELECT子句選擇列表 118
6.1.1 選擇列 119
6.1.2 更改列標題 119
6.1.3 使用TOP限制選擇行數 120
6.1.4 DISTINCT去掉重復的欄位
數據 121
6.1.5 DISTINCTROW去掉重復的
記錄數據 122
6.2 FROM子句 122
6.2.1 對具有相同列名的兩個表
進行查詢 123
6.2.2 從查詢結果集合中查詢數據 123
6.3 WHERE子句 123
6.3.1 使用比較運算符指定查詢
條件 124
6.3.2 使用邏輯運算符指定查詢
條件 124
6.3.3 使用范圍BETWEEN指定
查詢條件 125
6.3.4 使用列表IN指定查詢條件 125
6.3.5 使用LIKE與通配符指定查詢
條件 125
6.3.6 NULL空值的判斷 126
6.3.7 使用包含判斷詞EXISTS、
ALL、ANY、SOME 126
6.4 GROUP BY子句 130
6.4.1 一般情況的分組查詢 131
6.4.2 GROUP BY子句根據多列組
合行 132
6.4.3 CUBE和ROLLUP運算符及
使用 132
6.4.4 GROUP BY子句中的NULL
值處理 133
6.5 HAVING子句 134
6.5.1 HAVING子句的一般應用 134
6.5.2 HAVING與WHERE子句的
區別 135
6.5.3 HAVING子句單獨使用 136
6.5.4 HAVING子句與CASE語句
結合使用 137
6.6 ORDER BY子句 137
6.6.1 ORDER BY子句的使用 137
6.6.2 ORDER BY子句的約束 139
6.7 小結 139
第7章 連接查詢 141
7.1 連接概述 143
7.1.1 連接范圍 143
7.1.2 連接類型 143
7.1.3 笛卡兒積 143
7.1.4 連接語法 144
7.1.5 連接運算符 144
7.2 自(身)連接 144
7.3 內連接(INNER JOIN) 145
7.3.1 等值連接 145
7.3.2 不等連接 146
7.3.3 自然連接 147
7.4 外連接 148
7.4.1 左外連接(LEFT JOIN) 148
7.4.2 右外連接(RIGHT JOIN) 149
7.4.3 全外連接(FULL JOIN) 150
7.5 交叉連接(CROSS JOIN) 151
7.6 小結 151
第8章 集合查詢 153
8.1 集合概念 155
8.2 集合性質 155
8.3 集合運算 155
8.4 UNION運算符 156
8.4.1 使用UNION進行表內查詢 156
8.4.2 使用UNION進行多表查詢 157
8.4.3 使用UNION JOIN連接查詢 158
8.5 INTERSECT運算符 159
8.6 EXCEPT運算符 159
8.7 小結 160
第9章 子查詢 161
9.1 概述 163
9.1.1 子查詢定義 163
9.1.2 子查詢語法 163
9.1.3 子查詢的兩種基本形式 164
9.1.4 子查詢的優點 165
9.1.5 子查詢分類 165
9.1.6 子查詢中的比較運算符與謂詞 165
9.1.7 使用子查詢的規則 168
9.2 單行子查詢 169
9.3 多行子查詢 170
9.3.1 在多行子查詢中使用IN比較符 170
9.3.2 在多行子查詢中使用ALL、SOME、ANY比較符 171
9.4 多列子查詢 172
9.5 相關子查詢 173
9.5.1 使用單行比較運算符引入相關子查詢 174
9.5.2 使用IN引入相關子查詢 174
9.5.3 在子查詢中使用[NOT] EXISTS 175
9.6 在各類SQL語句中使用子查詢 177
9.6.1 在SELECT子句中使用子查詢 177
9.6.2 在FROM子句中使用子查詢 177
9.6.3 在WHERE子句中使用子查詢 177
9.6.4 在GROUP BY子句中使用子查詢 178
9.6.5 在HAVING子句中使用子查詢 178
9.6.6 在CREATE TABLE語句中使用子查詢 178
9.6.7 在CREATE VIEW語句中使用子查詢 179
9.6.8 在INSERT INTO子句中使用子查詢 180
9.6.9 在UPDATE語句中使用子查詢 181
9.6.10 在DELETE語句中使用子查詢 182
9.6.11 使用WITH子句重用子查詢 182
9.7 樹查詢 183
9.8 小結 184
第4篇 數據更新操作
第10章 資料庫操作 186
10.1 創建資料庫 188
10.2 查看資料庫信息 193
10.3 更改資料庫 193
10.3.1 更改資料庫名稱 195
10.3.2 修改資料庫文件 195
10.3.3 更改資料庫屬性 200
10.4 刪除資料庫 201
10.5 小結 201
第11章 方案操作 202
11.1 方案概述 204
11.2 查找方案 204
11.3 創建方案 204
11.4 更改方案 206
11.5 刪除方案 206
11.6 小結 207
第12章 數據表操作 208
12.1 創建表 210
12.2 復製表 211
12.3 修改表結構 212
12.3.1 增加列和約束 212
12.3.2 查找列約束 214
12.3.3 修改列和約束 214
12.3.4 刪除列和約束 215
12.4 行記錄操作 215
12.4.1 插入記錄 215
12.4.2 修改記錄 218
12.4.3 刪除記錄(DELETE) 223
12.4.4 刪除記錄(TRUNCATE) 225
12.5 重命名表 226
12.6 刪除表 226
12.7 MERGE語句 226
12.8 小結 228
第13章 索引操作 229
13.1 索引的分類 231
13.1.1 索引的概念 231
13.1.2 索引分類 231
13.2 索引使用的場所 232
13.3 查看索引 233
13.4 創建索引 234
13.4.1 創建索引的方法 234
13.4.2 CREATE INDEX語法 234
13.4.3 創建聚簇索引 236
13.4.4 創建非聚簇索引 236
13.4.5 創建簡單列索引 236
13.4.6 創建組合列索引 237
13.4.7 創建普通索引 238
13.4.8 創建唯一索引 238
13.4.9 創建視圖索引 241
13.5 修改索引 242
13.6 禁用/啟用索引 245
13.7 刪除索引 245
13.8 小結 246
第14章 視圖操作 248
14.1 查詢視圖 250
14.2 創建視圖 251
14.3 修改視圖 255
14.4 刪除視圖 256
14.5 小結 257
第15章 序列操作 258
15.1 創建序列 260
15.2 查找序列值 260
15.3 使用序列 261
15.4 修改序列 261
15.5 刪除序列 262
15.6 小結 262
第5篇 數據安全管理
第16章 完整性約束 264
16.1 資料庫的安全性 266
16.2 完整性約束分類 267
16.3 表約束 268
16.3.1 DEFAULT約束 268
16.3.2 NOT NULL約束 269
16.3.3 CHECK約束 269
16.3.4 UNIQUE約束 270
16.3.5 PRIMARY KEY約束 270
16.3.6 FOREIGN KEY約束 271
16.3.7 FOREIGN KEY的MATCH
約束 272
16.4 域約束 273
16.5 斷言 273
16.6 禁止與啟用約束 274
16.7 查看約束 275
16.8 刪除約束DROP 275
16.9 小結 275
第17章 用戶管理 277
17.1 查找用戶及相關信息 279
17.2 創建用戶 282
17.3 修改用戶 285
17.4 刪除用戶 286
17.5 小結 286
第18章 角色管理 288
18.1 角色的概念 290
18.2 查找角色 290
18.3 創建角色 293
18.4 更改角色 295
18.5 刪除角色 295
18.6 小結 295
第19章 許可權管理 297
19.1 許可權分類 299
19.2 查看許可權 299
19.3 授予許可權 303
19.3.1 授予ALL許可權 304
19.3.2 授予SELECT許可權 304
19.3.3 授予CREATE許可權 304
19.3.4 授予INSERT許可權 305
19.3.5 授予UPDATE列許可權 305
19.3.6 授予ALTER許可權 305
19.3.7 授予EXECUTE許可權 306
19.3.8 授予REFERENCES許可權 306
19.3.9 授予DELETE許可權 306
19.3.10 授予DROP許可權 306
19.3.11 授予用戶角色的許可權 307
19.4 收回許可權 308
19.5 小結 309
第6篇 SQL編程
第20章 事務控制與並發處理 312
20.1 事務的基本概念 314
20.2 鎖的基本概念和分類 314
20.3 事務的並發控制 318
20.3.1 並發控制方法 319
20.3.2 事務隔離級別 319
20.3.3 事務特性的設置 321
20.4 事務開始和終止 322
20.5 資料庫讀寫訪問操作 322
20.6 事務提交 322
20.7 事務回滾 323
20.8 SQL Server與Oracle事務處理的
比較 324
20.9 小結 324
第21章 存儲過程 326
21.1 存儲過程的概念 329
21.2 存儲過程的優點 329
21.3 存儲過程分類 329
21.4 SQL Server存儲過程中的控制語句 330
21.4.1 注釋語句 330
21.4.2 屏幕輸出語句 330
21.4.3 變數定義和使用語句 330
21.4.4 塊語句 331
21.4.5 判斷語句 331
21.4.6 循環語句 332
21.4.7 轉向定位語句 333
21.4.8 定時執行語句 333
21.4.9 錯誤捕獲語句 333
21.5 Oracle存儲過程中的控制語句 333
21.5.1 注釋語句 334
21.5.2 屏幕輸出語句 334
21.5.3 變數和常量的定義和使用 334
21.5.4 塊語句BEGIN…END 337
21.5.5 判斷語句IF、CASE 338
21.5.6 循環語句 340
21.5.7 轉向定位語句 342
21.5.8 定時執行作業任務dbms_job 342
21.5.9 錯誤捕獲語句 346
21.6 存儲過程的創建 346
21.6.1 創建存儲過程的語法 346
21.6.2 創建無參數的存儲過程 347
21.6.3 創建有參數的存儲過程 347
21.7 存儲過程的調用與執行 349
21.7.1 RETURN語句及返回值 350
21.7.2 存儲過程的創建和調用步驟 351
21.7.3 存儲過程調用方法和步驟 352
21.7.4 調用無參數的過程 352
21.7.5 調用有參數的過程 352
21.8 存儲過程的查看 354
21.8.1 查看SQL Server存儲過程 354
21.8.2 查看Oracle存儲過程 356
21.9 存儲過程的修改和重編譯 359
21.9.1 修改存儲過程 360
21.9.2 重命名存儲過程 360
21.9.3 存儲過程的重編譯 361
21.10 存儲過程的刪除 364
21.11 SQL Server中幾個重要的存儲
過程介紹 365
21.11.1 sp_attach_db 366
21.11.2 sp_attach_single_file_db 366
21.11.3 sp_changedbowner 367
21.11.4 sp_changeobjectowner 367
21.11.5 sp_configure 368
21.11.6 xp_cmdshell 370
21.11.7 sp_spaceused 373
21.11.8 sp_msforeachtable 374
21.12 存儲過程應用實例 374
21.12.1 用存儲過程實現數據表更新
操作 374
21.12.2 用存儲過程實現數據備份與
恢復 376
21.13 小結 377
第22章 存儲函數 379
22.1 存儲函數和存儲過程的區別 381
22.2 存儲函數的類型和約定 381
22.3 存儲函數的創建和調用 383
22.3.1 存儲函數創建語法 385
22.3.2 存儲函數調用類型、方法和
語法 387
22.3.3 SQL Server存儲函數的創建
和調用 387
22.3.4 Oracle存儲函數的創建和
調用 390
22.4 存儲函數的更改 396
22.5 存儲函數的編譯 397
22.6 存儲函數信息的查看 397
22.6.1 查看SQL Server存儲函數 398
22.6.2 查看Oracle存儲函數 399
22.7 存儲函數的刪除 401
22.8 小結 402
第23章 觸發器 404
23.1 觸發器概述 406
23.1.1 觸發器的基本概念 406
23.1.2 觸發器的用途和優勢 407
23.1.3 觸發器的類型 408
23.1.4 觸發器中的兩個臨時表 409
23.2 創建SQL Server觸發器 409
23.2.1 創建DML觸發器 410
23.2.2 創建DDL觸發器 420
23.2.3 創建INSTEAD OF觸發器 423
23.2.4 創建嵌套觸發器 426
23.2.5 創建遞歸觸發器 428
23.3 創建Oracle觸發器 430
23.3.1 觸發謂詞的使用 431
23.3.2 創建DML語句觸發器 432
23.3.3 創建DML行觸發器 435
23.3.4 創建DDL觸發器 438
23.3.5 創建INSTERD OF觸發器 439
23.3.6 創建事件觸發器 441
23.4 更改觸發器 444
23.5 重新編譯Oracle觸發器 446
23.6 禁止和啟用觸發器 446
23.7 查看觸發器信息 447
23.7.1 查看SQL Server觸發器 447
23.7.2 查看Oracle觸發器 449
23.8 刪除觸發器 451
23.9 本章小結 453
第24章 游標 455
24.1 游標的基本概念 457
24.1.1 游標的基本原理 457
24.1.2 游標的內容構成 457
24.1.3 游標的類型 457
24.1.4 游標變數 461
24.2 游標操作 462
24.2.1 申明游標 462
24.2.2 打開游標 463
24.2.3 讀取數據 464
24.2.4 關閉游標CLOSE 469
24.2.5 刪除游標 469
24.3 查看游標 470
24.3.1 查看SQL Server游標 470
24.3.2 查看Oracle游標 475
24.4 游標循環 476
24.5 參數游標 478
24.6 游標嵌套 479
24.7 游標應用 479
24.8 小結 483
第25章 錯誤和異常處理 486
25.1 錯誤和異常分類 488
25.2 SQL Server錯誤和異常處理 488
25.2.1 錯誤信息及存儲 488
25.2.2 錯誤捕獲方法 488
25.3 Oracle錯誤和異常處理 492
25.3.1 異常處理方法 492
25.3.2 異常處理語法 492
25.3.3 預定義異常處理 493
25.3.4 非預定義異常處理 494
25.3.5 自定義異常處理 495
25.4 小結 496
第7篇 SQL在資料庫開發和
管理中的應用
第26章 嵌入式SQL 498
26.1 ESQL基本概念 500
26.2 SQL的使用方法 500
26.3 ESQL語句和宿主語言之間的通信
方法 502
26.3.1 使用SQL通信區通信 503
26.3.2 使用主變數通信 503
26.3.3 使用游標通信 506
26.4 ESQL的編譯處理過程 507
26.5 使用WHENEVER語句簡化錯誤
處理 507
26.6 在高級語言中嵌入SQL 509
26.6.1 ESQL的語法格式 509
26.6.2 在Visual C++下執行ESQL
語句 509
26.6.3 在Visual C#中執行嵌入式
T-SQL語句 511
26.7 在資料庫管理系統中嵌入SQL 513
26.7.1 ESQL語句與T-SQL和
PL/SQL語句的比較 513
26.7.2 在SQL Server中使用嵌入式
SQL 514
26.7.3 在Oracle中嵌入SQL 517
26.8 動態SQL技術 524
26.8.1 動態SQL的基本概念 524
26.8.2 SQL Server動態SQL語句的處理 525
26.8.3 Oracle動態SQL語句的處理 527
26.9 小結 532
第27章 資料庫的存取訪問技術 534
27.1 資料庫系統的開發環境 536
27.2 應用系統的典型結構 536
27.3 開發平台和工具 538
27.3.1 Power Builder 538
27.3.2 Delphi 539
27.3.3 Oracle Developer Suite 539
27.3.4 .NET 540
27.3.5 J2EE 542
27.3.6 .NET和J2EE比較 543
27.4 資料庫的連接訪問技術 543
27.4.1 OLE DB 543
27.4.2 ODBC 545
27.4.3 JDBC 547
27.4.4 ADO 549
27.4.5 ADO.NET 556
27.4.6 Recordset對象方法的使用 561
27.5 ASP/ASP.NET與資料庫的連接和訪問 562
27.5.1 ASP/ASP.NET與Text 563
27.5.2 ASP/ASP.NET與Excel 563
27.5.3 ASP/ASP.NET與Access 564
27.5.4 ASP/ASP.NET與SQLServer 564
27.5.5 ASP/ASP.NET與Oracle 565
27.6 VB.NET與資料庫的連接和訪問 566
27.6.1 VB.NET與Text 566
27.6.2 VB.NET與Excel 566
27.6.3 VB.NET與Access 567
27.6.4 VB.NET與SQL Server 568
27.6.5 VB.NET與Oracle 568
27.7 VC#.NET與資料庫的連接和訪問 569
27.7.1 VC#.NET與Excel 569
27.7.2 VC#.NET與Access 570
27.7.3 VC#.NET與SQL Server 571
27.7.4 VC#.NET與Oracle 572
27.8 小結 572
第28章 用SQL管理SQL Server資料庫 573
28.1 操作系統管理 576
28.1.1 查看伺服器屬性和操作系統參數 576
28.1.2 查看磁碟目錄和文件信息 577
28.1.3 查看存儲介質與磁碟分區信息 578
28.1.4 查看伺服器提供的服務組件與程序 579
28.2 DBMS管理 579
28.2.1 查看資料庫服務屬性 579
28.2.2 查看資料庫系統版本及配置參數 580
28.2.3 查看和修改資料庫屬性 580
28.2.4 查看資料庫文件和文件組屬性 582
28.2.5 查看當前資料庫重要的數據對象 582
28.2.6 查看資料庫日誌 583
28.3 用戶對象、許可權與安全管理 584
28.3.1 查看資料庫角色 584
28.3.2 查看和管理資料庫用戶 585
28.3.3 查看有關許可權 586
28.3.4 查看和管理用戶的數據對象 587
28.3.5 查看和管理進程 590
28.3.6 查看資料庫鎖 591
28.3.7 資料庫備份和恢復 593
28.4 小結 597
第29章 用SQL管理Oracle資料庫 599
29.1 系統管理 606
29.1.1 查看資料庫系統屬性 606
29.1.2 查看所有資料庫對象的屬性 607
29.1.3 查看和修改當前資料庫的字元集 608
29.1.4 查看資料庫文件的屬性 609
29.1.5 查看和設置資料庫歸檔信息 609
29.1.6 查看資料庫的數據字典 611
29.1.7 查看資料庫的後台進程 612
29.1.8 查看和修改系統的當前時間 612
29.1.9 查看SCN和MTS 613
29.2 連接、會話與進程管理 614
29.2.1 查看資料庫的並發連接會話數 614
29.2.2 查看客戶端連接會話信息 614
29.2.3 查看會話進程及客戶端信息 617
29.3 表空間和數據文件管理 619
29.3.1 查看錶空間信息 619
29.3.2 查看錶空間的數據文件和容量統計信息 620
29.3.3 查看數據對象所佔用的表空間信息 622
29.3.4 查看錶空間的碎片 623
29.3.5 查看數據文件信息 624
29.3.6 查看日誌組信息 625
29.3.7 查看競爭與等待信息 626
29.3.8 查看TRACE腳本文件 628
29.4 回滾段管理 628
29.4.1 查看回滾段的屬性 628
29.4.2 查看用戶與會話正在使用的回滾段 631
29.5 數據表管理 631
29.5.1 查看數據表的基本屬性 631
29.5.2 查看錶的存儲信息 632
29.5.3 查看錶的約束與關聯信息 634
29.5.4 表記錄管理 636
29.6 索引管理 637
29.6.1 查看索引屬性 637
29.6.2 查看用戶的索引信息 637
29.6.3 查看索引的存儲屬性 638
29.6.4 對欄位進行全文檢索 638
29.7 存儲過程、存儲函數和觸發器管理 639
29.7.1 查看存儲過程和函數的狀態信息 639
29.7.2 查看觸發器、過程、函數的創建腳本 639
29.8 查看運行的SQL語句 640
29.8.1 查看進程所對應的SQL語句 640
29.8.2 查看用戶正在運行的SQL語句 642
29.8.3 查看Disk Read最高的SQL語句 642
29.8.4 查看回滾段里正在運行的SQL語句 643
29.8.5 查看視圖對應的SQL語句 643
29.8.6 查看SQL語句的執行情況 643
29.9 角色、用戶與安全管理 643
29.9.1 查看資料庫角色信息 644
29.9.2 查看資料庫用戶信息 644
29.9.3 查看用戶對象和類型 646
29.9.4 查看有關授權信息 649
29.9.5 查看數據備份和恢復信息 650
29.10 鎖管理 651
29.10.1 查看鎖 651
29.10.2 查看被鎖的進程及鎖類型信息 654
29.10.3 查看被鎖定的資料庫對象 655
29.10.4 查看鎖定對象的客戶端信息 656
29.10.5 解鎖操作 656
29.11 參數調整與性能優化 657
29.11.1 查看資料庫伺服器參數 658
29.11.2 查看客戶端參數 659
29.11.3 查看會話環境參數 659
29.11.4 查看inin.ora參數 659
29.11.5 查看NLS參數 659
29.11.6 查看SGA 660
29.11.7 查看PGA 670
29.11.8 查看排序區 670
29.11.9 查看Large Pool 671
29.11.10 查看Java語言區 671
29.11.11 查看UGA區 671
29.11.12 查看CPU資源 671
29.11.13 查看I/O資源的使用情況 672
29.11.14 查看等待與競爭 673
29.11.15 SQL語句優化 676
29.12 小結 678
第8篇 附錄
附錄A SQL常用語句分類索引 680
附錄B SQL、SQL Server、Oracle常用函數分類對照索引 683
附錄C SQL Server常用系統表和系統存儲過程索引 689
附錄D Oracle資料庫常用視圖索引 696
附錄E Oracle資料庫系統環境變數參數 700
❹ SQL Server 2008標准教程的編輯推薦
《程序員成長課堂:SQL Server 2008標准教程》主要內容
SQLServer資料庫概述
創建資料庫
定義表
索引
Transact-SQL基本語句
高級Transact-SQL
構建視圖
觸發器
游標
用戶自定義函數和數據類型
SQLServer2008的事務與鎖
全文索引
資料庫備份
資料庫的維護計劃
將數據升遷到SQLServer2008
SQLServer2008安全性管理
報表服務
分析服務
使用C#進行SQLServer2008應用開發
Java與SQLServer2008
詳細介紹了SQL-Server2008資料庫技術及新功能
每個知識點都配實例講解,學習起來更加直觀
對書中的重點內容和難點內容進行了專門的講解和剖析
注重實戰,給出了C#與Java資料庫開發實例
❺ 如何用SQLServer建立分布式資料庫
很多組織機構慢慢的在不同的伺服器和地點部署SQLServer資料庫——為各種應用和目的——開始考慮通過SQLServer集群的方式來合並。
將SQLServer實例和資料庫合並到一個中心的地點可以減低成本,尤其是維護和軟硬體許可證。此外,在合並之後,可以減低所需機器的數量,這些機器就可以用於備用。
當尋找一個備用,比如高可用性的環境,企橡納業常常決定部署Microsoft的集群架構。我常常被問到小的集群(由較少的節點組成)SQLServer實例和作為中心解決方案的大的集群哪一種更好。在我們比較了這兩個集群架構之後,我讓你們自己做決定。
什麼是Microsoft集群伺服器
MSCS是一個WindowsServer企業版中的內建功能。這個軟體支持兩個或者更多伺服器節點連接起來形成一個「集群」,來獲得更高的可用性和對數據和應用更簡便的管理。MSCS可以自動的檢查到伺服器或者應用的失效,並從中恢復。你也可以使用它來(手動)移動伺服器之間的負載來平衡利用率以及無需停機時間來調度計劃中的維護任務。
這種集群設計使用軟體「心跳」來檢測應用或者伺服器的失效。在伺服器失效的事件中,它會自動將資源(比如磁碟和IP地址)的所有權從失效的伺服器轉移到活動的伺服器。注意還有方法可以保持心跳連接的更高的可用性,比如站點全面失效的情況下。
MSCS不要求在客戶計算機上安裝任何特殊軟體,因此用戶在災難恢復的經歷依賴於客戶-伺服器應用中客戶一方的本質。客戶的重新連接常常是透明的,因為MSCS在相同的IP地址上重啟應用、文件共享等等。進一步,為了災難恢復,集群的節點可以處於分離的、遙遠的地點。
在集群伺服器上的SQLServer
SQLServer2000可以配置為最多4個節點的集群,而SQLServer2005可以配置為最多8個節點的集群。當一個SQLServer實例被配置為集群之後,它的磁碟資源、IP地址和服務就形成了集群組來實現災難恢復。
SQLServer2000允許在一個集群上安裝16個實例。根據在線幫助,「SQLServer2005在一個伺服器或者處理器上可以支持最多50個SQLServer實例,」但是,「只能使用25個硬碟驅動器符,因此如果你需要更多的實例,那麼需要預先規劃。」
注意SQLServer實例的災難恢復階段是指SQLServer服務開始所需要的時間,這可能從幾秒鍾到幾分鍾。如果你需要更高的可用性,考慮使用其神拆他的方法,比如logshipping和資料庫鏡像。
單個的大的SQLServer集群還是小的集群
下面是大的、由更多的節點組成的集群的優點:
◆更高的可用新(更多的節點來災難恢復)。
◆更多的負載游如棗均衡選擇(更多的節點)。
◆更低廉的維護成本。
◆增長的敏捷性。多達4個或者8個節點,依賴於SQL版本。
◆增強的管理性和簡化環境(需要管理的少了)。
◆更少的停機時間(災難恢復更多的選擇)。
◆災難恢復性能不受集群中的節點數目影響。
下面是單個大的集群的缺點:
◆集群節點數目有限(如果需要第9個節點怎麼辦)。
◆在集群中SQL實例數目有限。
◆沒有對失效的防護——如果磁碟陣列失效了,就不會發生災難恢復。
◆使用災難恢復集群,無法在資料庫級別或者資料庫對象級別,比如表,創建災難恢復集群。
虛擬化和集群
虛擬機也可以參與到集群中,虛擬和物理機器可以集群在一起,不會發生問題。SQLServer實例可以在虛擬機上,但是性能可能會受用影響,這依賴於實例所消耗的資源。在虛擬機上安裝SQLServer實例之前,你需要進行壓力測試來驗證它是否可以承受必要的負載。
在這種靈活的架構中,如果虛擬機和物理機器集群在一起,你可以在虛擬機和物理機器之間對SQLServer進行負載均衡。比如,使用虛擬機上的SQLServer實例開發應用。然後在你需要對開發實例進行壓力測試的時候,將它災難恢復到集群中更強的物理機器上。
集群伺服器可以用於SQLServer的高可用性、災難恢復、可擴展性和負載均衡。單個更大的、由更多的節點組成的集群往往比小的、只有少數節點的集群更好。大個集群允許更靈活環境,為了負載均衡和維護,實例可以從一個節點移動到另外的節點。
❻ C#中使用SQLServer的方法
1、sqldmo
SQLDMO是操作SQLServer的理想的方式,如果您的資料庫是SQLServer就可以考慮使用這種方式。在C#中使用SQLDMO需要添加SQLDMO的引用,然後在當前的文件中using SQLDMO;即可以使用SQLDMO。SQLDMO的對象模型大家可以在SQLServer的幫助中獲得。
private void GetTabels_DMO(string strServerName,string strUser,string strPWD,string strDatabase)
{
SQLDMO.SQLServer Server = new SQLDMO.SQLServerClass();
//連接到伺服器
Server.Connect(strServerName,strUser,strPWD);
//對所有的資料庫遍歷,獲得指定資料庫
for(int i=0;i<Server.Databases.Count;i++)
{
//判斷當前資料庫是否是指定資料庫
if(Server.Databases.Item(i+1,"dbo").Name ==strDatabase)
{
//獲得指定資料庫
SQLDMO._Database db= Server.Databases.Item(i+1,"dbo");
//獲得指定資料庫中的所有表
for(int j=0;j<db.Tables.Count;j++)
{
MessageBox.Show(db.Tables.Item(j+1,"dbo").Name);
}
}
}
}
//小新技術網 xker.com
2、adox
adox是ado Extensions for DDL and Security,是微軟對ADO技術的擴展,使用它我們可以操作資料庫的結構。它是一個COM組件,估計以後在ADO.NET中會增加ADOX的一些功能。如果大家需要ADOX的一些資料,我可以提供。下面的一個例子就是使用ADOX來獲得當前資料庫的所有表。
private void GetTables_ADOX()
{
//ADO的資料庫連接
ADODB.ConnectionClass cn=new ADODB.ConnectionClass();
string ConnectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Initial Catalog=Test;Data Source=HBXP";
cn.Open(ConnectionString,"sa","",0);
//操作ADOX的Catalog對象
CatalogClass cat=new CatalogClass();
cat.ActiveConnection=cn;
for(int i=0;i<cat.Tables.Count;i++)
{
MessageBox.Show(cat.Tables[i].Name);
}
}
注意:在上面的代碼中cat.ActiveConnection不能是ADO.Net中的Connection,而應該是ADO的Connection。
3、ado.net中的oledbconnection
在c#中我們首先會考慮使用ado.net來解決問題,如果沒有方法才會考慮使用adox或者sqldmo來解決這個問題。雖然adox和sqldmo也能夠解決這個問題,但是他們畢竟是com組件,在.net中使用起來和在非.net平台會有一些差異,不是很順手。下面的示例就顯示了在ado.net中的oledbconnection的方法getoledbschematable來獲得資料庫的架構。大家可以在msdn中看到這個方法的說明:
public DataTable GetOleDbSchemaTable(
Guid schema,
object[] restrictions);
參數
schema
OleDbSchemaGuid 的值之一,它指定要返回的架構表。
restrictions
限制值的 Object 數組。這些值按照限制列的順序來應用。即,第一個限制值應用於第一個限制列,第二個限制值應用於第二個限制列,依此類推。
返回值
包含請求的架構信息的 DataTable。
更多的信息大家可以查詢MSDN,下面將示例如何實現。
private void GetTables_ADONET()
{
//處理OleDbConnection
string strConnectionString=@"Integrated Security=SSPI;Data Source=HBXP;Initial Catalog=Test;Provider=SQLOLEDB.1";
OleDbConnection cn=new OleDbConnection(strConnectionString);
cn.Open();
//利用OleDbConnection的GetOleDbSchemaTable來獲得資料庫的結構
DataTable dt = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] {null, null, null, "TABLE"});
foreach (DataRow dr in dt.Rows)
{
MessageBox.Show((String)dr["TABLE_NAME"]);
}
}
4、信息架構視圖
信息架構視圖是sql-92 標准中定義的架構視圖,這些視圖獨立於系統表。信息架構視圖的最大優點是,即使我們對系統表進行了重要的修改,應用程序也可以正常地使用這些視圖進行訪問。下面的示例使用信息架構視圖來工作。
private void GetTables_INFORMATION_SCHEMA()
{
//打開連接
string strConnectionString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
sqlcn=new SqlConnection(strConnectionString);
sqlcn.Open();
//使用信息架構視圖
SqlCommand sqlcmd=new SqlCommand("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'",sqlcn);
SqlDataReader dr=sqlcmd.ExecuteReader();
while(dr.Read())
{
MessageBox.Show(dr.GetString(0));
}
}
5、使用系統表
如果您的資料庫系統是sqlserver,就可以使用如下的方式來獲得當前資料庫的所有表:
private void GetTables_SystemTable()
{
//打開連接
string strConnectionString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
sqlcn=new SqlConnection(strConnectionString);
sqlcn.Open();
//使用信息架構視圖
SqlCommand sqlcmd=new SqlCommand("SELECT OBJECT_NAME (id) FROM sysobjects WHERE xtype = 'U' AND OBJECTPROPERTY (id, 'IsMSShipped') = 0",sqlcn);
SqlDataReader dr=sqlcmd.ExecuteReader();
while(dr.Read())
{
MessageBox.Show(dr.GetString(0));
}
}
6、使用sqlserver的存儲過程「sp_tables」
下面是「盛***」朋友提出的使用存儲過程的方法的補充代碼。
public void GetTables_StoredProcere()
{
//處理OleDbConnection
string strConnectionString=@"Integrated Security=SSPI;Data Source=HBXP;Initial Catalog=Test;Provider=SQLOLEDB.1";
OleDbConnection cn=new OleDbConnection(strConnectionString);
cn.Open();
//執行存儲過程
OleDbCommand cmd=new OleDbCommand("sp_tables",cn);
cmd.CommandType=CommandType.StoredProcere;
OleDbDataReader dr=cmd.ExecuteReader();
while(dr.Read())
{
MessageBox.Show(dr["TABLE_NAME"].ToString());
}
}
總結:獲得當前資料庫中所有表的方法還不止,本人列出的這些,希望以上方法能夠起到拋磚引玉的作用。以上的這些方法各有各的優缺點,希望大家能夠靈活的應該,並且希望能夠將發現的新的方法告知我,謝謝