Oracle數(shù)據(jù)庫是目前最為流行的關(guān)系型數(shù)據(jù)庫之一。本書循序漸進地介紹了Oracle數(shù)據(jù)庫開發(fā)的基礎(chǔ)知識。本書共15章,介紹了Oracle 11g關(guān)系數(shù)據(jù)庫的體系結(jié)構(gòu)、SQL*Plus命令、表空間和表的創(chuàng)建及使用、控制文件和日志文件的管理、SQL語言的使用、PL/SQL的高級應(yīng)用、SQL語句優(yōu)化技巧、數(shù)據(jù)的加載和傳輸以及使用RMAN工具實現(xiàn)數(shù)據(jù)庫備份和恢復(fù)的步驟等,最后以一個權(quán)限管理系統(tǒng)來介紹Oracle在實際開發(fā)中的應(yīng)用。
本書適合Oracle初學者快速入門,也適合已有Oracle數(shù)據(jù)庫基礎(chǔ)的人員完善自己的Oracle知識體系。另外,對于大中專院校和培訓班的學生,本書更是一本不可多得的教材。
第1章 Oracle關(guān)系數(shù)據(jù)庫
1.1 數(shù)據(jù)庫簡介
1.1.1 數(shù)據(jù)庫系統(tǒng)基本概念
1.1.2 主流數(shù)據(jù)庫
1.1.3 Oracle數(shù)據(jù)庫的特點
1.1.4 關(guān)系數(shù)據(jù)庫
1.2 關(guān)系數(shù)據(jù)庫的范式理論
1.2.1 第一范式(1NF)
1.2.2 第二范式(2NF)
1.2.3 第三范式(3NF)
1.3 實體-關(guān)系模型
1.3.1 實體-關(guān)系模型概念
1.3.2 E-R圖的繪制
1.3.3 E-R模型到關(guān)系模型
1.4 安裝Oracle Database 11g
第1章 Oracle關(guān)系數(shù)據(jù)庫
1.1 數(shù)據(jù)庫簡介
1.1.1 數(shù)據(jù)庫系統(tǒng)基本概念
1.1.2 主流數(shù)據(jù)庫
1.1.3 Oracle數(shù)據(jù)庫的特點
1.1.4 關(guān)系數(shù)據(jù)庫
1.2 關(guān)系數(shù)據(jù)庫的范式理論
1.2.1 第一范式(1NF)
1.2.2 第二范式(2NF)
1.2.3 第三范式(3NF)
1.3 實體-關(guān)系模型
1.3.1 實體-關(guān)系模型概念
1.3.2 E-R圖的繪制
1.3.3 E-R模型到關(guān)系模型
1.4 安裝Oracle Database 11g
1.4.1 在Windows環(huán)境下的安裝過程
1.4.2 Oracle服務(wù)管理
1.5 Oracle默認用戶
1.6 使用OEM
1.7 項目案例:創(chuàng)建數(shù)據(jù)庫
1.8 習題
1.9 實踐疑難解答
1.9.1 Oracle 11g安裝時先決條件檢查全部失敗
1.9.2 安裝Oracle 11g后沒有OracleDBConsoleorcl服務(wù)
1.9.3 SYSTEM用戶以SYSDBA的身份登錄到OEM問題
第2章 Oracle數(shù)據(jù)庫體系結(jié)構(gòu)
2.1 物理存儲結(jié)構(gòu)
2.1.1 數(shù)據(jù)文件
2.1.2 控制文件
2.1.3 日志文件
2.1.4 其他文件
2.2 邏輯存儲結(jié)構(gòu)
2.2.1 表空間(Tablespace)
2.2.2 段(Segment)
2.2.3 區(qū)(Extent)
2.2.4 數(shù)據(jù)塊(Block)
2.3 Oracle進程結(jié)構(gòu)
2.3.1 DBWn進程
2.3.2 LGWR進程
2.3.3 CKPT進程
2.3.4 SMON進程
2.3.5 PMON進程
2.3.6 ARCn進程
2.3.7 RECO進程
2.3.8 LCKn進程
2.3.9 SNPn進程
2.3.10 Dnnn進程
2.4 Oracle內(nèi)存結(jié)構(gòu)
2.4.1 內(nèi)存結(jié)構(gòu)概述
2.4.2 系統(tǒng)全局區(qū)(SGA)
2.4.3 程序全局區(qū)(PGA)
2.4.4 排序區(qū)
2.4.5 大池
2.4.6 Java池
2.5 數(shù)據(jù)字典
2.5.1 Oracle數(shù)據(jù)字典介紹
2.5.2 Oracle常用數(shù)據(jù)字典
2.6 項目案例:查看視圖DBA_DATA_FILE
的結(jié)構(gòu)
2.7 習題
2.8 實踐疑難解答
2.8.1 共享池(Shared Pool)的大小
2.8.2 Oracle中怎樣設(shè)置share_pool_size
參數(shù)的大小
第3章 使用SQL*Plus工具
3.1 SQL*Plus概述
3.1.1 SQL*Plus的主要功能
3.1.2 SQL*Plus連接與斷開數(shù)據(jù)庫
3.2 使用SQL*Plus命令
3.2.1 使用DESCRIBE命令查看表
結(jié)構(gòu)
3.2.2 執(zhí)行SQL腳本
3.2.3 使用SAVE命令保存緩沖區(qū)內(nèi)容
到文件
3.2.4 使用GET命令讀取腳本文件到緩
沖區(qū)
3.2.5 使用EDIT命令編輯緩沖區(qū)內(nèi)容或
文件
3.2.6 使用SPOOL命令復(fù)制輸出結(jié)果到
文件
3.3 變量
3.3.1 臨時變量
3.3.2 定義變量
3.4 格式化查詢結(jié)果
3.4.1 格式化列
3.4.2 設(shè)置每頁顯示的數(shù)據(jù)行
3.4.3 設(shè)置每行顯示的字符數(shù)
3.5 創(chuàng)建簡單報表
3.5.1 報表的標題設(shè)計
3.5.2 統(tǒng)計數(shù)據(jù)
3.6 項目案例:統(tǒng)計各部門的工資總金額
3.7 習題
3.8 實踐疑難解答
3.8.1 SQL*Plus連接數(shù)據(jù)庫密碼為什么
可以是錯誤的
3.8.2 COLUMN命令中的FORMAT選
項格式化問題
3.8.3 格式化日期類型
3.8.4 插入數(shù)據(jù)中包含&符號
第4章 表空間
4.1 基本表空間
4.1.1 表空間的管理類型
4.1.2 創(chuàng)建基本表空間
4.1.3 表空間的狀態(tài)
4.1.4 重命名表空間
4.1.5 修改數(shù)據(jù)文件的大小
4.1.6 為表空間增加新的數(shù)據(jù)文件
4.1.7 修改數(shù)據(jù)文件的自動擴展性
4.1.8 刪除表空間的數(shù)據(jù)文件
4.1.9 修改數(shù)據(jù)文件的狀態(tài)
4.1.10 移動數(shù)據(jù)文件
4.1.11 刪除表空間
4.2 臨時表空間
4.2.1 創(chuàng)建臨時表空間
4.2.2 修改臨時表空間
4.2.3 臨時表空間組
4.3 大文件表空間
4.4 非標準數(shù)據(jù)塊表空間
4.5 撤銷表空間
4.5.1 管理撤銷表空間的方式
4.5.2 創(chuàng)建和管理撤銷表空間
4.6 項目案例:創(chuàng)建基本表空間
4.7 習題
4.8 實踐疑難解答
4.8.1 Oracle如何刪除臨時表空間
4.8.2 Oracle 如何使用指定表空間
第5章 表
5.1 數(shù)據(jù)庫中的數(shù)據(jù)類型
5.2 創(chuàng)建表
5.2.1 創(chuàng)建表
5.2.2 指定表空間
5.2.3 指定存儲參數(shù)
5.3 修改表
5.3.1 增加和刪除列
5.3.2 更新列
5.3.3 重命名表
5.3.4 更改表的存儲表空間
5.3.5 更改表的存儲參數(shù)
5.3.6 刪除表定義
5.4 表的完整性約束
5.4.1 主鍵約束(PRIMARY KEY)
5.4.2 外鍵約束(FOREIGN KEY)
5.4.3 唯一性約束(UNIQUE)
5.4.4 非空約束(NOT NULL)
5.4.5 檢查約束(CHECK)
5.4.6 禁用和激活約束
5.5 項目案例:設(shè)計醫(yī)生與病人之間的
關(guān)系表
5.6 習題
5.7 實踐疑難解答
5.7.1 添加主鍵約束出現(xiàn)操作錯誤
5.7.2 如何刪除NOT NULL約束
第6章 管理控制文件和日志文件
6.1 管理控制文件
6.1.1 控制文件概述
6.1.2 創(chuàng)建控制文件
6.1.3 控制文件的備份與恢復(fù)
6.1.4 移動與刪除控制文件
6.2 管理日志文件
6.2.1 日志文件概述
6.2.2 創(chuàng)建日志文件組及其成員
6.2.3 重新定義日志文件成員
6.2.4 切換日志文件組
6.2.5 清空日志文件組
6.2.6 刪除日志文件組及其成員
6.2.7 查看日志文件信息
6.3 管理歸檔日志
6.3.1 歸檔日志概述
6.3.2 設(shè)置數(shù)據(jù)庫模式
6.3.3 設(shè)置歸檔目標
6.3.4 歸檔文件格式
6.3.5 設(shè)置歸檔進程的跟蹤級別
6.3.6 查看歸檔日志信息
6.4 項目案例:查看數(shù)據(jù)文件、控制文件和日
志文件
6.5 習題
6.6 實踐疑難解答
6.6.1 數(shù)據(jù)文件丟了怎么辦
6.6.2 Oracle數(shù)據(jù)庫控制文件移動后無
法打開數(shù)據(jù)庫
第7章 SQL語言基礎(chǔ)
7.1 基本查詢
7.1.1 查詢命令SELECT
7.1.2 使用WHERE指定過濾條件
7.1.3 使用DISTINCT關(guān)鍵字獲取唯一
記錄
7.1.4 使用GROUP BY子句分組
7.1.5 使用HAVING子句過濾分組
7.1.6 使用ORDER BY子句排序
7.1.7 使用算術(shù)運算符
7.2 SQL更新數(shù)據(jù)
7.2.1 插入數(shù)據(jù)——INSERT操作
7.2.2 更新數(shù)據(jù)——UPDATE操作
7.2.3 刪除數(shù)據(jù)——DELETE操作
7.3 基本函數(shù)
7.3.1 字符函數(shù)
7.3.2 數(shù)值函數(shù)
7.3.3 日期時間函數(shù)
7.3.4 聚合函數(shù)
7.4 數(shù)據(jù)一致性與事務(wù)管理
7.4.1 Oracle中的數(shù)據(jù)一致性
7.4.2 Oracle中的事務(wù)
7.4.3 Oracle中的事務(wù)處理
7.4.4 設(shè)置保存點
7.4.5 事務(wù)處理原則
7.5 項目案例:查看各個部門的員工工資
詳情
7.6 習題
7.7 實踐疑難解答
7.7.1 Oracle中SELECT語句如何實現(xiàn)
查詢行數(shù)限制
7.7.2 將列值為NULL的數(shù)據(jù)放在排序
結(jié)果的最前面
7.7.3 為何會報ORA-00979的錯誤信息
第8章 子查詢與高級查詢
8.1 子查詢
8.1.1 在WHERE子句中使用子查詢
8.1.2 在HAVING子句中使用子查詢
8.1.3 在FROM子句中使用子查詢
8.1.4 使用IN操作符實現(xiàn)多行子查詢
8.1.5 使用ANY操作符實現(xiàn)多行子
查詢
8.1.6 使用ALL操作符實現(xiàn)多行子
查詢
8.1.7 實現(xiàn)多列子查詢
8.1.8 實現(xiàn)嵌套子查詢
8.1.9 在UPDATE語句中使用子查詢
8.1.10 在DELETE語句中使用子查詢
8.2 聯(lián)合語句
8.2.1 使用UNION操作符
8.2.2 使用UNION ALL操作符
8.2.3 使用INTERSECT操作符
8.2.4 使用MINUS操作符
8.3 連接查詢
8.3.1 使用等號(=)實現(xiàn)多個表的簡單
連接
8.3.2 使用INNER JOIN實現(xiàn)多個表的內(nèi)連接
8.3.3 使用OUTER JOIN實現(xiàn)多個表的外連接
8.4 項目案例:獲取各個部門中工資最高的
員工信息
8.5 習題
8.6 實踐疑難解答
8.6.1 出現(xiàn)ORA-01427的錯誤問題
8.6.2 如果子查詢返回多列怎么辦
8.6.3 IN和EXISTS之間的區(qū)別及
用法
8.6.4 嵌套、連接和簡單查詢分別適用于什么情況
第9章 PL/SQL基礎(chǔ)
9.1 PL/SQL概述
9.1.1 PL/SQL語言特點
9.1.2 PL/SQL的基本語法
9.2 PL/SQL編程結(jié)構(gòu)
9.2.1 基本語言塊
9.2.2 PL/SQL數(shù)據(jù)類型
9.2.3 變量和常量
9.2.4 復(fù)合數(shù)據(jù)類型
9.3 條件分支語句
9.3.1 IF條件分支語句
9.3.2 CASE語句
9.4 循環(huán)控制語句
9.4.1 無條件循環(huán)
9.4.2 WHILE循環(huán)
9.4.3 FOR循環(huán)
9.5 游標
9.5.1 游標簡介
9.5.2 顯式游標
9.5.3 隱式游標
9.5.4 動態(tài)游標
9.6 異常處理
9.6.1 異常處理概念
9.6.2 預(yù)定義異常
9.6.3 非預(yù)定義異常
9.6.4 自定義異常
9.7 項目案例:獲取指定部門下的所有
員工信息
9.8 習題
9.9 實踐疑難解答
9.9.1 PL/SQL塊與SQL*Plus命令
的區(qū)別
9.9.2 PL/SQL中使用游標的問題
第10章 PL/SQL高級應(yīng)用
10.1 觸發(fā)器
10.1.1 語句觸發(fā)器
10.1.2 行觸發(fā)器
10.1.3 INSTEAD OF觸發(fā)器
10.1.4 系統(tǒng)事件觸發(fā)器
10.1.5 用戶事件觸發(fā)器
10.1.6 觸發(fā)器的相關(guān)操作
10.2 自定義函數(shù)
10.2.1 函數(shù)的基本操作
10.2.2 函數(shù)的參數(shù)
10.3 存儲過程
10.3.1 創(chuàng)建與調(diào)用存儲過程
10.3.2 存儲過程的參數(shù)
10.3.3 存儲過程的其他操作
10.4 程序包
10.4.1 程序包的規(guī)范
10.4.2 程序包的主體
10.4.3 調(diào)用程序包中的子程序
10.4.4 程序包的其他操作
10.5 項目案例:實現(xiàn)對員工的增加和刪除
功能
10.6 習題
10.7 實踐疑難解答
10.7.1 創(chuàng)建存儲過程時出現(xiàn)語法
錯誤
10.7.2 SQL、T-SQL與PL/SQL的
區(qū)別
第11章 用戶權(quán)限與安全
11.1 用戶
11.1.1 創(chuàng)建用戶
11.1.2 修改用戶密碼
11.1.3 刪除用戶
11.1.4 管理用戶會話
11.2 用戶配置文件
11.2.1 創(chuàng)建用戶配置文件
11.2.2 查看配置文件信息
11.2.3 修改與刪除配置文件
11.3 權(quán)限
11.3.1 系統(tǒng)權(quán)限
11.3.2 對象權(quán)限
11.4 角色
11.4.1 系統(tǒng)預(yù)定義角色
11.4.2 創(chuàng)建角色
11.4.3 修改用戶的默認角色
11.4.4 管理角色
11.4.5 與角色相關(guān)的數(shù)據(jù)字典
11.5 項目案例:用戶權(quán)限
11.6 習題
11.7 實踐疑難解答
11.7.1 Oracle 角色權(quán)限
11.7.2 Oracle里角色的密碼怎么
用呢
11.7.3 WITH ADMIN OPTION和WITH
GRANT OPTION
第12章 SQL語句優(yōu)化
12.1 一般的SQL語句優(yōu)化技巧
12.1.1 SELECT語句中避免使用“*”
12.1.2 WHERE條件的合理使用
12.1.3 使用TRUNCATE替代
DELETE
12.1.4 在確保完整性的情況下多用
COMMIT語句
12.1.5 減少表的查詢次數(shù)
12.1.6 使用EXISTS替代IN
12.1.7 用表連接替代EXISTS
12.2 合理連接表
12.2.1 FROM子句中表的順序
12.2.2 WHERE子句的條件順序
12.3 有效使用索引
12.3.1 使用索引的基本原則
12.3.2 避免對索引列使用NOT關(guān)
鍵字
12.3.3 總是使用索引的第一個列
12.3.4 避免在索引列上使用IS NULL
和IS NOT NULL
12.3.5 監(jiān)視索引是否被使用
12.4 習題
12.5 實踐疑難解答
12.5.1 多次查詢數(shù)據(jù)庫的效率問題
12.5.2 如何使用NOT EXISTS替代
NOT IN
12.5.3 為什么Oracle語句不走索引
第13章 其他模式對象
13.1 索引
13.1.1 索引類型
13.1.2 創(chuàng)建索引
13.1.3 創(chuàng)建B樹索引
13.1.4 創(chuàng)建位圖索引
13.1.5 創(chuàng)建函數(shù)索引
13.1.6 管理索引
13.2 臨時表
13.2.1 臨時表概述
13.2.2 臨時表的創(chuàng)建與使用
13.3 視圖
13.3.1 創(chuàng)建視圖
13.3.2 更新視圖中的數(shù)據(jù)
13.4 序列
13.4.1 序列的創(chuàng)建與使用
13.4.2 修改序列
13.4.3 刪除序列
13.5 同義詞
13.5.1 管理公有同義詞
13.5.2 管理私有同義詞
13.6 項目案例:使用序列實現(xiàn)批量插入
數(shù)據(jù)的功能
13.7 習題
13.8 實踐疑難解答
13.8.1 查詢視圖數(shù)據(jù)引起臨時表空
間暴漲
13.8.2 創(chuàng)建索引出現(xiàn)ORA-0
的錯誤
第14章 數(shù)據(jù)加載與傳輸
14.1 Data Pump工具的概述
14.2 使用Data Pump工具前的準備
14.3 使用Data Pump Export導(dǎo)出數(shù)據(jù)
14.3.1 Data Pump Export導(dǎo)出選項
14.3.2 實現(xiàn)數(shù)據(jù)導(dǎo)出
14.4 使用Data Pump Import導(dǎo)入數(shù)據(jù)
14.4.1 Data Pump Import選項
14.4.2 實現(xiàn)數(shù)據(jù)導(dǎo)入
14.5 使用EXPDP和IMPDP工具傳輸表
空間
14.6 SQL*Loader
14.6.1 SQL*Loader概述
14.6.2 數(shù)據(jù)加載實例
14.7 項目案例:導(dǎo)出和導(dǎo)入books表
14.8 習題
14.9 實踐疑難解答
14.9.1 IMPDP導(dǎo)入數(shù)據(jù)問題
14.9.2 Oracle導(dǎo)入DMP出錯
第15章 使用RMAN工具
15.1 RMAN簡介
15.1.1 RMAN的特點
15.1.2 RMAN體系結(jié)構(gòu)
15.2 RMAN操作
15.2.1 RMAN命令
15.2.2 創(chuàng)建恢復(fù)目錄
15.2.3 連接目標數(shù)據(jù)庫
15.2.4 取消目標數(shù)據(jù)庫的注冊
15.3 RMAN備份
15.3.1 RMAN備份策略
15.3.2 BACKUP命令
15.3.3 備份數(shù)據(jù)庫
15.3.4 增量備份
15.3.5 鏡像復(fù)制
15.4 RMAN恢復(fù)
15.4.1 RMAN恢復(fù)機制
15.4.2 對數(shù)據(jù)庫進行完全介質(zhì)恢復(fù)
15.4.3 恢復(fù)表空間和數(shù)據(jù)文件
15.4.4 恢復(fù)歸檔日志文件
15.5 項目案例:實現(xiàn)數(shù)據(jù)庫的完全備份
和恢復(fù)
15.6 習題
15.7 實踐疑難解答
15.7.1 無法按NOARCHIVELOG模式備份數(shù)據(jù)庫
15.7.2 如何避免數(shù)據(jù)庫的備份文件損壞而導(dǎo)致數(shù)據(jù)庫崩潰
第16章 權(quán)限管理系統(tǒng)
16.1 系統(tǒng)分析與設(shè)計
16.1.1 需求分析
16.1.2 系統(tǒng)設(shè)計
16.2 數(shù)據(jù)庫設(shè)計
16.3 公共模塊設(shè)計
16.3.1 數(shù)據(jù)模型公共類
16.3.2 通用數(shù)據(jù)庫連接類
16.4 DAO實現(xiàn)
16.4.1 UserDao
16.4.2 RoleDaoIm
16.5 系統(tǒng)模塊的實現(xiàn)
16.5.1 登錄
16.5.2 角色管理模塊
Oracle從基礎(chǔ)到應(yīng)用
目錄
X
XI
Java開源項目 Spring+Hibernate+Struts項目開發(fā)詳解
錯誤!文檔中沒有指定樣式的文字。
XII
XIII