http://book.csdn.net/ 2007-1-11 15:37:00
第1章 數(shù)據(jù)庫與SQL基礎...... 1 1.1 數(shù)據(jù)庫的基本概念...... 1 1.1.1 數(shù)據(jù)庫的由來...... 1 1.1.2 數(shù)據(jù)庫系統(tǒng)的概念...... 3 1.2 數(shù)據(jù)庫系統(tǒng)的結構、組成及工作流程...... 3 1.2.1 數(shù)據(jù)庫的體系結構...... 3 1.2.2 數(shù)據(jù)庫系統(tǒng)的組成...... 4 1.2.3 數(shù)據(jù)庫的工作流程...... 5 1.3 數(shù)據(jù)庫的發(fā)展...... 6 1.3.1 第一代數(shù)據(jù)庫...... 7 1.3.2 第二代數(shù)據(jù)庫...... 7 1.3.3 新一代數(shù)據(jù)庫技術的研究和發(fā)展...... 7 1.4 關系數(shù)據(jù)庫...... 8 1.4.1 關系模型...... 8 1.4.2 Codd十二法則...... 9 1.4.3 范式...... 10 1.5 SQL語言基礎...... 11 1.5.1 SQL的歷史...... 11 1.5.2 SQL語言的組成...... 12 1.5.3 SQL語句的結構...... 13 1.5.4 SQL的優(yōu)點...... 13 1.5.5 SQL的執(zhí)行...... 14 1.6 SQL環(huán)境...... 15 1.6.1 環(huán)境...... 15 1.6.2 SQL的層次結構...... 15 1.6.3 客戶程序和服務程序系統(tǒng)...... 17 1.6.4 SQL環(huán)境中對象的命名規(guī)則...... 18 第2章 主要的關系數(shù)據(jù)庫與SQL... 21 2.1 SQL Server.. 21 2.1.1 SQL Server的結構...... 21 2.1.2 數(shù)據(jù)庫訪問標準化接口—ODBC.... 22 2.1.3 使用查詢分析器執(zhí)行SQL語句...... 22 2.2 Transact-SQL... 24 2.2.1 Transact-SQL 概述...... 24 2.2.2 Transact-SQL的主要組成...... 25 2.2.3 Transact-SQL的一些重要命令...... 26 2.3 Oracle數(shù)據(jù)庫...... 29 2.3.1 Oracle數(shù)據(jù)庫軟件組成...... 29 2.3.2 Oracle數(shù)據(jù)庫體系結構...... 29 2.3.3 Oracle數(shù)據(jù)庫系統(tǒng)結構...... 30 2.3.4 使用SQL*Plus執(zhí)行SQL語句...... 31 2.4 PL/SQL簡介...... 32 2.4.1 PL/SQL的特點...... 32 2.4.2 PL/SQL程序結構...... 33 第3章 創(chuàng)建、修改和刪除表...... 37 3.1 表的基礎知識...... 37 3.1.1 表的基本結構...... 37 3.1.2 表的種類...... 38 3.2 SQL數(shù)據(jù)類型...... 39 3.2.1 字符型數(shù)據(jù)...... 39 3.2.2 數(shù)字型數(shù)據(jù)...... 40 3.2.3 日期數(shù)據(jù)類型...... 41 3.2.4 二進制數(shù)據(jù)類型...... 43 3.2.5 文本和圖形數(shù)據(jù)類型...... 44 3.2.6 自定義數(shù)據(jù)類型...... 44 3.3 表的創(chuàng)建(CREATE)...... 46 3.3.1 創(chuàng)建基本表...... 46 3.3.2 非空約束...... 47 3.3.3 DEFAULT指定缺省值...... 49 3.4 表的修改...... 50 3.4.1 增加新列...... 50 3.4.2 刪除列...... 51 3.4.3 修改列...... 53 3.5 表的刪除與重命名...... 55 3.5.1 重命名表...... 55 3.5.2 刪除表...... 56 3.6 創(chuàng)建、刪除數(shù)據(jù)庫...... 56 3.6.1 數(shù)據(jù)庫的創(chuàng)建...... 56 3.6.2 SQL Server中數(shù)據(jù)庫的創(chuàng)建...... 57 3.6.3 刪除數(shù)據(jù)庫...... 58 第4章 索引與視圖的創(chuàng)建...... 61 4.1 索引的基礎知識...... 61 4.1.1 索引的概念...... 61 4.1.2 索引的結構...... 61 4.2 索引的創(chuàng)建與銷毀...... 63 4.2.1 基本創(chuàng)建語法...... 63 4.2.2 本章實例用到的實例表...... 64 4.2.3 創(chuàng)建簡單的非簇索引...... 66 4.2.4 多字段非簇索引的創(chuàng)建...... 69 4.2.5 使用UNIQUE關鍵字創(chuàng)建惟一索引...... 70 4.2.6 使用CLUSTERDE關鍵字創(chuàng)建簇索引...... 71 4.2.7 索引的銷毀...... 73 4.2.8 使用索引的幾點原則...... 73 4.3 視圖的基礎知識...... 74 4.3.1 視圖簡介...... 74 4.3.2 視圖的優(yōu)缺點...... 74 4.4 視圖的創(chuàng)建與銷毀...... 75 4.4.1 基本創(chuàng)建語法...... 75 4.4.2 創(chuàng)建簡單的視圖...... 75 4.4.3 利用視圖簡化表的復雜連接...... 78 4.4.4 利用視圖簡化復雜查詢...... 79 4.4.5 視圖的銷毀...... 81 4.4.6 使用視圖的幾點原則...... 82 第5章 簡單的查詢...... 83 5.1 查詢的基本結構...... 83 5.1.1 SELECT語句的結構...... 83 5.1.2 SELECT語句的執(zhí)行步驟...... 84 5.2 列的查詢...... 84 5.2.1 本章用到的實例表...... 85 5.2.2 單列查詢...... 85 5.2.3 使用DISTINCT去除重復信息...... 86 5.2.4 多列查詢...... 87 5.2.5 查詢所有的列...... 88 5.3 排序查詢結果...... 89 5.3.1 單列排序...... 89 5.3.2 多列排序...... 90 5.3.3 采用序號進行多列排序...... 91 5.3.4 反向排序...... 92 5.4 使用WHERE子句定義搜索條件查詢...... 93 5.4.1 WHERE子句單條件查詢...... 93 5.4.2 單值比較運算符...... 94 5.4.3 BETWEEN運算符范圍篩選...... 96 5.4.4 NULL值的判斷...... 97 第6章 復雜搜索條件查詢...... 99 6.1 本章用到的實例表...... 99 6.2 組合查詢條件...... 100 6.2.1 AND運算符...... 100 6.2.2 OR運算符...... 101 6.2.3 AND、OR運算符的組合使用...... 103 6.3 IN運算符...... 104 6.3.1 IN運算符的使用...... 104 6.3.2 IN運算符與OR運算符...... 105 6.4 NOT運算符...... 106 6.4.1 使用NOT運算符...... 106 6.4.2 NOT運算符與<>運算符...... 108 6.5 使用LIKE進行模糊查詢...... 109 6.5.1 LIKE運算符...... 109 6.5.2 “%”通配符...... 110 6.5.3 “_”通配符...... 112 6.5.4 “[]”通配符...... 114 6.5.5 使用ESCAPE定義轉義符...... 115 第7章 連接符、數(shù)值運算與函數(shù)...... 117 7.1 本章實例用到的表...... 117 7.2 連接符...... 118 7.2.1 連接符的應用...... 118 7.2.2 使用別名...... 119 7.3 數(shù)值運算...... 121 7.3.1 數(shù)學運算符的種類...... 121 7.3.2 數(shù)學運算符的運用...... 122 7.3.3 使用CAST表達式轉換數(shù)據(jù)類型...... 123 7.3.4 使用CASE表達式...... 124 7.4 函數(shù)...... 126 7.4.1 有關函數(shù)的說明...... 126 7.4.2 字符處理函數(shù)...... 126 7.4.3 算術運算函數(shù)...... 131 7.4.4 日期時間函數(shù)...... 133 7.4.5 CONVERT()函數(shù)轉換日期、時間...... 136 第8章 聚合分析與分組...... 139 8.1 聚合分析的基本概念...... 139 8.1.1 聚合分析...... 139 8.1.2 聚合函數(shù)...... 139 8.2 聚合函數(shù)的應用...... 140 8.2.1 求和函數(shù)—SUM().. 140 8.2.2 計數(shù)函數(shù)—COUNT().. 140 8.2.3 最大/最小值函數(shù)—MAX()/MIN().. 143 8.2.4 均值函數(shù)—AVG().. 145 8.2.5 聚合分析的重值處理...... 147 8.2.6 聚合函數(shù)的組合使用...... 148 8.3 組合查詢...... 148 8.3.1 GROUP BY子句創(chuàng)建分組...... 149 8.3.2 GROUP BY子句根據(jù)多列組合行...... 150 8.3.3 ROLLUP運算符和CUBE運算符...... 151 8.3.4 GROUP BY子句中的NULL值處理...... 153 8.3.5 HAVING子句...... 153 8.3.6 HAVING子句與WHERE子句...... 154 8.3.7 SELECT語句各查詢子句總結...... 156 第9章 多表查詢...... 157 9.1 本章用到的實例表...... 157 9.2 表的基本連接...... 158 9.2.1 連接表的目的...... 158 9.2.2 簡單的二表連接...... 159 9.2.3 多表連接...... 161 9.2.4 使用表別名...... 162 9.2.5 采用JOIN關鍵字建立連接...... 163 9.3 表的連接類型...... 163 9.3.1 自連接...... 163 9.3.2 自然連接(NATURAL JOIN)...... 166 9.3.3 內(nèi)連接(INNER JOIN)...... 167 9.3.4 外連接(OUTER JOIN)...... 170 9.3.5 交叉連接(CROSS JOIN)...... 176 9.4 UNION與UNION JOIN.... 177 9.4.1 關系的集合運算...... 177 9.4.2 UNION運算符...... 178 9.4.3 ORDER BY子句排序UNION運算結果...... 180 9.4.4 對多表進行UNION運算...... 181 9.4.5 UNION JOIN 連接表...... 183 9.5 表連接的其他應用及注意問題...... 183 9.5.1 連接表進行聚合運算...... 183 9.5.2 多表連接的綜合運用...... 185 9.5.3 多表連接注意事項...... 186 第10章 子查詢...... 187 10.1 創(chuàng)建和使用返回單值的子查詢...... 187 10.1.1 在多表查詢中使用子查詢...... 187 10.1.2 在子查詢中使用聚合函數(shù)...... 188 10.2 創(chuàng)建和使用返回多行的子查詢...... 190 10.2.1 IN子查詢...... 190 10.2.2 IN子查詢實現(xiàn)集合交和集合差運算...... 191 10.2.3 EXISTS子查詢...... 192 10.2.4 EXISTS子查詢實現(xiàn)兩表交集...... 194 10.2.5 SOME/ALL子查詢...... 195 10.2.6 UNIQUE子查詢...... 197 10.3 相關子查詢...... 198 10.3.1 使用IN引入相關子查詢...... 198 10.3.2 比較運算符引入相關子查詢...... 200 10.3.3 在HAVING子句中使用相關子查詢...... 201 10.4 嵌套子查詢...... 203 10.5 使用子查詢創(chuàng)建視圖...... 204 10.6 樹查詢...... 205 第11章 數(shù)據(jù)插入操作...... 209 11.1 插入單行記錄...... 209 11.1.1 基本語法...... 209 11.1.2 整行插入...... 209 11.1.3 NULL值的插入...... 211 11.1.4 惟一值的插入...... 212 11.1.5 特定字段數(shù)據(jù)插入...... 213 11.1.6 通過視圖插入行...... 214 11.2 插入多行記錄...... 216 11.2.1 由VALUES關鍵字引入多行數(shù)據(jù)插入...... 217 11.2.2 使用SELECT語句插入值...... 217 11.3 表中數(shù)據(jù)的復制...... 220 11.3.1 基本語法...... 221 11.3.2 應用實例...... 221 11.4 從外部數(shù)據(jù)源導入、導出數(shù)據(jù)...... 222 11.4.1 Access數(shù)據(jù)庫數(shù)據(jù)的導出...... 223 11.4.2 Access數(shù)據(jù)庫數(shù)據(jù)的導入...... 225 11.4.3 SQL Server數(shù)據(jù)庫數(shù)據(jù)導出...... 227 11.4.4 SQL Server數(shù)據(jù)庫數(shù)據(jù)導入...... 230 第12章 數(shù)據(jù)的更新和刪除...... 233 12.1 更新表中的數(shù)據(jù)...... 233 12.1.1 UPDATE語句的基本語法...... 233 12.1.2 UPDATE語句更新列值...... 234 12.1.3 利用子查詢更新多行的值...... 237 12.1.4 依據(jù)外表值更新數(shù)據(jù)...... 238 12.1.5 分步更新表...... 239 12.2 刪除表中的數(shù)據(jù)...... 240 12.2.1 DELETE語句基本語法...... 240 12.2.2 DELETE語句刪除單行數(shù)據(jù)...... 240 12.2.3 DELETE語句刪除多行數(shù)據(jù)...... 241 12.2.4 DELETE語句刪除所有行...... 242 12.2.5 TRUNCATE TABLE語句...... 242 12.3 通過視圖更新表...... 243 12.3.1 可更新視圖的約束...... 243 12.3.2 通過視圖更新表數(shù)據(jù)...... 243 12.3.3 通過視圖刪除表數(shù)據(jù)...... 245 第13章 安全性控制...... 249 13.1 SQL安全模式...... 249 13.1.1 授權ID.... 249 13.1.2 SQL的安全對象和權限...... 250 13.1.3 授權圖...... 251 13.2 角色管理...... 251 13.2.1 CREATE語句創(chuàng)建角色...... 252 13.2.2 DROP語句刪除角色...... 252 13.2.3 GRANT語句授予角色...... 252 13.2.4 REVOKE語句取消角色...... 253 13.3 權限管理...... 254 13.3.1 GRANT語句授予權限...... 254 13.3.2 REVOKE語句取消權限...... 255 13.3.3 SELECT權限控制...... 256 13.3.4 INSERT權限控制...... 258 13.3.5 UPDATE權限控制...... 258 13.3.6 DELETE權限控制...... 259 13.4 SQL Server安全管理...... 260 13.4.1 SQL Server登錄認證...... 260 13.4.2 SQL Server用戶ID的管理...... 261 13.4.3 SQL Server權限管理...... 263 13.4.4 SQL Server角色管理...... 266 13.5 Oracle安全管理...... 268 13.5.1 Oracle中用戶、資源、概要文件、模式的概念...... 269 13.5.2 Oracle中的用戶管理...... 269 13.5.3 Oracle中的資源管理...... 274 13.5.4 Oracle中的權限管理...... 277 13.5.5 Oracle中的角色管理...... 278 第14章 完整性控制...... 281 14.1 完整性約束簡介...... 281 14.1.1 數(shù)據(jù)的完整性...... 281 14.1.2 完整性約束的類型...... 281 14.2 與表有關的約束...... 282 14.2.1 列約束與表約束的創(chuàng)建...... 282 14.2.2 NOT NULL(非空)約束...... 282 14.2.3 UNIQUE(惟一)約束...... 284 14.2.4 PRIMARY KEY(主鍵)約束...... 285 14.2.5 FOREIGN KEY(外鍵)約束...... 287 14.2.6 CHECK(校驗)約束...... 289 14.3 深入探討外鍵與完整性檢查...... 290 14.3.1 引用完整性檢查...... 290 14.3.2 MATCH子句...... 291 14.3.3 更新、刪除操作規(guī)則...... 293 14.4 域約束與斷言...... 295 14.4.1 域與域約束...... 295 14.4.2 利用斷言創(chuàng)建多表約束...... 296 14.5 SQL Server中的完整性控制...... 296 14.5.1 創(chuàng)建規(guī)則(Rule)...... 297 14.5.2 規(guī)則的綁定與松綁...... 298 14.5.3 創(chuàng)建缺省值(Default)...... 299 14.5.4 缺省值的綁定與松綁...... 300 第15章 存儲過程與函數(shù)...... 303 15.1 SQL中的存儲過程與函數(shù)...... 303 15.2 SQL Server 中的流控制語句...... 304 15.2.1 BEGIN…END語句...... 304 15.2.2 IF…ELSE語句...... 304 15.2.3 WHILE、BREAK和CONTINUE語句...... 304 15.2.4 DECLARE語句...... 306 15.2.5 GOTO label語句...... 306 15.2.6 RETURN語句...... 307 15.2.7 WAITFOR語句...... 307 15.2.8 PRINT語句...... 308 15.2.9 注釋...... 308 15.3 SQL Server中的存儲過程和函數(shù)...... 308 15.3.1 系統(tǒng)存儲過程...... 308 15.3.2 使用CREATE PROCEDURE創(chuàng)建存儲過程...... 309 15.3.3 使用EXECUTE語句調(diào)用存儲過程...... 310 15.3.4 使用CREATE FUNCTION創(chuàng)建函數(shù)...... 312 15.3.5 使用Enterprise Manager創(chuàng)建存儲過程和函數(shù)...... 315 15.3.6 修改和刪除存儲過程和函數(shù)...... 317 15.4 Oracle中的流控制語句...... 319 15.4.1 條件語句...... 319 15.4.2 循環(huán)語句...... 320 15.4.3 標號和GOTO.... 322 15.5 Oracle數(shù)據(jù)庫中的存儲過程...... 322 15.5.1 存儲過程的創(chuàng)建與調(diào)用...... 322 15.5.2 Oracle中存儲過程和函數(shù)的管理...... 324 第16章 SQL觸發(fā)器...... 325 16.1 觸發(fā)器的基本概念...... 325 16.1.1 觸發(fā)器簡介...... 325 16.1.2 觸發(fā)器執(zhí)行環(huán)境...... 325 16.2 SQL Server中的觸發(fā)器...... 326 16.2.1 SQL Server觸發(fā)器的種類...... 326 16.2.2 使用CREATE TRIGGER命令創(chuàng)建觸發(fā)器...... 326 16.2.3 INSERT觸發(fā)器...... 328 16.2.4 DELETE觸發(fā)器...... 329 16.2.5 UPDATE觸發(fā)器...... 330 16.2.6 INSTEAD OF觸發(fā)器...... 332 16.2.7 嵌套觸發(fā)器...... 334 16.2.8 遞歸觸發(fā)器...... 336 16.2.9 SQL Server中觸發(fā)器的管理...... 338 16.3 Oracle數(shù)據(jù)庫中觸發(fā)器的操作...... 340 16.3.1 Oracle觸發(fā)器類型...... 340 16.3.2 觸發(fā)器的創(chuàng)建...... 341 16.3.3 創(chuàng)建系統(tǒng)觸發(fā)器...... 342 16.3.4 觸發(fā)器的觸發(fā)次序和觸發(fā)謂詞的使用...... 343 16.3.5 Oracle觸發(fā)器的管理...... 346 第17章 SQL中游標的使用...... 349 17.1 SQL游標的基本概念...... 349 17.1.1 游標的概念...... 349 17.1.2 游標的作用及其應用...... 350 17.2 SQL游標的使用...... 351 17.2.1 使用DECLARE CURSOR語句創(chuàng)建游標...... 351 17.2.2 使用OPEN/CLOSE語句打開/關閉游標...... 352 17.2.3 使用FETCH語句檢索數(shù)據(jù)...... 352 17.2.4 基于游標的定位DELETE語句...... 354 17.2.5 基于游標的定位UPDATE語句...... 356 17.3 SQL Server中游標的擴展...... 357 17.3.1 Transact_SQL擴展DECLARE CURSOR語法...... 357 17.3.2 @@CURSOR_ROWS全局變量確定游標的行數(shù)...... 359 17.3.3 @@FETCH_STATUS全局變量檢測FETCH操作的狀態(tài)...... 360 17.3.4 游標的關閉與釋放...... 361 17.3.5 游標變量...... 362 17.3.6 使用系統(tǒng)過程管理游標...... 363 17.4 Oracle中游標的使用...... 365 17.4.1 顯式游標與隱式游標...... 365 17.4.2 游標的屬性...... 366 17.4.3 %TYPE、%ROWTYPE定義記錄變量...... 367 17.4.4 參數(shù)化游標...... 368 17.4.5 游標中的循環(huán)...... 369 17.4.6 游標變量...... 371 17.5 小結...... 372 第18章 事務控制與并發(fā)處理...... 373 18.1 SQL事務控制...... 373 18.1.1 事務控制的引入...... 373 18.1.2 事務的特性...... 373 18.1.3 SQL中與事務有關的語句...... 374 18.2 事務控制的具體實現(xiàn)...... 376 18.2.1 開始事務...... 376 18.2.2 SET CONSTRAINTS語句設置約束的延期執(zhí)行...... 377 18.2.3 終止事務...... 378 18.3 并發(fā)控制...... 380 18.3.1 并發(fā)操作的問題...... 381 18.3.2 事務隔離級別...... 382 18.3.3 SET TRANSACTION設置事務屬性...... 383 18.4 SQL Server中的并發(fā)事務控制...... 384 18.4.1 鎖的分類...... 384 18.4.2 SQL Server中表級鎖的使用...... 385 18.4.3 設置隔離級別實現(xiàn)并發(fā)控制...... 387 18.4.4 死鎖及其預防...... 391 18.5 Oracle中的并發(fā)事務控制...... 393 18.5.1 通過加鎖避免寫數(shù)據(jù)丟失...... 393 18.5.2 設置只讀事務(READ ONLY)...... 394 18.5.3 Oracle中的隔離級別...... 395 第19章 嵌入式SQL... 397 19.1 SQL的調(diào)用...... 397 19.1.1 直接調(diào)用SQL... 397 19.1.2 嵌入式SQL... 398 19.1.3 SQL調(diào)用層接口(CLI)...... 399 19.2 嵌入式SQL的使用...... 401 19.2.1 創(chuàng)建嵌入式SQL語句...... 401 19.2.2 SQL通信區(qū)...... 402 19.2.3 主變量...... 404 19.2.4 嵌入式SQL中使用游標...... 406 19.3 檢索、操作SQL數(shù)據(jù)...... 407 19.3.1 不需要游標的SQL DML操作...... 407 19.3.2 使用游標的SQL DML操作...... 410 19.3.3 動態(tài)SQL技術...... 412 19.4 SQL Server中嵌入式SQL的編譯運行...... 413 19.4.1 嵌入式SQL代碼...... 413 19.4.2 預編譯文件...... 415 19.4.3 設置Visual C++ 6.0連接...... 417 19.4.4 編譯運行程序...... 419 19.5 Oracle中嵌入式SQL的編譯運行...... 420 19.5.1 嵌入式SQL代碼...... 420 19.5.2 預編譯文件...... 421 19.5.3 設置Visual C++ 6.0編譯環(huán)境...... 423 19.5.4 編譯運行程序...... 424 附錄A SQL保留字...... 427 附錄B 常用的SQL命令...... 431 附錄C 關于運行環(huán)境的說明...... 435 C.1 SQL Server 2000... 435 C.1.1 直接訪問...... 435 C.1.2 從企業(yè)管理器訪問...... 436 C.2 Oracle系統(tǒng)...... 436 |
|
來自: 昵稱310935 > 《oracle相關文檔》