Oracle數(shù)據(jù)庫是美國甲骨文公司開發(fā)的以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品,是流行的客戶/服務(wù)器體系結(jié)構(gòu)的數(shù)據(jù)庫。它是世界上應(yīng)用較為廣泛的數(shù)據(jù)庫管理系統(tǒng)。作為一個(gè)通用的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功能。
本書基于新版Oracle 21c數(shù)據(jù)庫軟件,詳細(xì)介紹Oracle數(shù)據(jù)庫的基礎(chǔ)知識,重點(diǎn)介紹Oracle SQL的使用和Oracle數(shù)據(jù)庫的管理知識。
主要內(nèi)容
本書第1~7章介紹Oracle基礎(chǔ)知識,第8~14章介紹Oracle數(shù)據(jù)庫管理基礎(chǔ),第15章介紹一個(gè)基于Oracle數(shù)據(jù)庫的應(yīng)用項(xiàng)目。
第1章介紹Oracle 21c數(shù)據(jù)庫軟件安裝及常用工具的使用,包括SQL Plus、SQL Developer以及Database Express的使用,最后介紹使用DBCA管理數(shù)據(jù)庫。
第2章介紹用戶與模式的概念,數(shù)據(jù)類型,表的創(chuàng)建、修改、刪除,約束定義以及表的更新操作等。
第3章介紹使用SQL的SELECT實(shí)現(xiàn)數(shù)據(jù)查詢,包括簡單查詢、帶分組函數(shù)的查詢、連接查詢、子查詢及復(fù)合查詢等。
第4章介紹Oracle數(shù)據(jù)庫的常用內(nèi)置函數(shù),包括數(shù)值函數(shù)、字符函數(shù)、日期時(shí)間函數(shù)、轉(zhuǎn)換函數(shù)及條件函數(shù)等。
第5章分別介紹視圖、索引、序列和同義詞等模式對象的創(chuàng)建和使用,還介紹了數(shù)據(jù)字典和動(dòng)態(tài)性能視圖。
第6章介紹PL/SQL的塊結(jié)構(gòu)、常量和變量、各種數(shù)據(jù)類型、控制結(jié)構(gòu)、游標(biāo)和游標(biāo)變量、PL/SQL異常處理等。
第7章主要介紹用PL/SQL編寫各種程序,包括函數(shù)和存儲(chǔ)過程、程序包和觸發(fā)器的開發(fā)和使用。
第8章介紹Oracle的體系結(jié)構(gòu),包括實(shí)例的內(nèi)存結(jié)構(gòu)、進(jìn)程結(jié)構(gòu),Oracle數(shù)據(jù)庫的物理存儲(chǔ)結(jié)構(gòu)和邏輯結(jié)構(gòu),數(shù)據(jù)庫實(shí)例管理及網(wǎng)絡(luò)管理等。
第9章介紹Oracle 用戶賬戶的創(chuàng)建與管理、權(quán)限管理、角色管理、配置文件管理等。
第10章介紹事務(wù)與并發(fā)控制,包括事務(wù)的概念及ACID特性、事務(wù)與還原管理、鎖與并發(fā)控制的概念。
第11章主要介紹Oracle的存儲(chǔ)管理,包括表空間與數(shù)據(jù)文件、重做日志文件以及控制文件的管理。
第12章介紹備份與恢復(fù)的基本概念,重點(diǎn)介紹使用RMAN工具備份數(shù)據(jù)庫、數(shù)據(jù)文件、表空間等以及如何恢復(fù)數(shù)據(jù)庫。本章還介紹了數(shù)據(jù)傳輸與加載。
第13章介紹Oracle的常用閃回技術(shù),包括閃回查詢、閃回表、閃回刪除、閃回?cái)?shù)據(jù)歸檔和閃回?cái)?shù)據(jù)庫等。
第14章介紹Oracle的多租戶體系結(jié)構(gòu),包括容器數(shù)據(jù)庫和可插入數(shù)據(jù)庫的連接、管理等。
第15章通過一個(gè)電力系統(tǒng)營銷人員技能競賽項(xiàng)目的案例,講解如何使用Oracle作為后端數(shù)據(jù)存儲(chǔ)開發(fā)的一個(gè)Web應(yīng)用。
附錄中給出了SQL Plus的常用命令及使用說明。
Oracle 21c數(shù)據(jù)庫基礎(chǔ)入門(微課視頻版)
前言
本書特點(diǎn)
本書以新版的Oracle 21c為基礎(chǔ),介紹Oracle數(shù)據(jù)庫的基本知識。書中通過大量精心設(shè)計(jì)的例題和實(shí)踐練習(xí),深入淺出地介紹了Oracle應(yīng)用開發(fā)方法和相關(guān)技術(shù)。
本書結(jié)構(gòu)安排合理,用通俗易懂的語言、簡短精練的示例代碼,力求讓讀者快速入門。書中除第15章外每章均提供若干實(shí)踐練習(xí)和習(xí)題供讀者學(xué)習(xí)、提高綜合應(yīng)用能力。
讀者對象
本書可作為高等院校學(xué)生學(xué)習(xí) Oracle 數(shù)據(jù)庫應(yīng)用開發(fā)及數(shù)據(jù)庫課程的輔助教材和教學(xué)參考書,也可作為DBA的入門參考資料。
教學(xué)資源
為便于教學(xué),本書提供豐富的配套資源,包括教學(xué)大綱、教學(xué)課件、程序源碼、習(xí)題答案和微課視頻。
資源下載提示
課件等資源: 用手機(jī)掃描封底的課件下載二維碼,在公眾號書圈下載。
視頻等資源: 用手機(jī)掃描封底的文泉云盤防盜碼,再掃描書中相應(yīng)章節(jié)中的二維碼,可以在線學(xué)習(xí)。
致謝
本書由沈澤剛、趙緒輝任主編,劉允峰、趙震任副主編,劉中杰、孫蕾、趙立雙、胡斌等參加了本書的編寫工作。本書寫作參考了大量文獻(xiàn),向這些文獻(xiàn)作者表示感謝。由于作者水平有限,書中難免有不足之處,懇請同行和讀者批評指正。
編者2023年5月
第1章Oracle起步入門
1.1關(guān)系數(shù)據(jù)庫
1.1.1關(guān)系術(shù)語
1.1.2數(shù)據(jù)庫軟件
1.1.3SQL數(shù)據(jù)庫語言
1.2Oracle 21c數(shù)據(jù)庫安裝
1.2.1Oracle 21c環(huán)境要求
1.2.2安裝Oracle 21c數(shù)據(jù)庫軟件
1.2.3服務(wù)器的啟動(dòng)和關(guān)閉
1.2.4卸載Oracle數(shù)據(jù)庫軟件
1.3SQL Plus客戶工具
1.3.1用SQL Plus連接數(shù)據(jù)庫
1.3.2SQL Plus連接錯(cuò)誤
1.3.3SQL語句編輯命令
1.3.4腳本文件操作命令
1.3.5格式化列
1.3.6常用SET設(shè)置命令
1.3.7使用變量
1.4SQL Developer
1.4.1SQL Developer界面
1.4.2創(chuàng)建數(shù)據(jù)庫連接
1.4.3SQL Developer管理模式對象
1.5Database Express
1.6使用DBCA管理數(shù)據(jù)庫
本章小結(jié)
習(xí)題與實(shí)踐
第2章表及其管理
2.1用戶與模式
2.1.1創(chuàng)建C##WEBSTORE模式
2.1.2模式對象
2.2數(shù)據(jù)類型
2.2.1字符類型
2.2.2數(shù)值類型
2.2.3日期和時(shí)間類型
2.2.4LOB數(shù)據(jù)類型
目錄
2.3約束條件
2.3.1非空約束
2.3.2主鍵約束
2.3.3檢查約束
2.3.4唯一約束
2.3.5外鍵約束
2.4創(chuàng)建、修改和刪除表
2.4.1創(chuàng)建簡單的表
2.4.2使用子查詢創(chuàng)建表
2.4.3修改表的定義
2.4.4刪除表
2.5更新操作
2.5.1INSERT語句插入行
2.5.2UPDATE語句更新行
2.5.3DELETE語句刪除行
2.5.4事務(wù)簡介
2.6使用SQL Developer操作表
2.6.1創(chuàng)建表
2.6.2修改和刪除表
2.6.3更新表數(shù)據(jù)
2.7創(chuàng)建和使用臨時(shí)表
本章小結(jié)
習(xí)題與實(shí)踐
第3章使用SELECT查詢
3.1SELECT語句基礎(chǔ)
3.1.1查看表結(jié)構(gòu)
3.1.2簡單查詢
3.1.3用WHERE子句限定行
3.1.4行標(biāo)識符和行號
3.1.5查詢結(jié)果排序
3.1.6TOP N查詢
3.1.7使用CASE表達(dá)式
3.2帶分組函數(shù)的查詢
3.2.1常用分組函數(shù)
3.2.2使用GROUP BY子句分組
3.2.3使用HAVING子句限制分組結(jié)果
3.2.4組合使用WHERE、GROUP BY和HAVING子句
3.3連接查詢
3.3.1內(nèi)連接
3.3.2自然連接
3.3.3外連接
3.3.4交叉連接
3.3.5自連接
3.3.6Oracle傳統(tǒng)連接
3.4子查詢
3.4.1帶比較運(yùn)算符的子查詢
3.4.2帶IN運(yùn)算符的子查詢
3.4.3帶SOME或ALL謂詞的子查詢
3.4.4帶EXISTS謂詞的子查詢
3.4.5DML語句中的子查詢
3.5復(fù)合查詢
3.5.1UNION ALL運(yùn)算符
3.5.2UNION運(yùn)算符
3.5.3INTERSECT運(yùn)算符
3.5.4MINUS運(yùn)算符
3.5.5控制返回行的順序
本章小結(jié)
習(xí)題與實(shí)踐
第4章常用內(nèi)置函數(shù)
4.1函數(shù)概述
4.2數(shù)值函數(shù)
4.3字符函數(shù)
4.4日期時(shí)間函數(shù)
4.5轉(zhuǎn)換函數(shù)
4.5.1數(shù)據(jù)類型轉(zhuǎn)換
4.5.2常用的轉(zhuǎn)換函數(shù)
4.6條件函數(shù)
本章小結(jié)
習(xí)題與實(shí)踐
第5章模式對象管理
5.1視圖
5.1.1創(chuàng)建并使用視圖
5.1.2修改視圖
5.1.3刪除視圖
5.2索引
5.2.1索引及其作用
5.2.2索引的類型
5.2.3創(chuàng)建索引
5.2.4獲取有關(guān)索引的信息
5.2.5重建和刪除索引
5.2.6監(jiān)視索引的使用
5.2.7位圖索引
5.3序列
5.3.1創(chuàng)建序列
5.3.2使用序列
5.3.3修改和刪除序列
5.3.4查看序列信息
5.4同義詞
5.4.1創(chuàng)建同義詞
5.4.2查看同義詞信息
5.4.3刪除同義詞
5.5數(shù)據(jù)字典和動(dòng)態(tài)性能視圖
5.5.1數(shù)據(jù)字典
5.5.2動(dòng)態(tài)性能視圖
本章小結(jié)
習(xí)題與實(shí)踐
第6章PL/SQL編程基礎(chǔ)
6.1PL/SQL基礎(chǔ)
6.1.1程序類型和結(jié)構(gòu)
6.1.2變量和數(shù)據(jù)類型
6.1.3變量的賦值
6.1.4用查詢?yōu)樽兞抠x值
6.1.5使用%TYPE和%ROWTYPE屬性
6.2PL/SQL控制結(jié)構(gòu)
6.2.1條件控制語句
6.2.2循環(huán)控制語句
6.2.3GOTO語句的使用
6.2.4空語句
6.3游標(biāo)和游標(biāo)變量
6.3.1顯式游標(biāo)
6.3.2隱式游標(biāo)
6.3.3游標(biāo)屬性
6.3.4帶參數(shù)游標(biāo)
6.3.5游標(biāo)FOR循環(huán)
6.3.6使用游標(biāo)更新或刪除數(shù)據(jù)
6.3.7記錄類型和表類型
6.3.8游標(biāo)變量
6.4PL/SQL異常處理
6.4.1錯(cuò)誤及錯(cuò)誤類型
6.4.2預(yù)定義的異常錯(cuò)誤
6.4.3用戶定義的異常
本章小結(jié)
習(xí)題與實(shí)踐
第7章函數(shù)、過程、程序包和觸發(fā)器
7.1函數(shù)
7.1.1創(chuàng)建和使用函數(shù)
7.1.2參數(shù)傳遞
7.1.3參數(shù)默認(rèn)值
7.1.4刪除函數(shù)
7.1.5在匿名塊中定義函數(shù)
7.2過程
7.2.1創(chuàng)建和執(zhí)行過程
7.2.2刪除過程
7.2.3在匿名塊中定義過程
7.3程序包
7.3.1創(chuàng)建包規(guī)范
7.3.2創(chuàng)建包體
7.3.3調(diào)用包的函數(shù)和過程
7.3.4刪除包
7.3.5Oracle預(yù)定義程序包
7.4觸發(fā)器
7.4.1觸發(fā)器概述
7.4.2創(chuàng)建觸發(fā)器
7.4.3DML觸發(fā)器
7.4.4INSTEAD OF替代觸發(fā)器
7.4.5系統(tǒng)事件觸發(fā)器
7.4.6禁用與啟用觸發(fā)器
7.4.7修改和刪除觸發(fā)器
本章小結(jié)
習(xí)題與實(shí)踐
第8章Oracle體系結(jié)構(gòu)
8.1體系結(jié)構(gòu)概述
8.2實(shí)例內(nèi)存結(jié)構(gòu)
8.2.1實(shí)例緩沖區(qū)緩存
8.2.2重做日志緩沖區(qū)
8.2.3共享池
8.2.4大型池和Java池
8.3實(shí)例進(jìn)程結(jié)構(gòu)
8.3.1DBWn
8.3.2LGWR
8.3.3ARCn
8.3.4CKPT
8.3.5SMON
8.3.6PMON
8.4物理存儲(chǔ)結(jié)構(gòu)
8.4.1數(shù)據(jù)文件
8.4.2重做日志文件
8.4.3控制文件
8.4.4歸檔日志文件
8.4.5其他數(shù)據(jù)庫文件
8.5邏輯結(jié)構(gòu)
8.5.1表空間
8.5.2段
8.5.3區(qū)間
8.5.4數(shù)據(jù)塊
8.6管理數(shù)據(jù)庫實(shí)例
8.6.1啟動(dòng)數(shù)據(jù)庫實(shí)例
8.6.2關(guān)閉數(shù)據(jù)庫實(shí)例
8.6.3數(shù)據(jù)庫初始化參數(shù)
8.7Oracle網(wǎng)絡(luò)管理
8.7.1Oracle Net及主要功能
8.7.2Oracle Net網(wǎng)絡(luò)配置
8.7.3配置監(jiān)聽器
8.7.4啟動(dòng)監(jiān)聽器
8.7.5服務(wù)名解析方法和配置
本章小結(jié)
習(xí)題與實(shí)踐
第9章用戶與權(quán)限管理
9.1創(chuàng)建和管理用戶賬戶
9.1.1用戶賬戶屬性
9.1.2創(chuàng)建、修改和刪除用戶
9.2授予與回收權(quán)限
9.2.1系統(tǒng)權(quán)限
9.2.2對象權(quán)限
9.3創(chuàng)建和管理角色
9.3.1創(chuàng)建并授予角色權(quán)限
9.3.2預(yù)定義的角色
9.3.3用戶默認(rèn)角色及角色啟用
9.4配置文件管理
9.4.1資源限制
9.4.2口令管理
9.4.3配置文件的創(chuàng)建和分配
本章小結(jié)
習(xí)題與實(shí)踐
第10章事務(wù)與并發(fā)控制
10.1事務(wù)
10.1.1事務(wù)的概念
10.1.2事務(wù)處理
10.1.3保存點(diǎn)
10.1.4事務(wù)的ACID特性
10.2事務(wù)與還原
10.2.1還原段
10.2.2SQL語句執(zhí)行與還原段
10.2.3還原保留與閃回查詢
10.2.4事務(wù)隔離級別
10.3鎖與并發(fā)控制
10.3.1鎖及其類型
10.3.2表級鎖
10.3.3LOCK TABLE命令
10.3.4鎖爭用與死鎖
本章小結(jié)
習(xí)題與實(shí)踐
第11章Oracle存儲(chǔ)管理
11.1表空間與數(shù)據(jù)文件
11.1.1數(shù)據(jù)庫常用表空間
11.1.2表空間的類型和屬性
11.1.3數(shù)據(jù)文件
11.1.4創(chuàng)建和管理表空間
11.1.5修改表空間
11.1.6刪除表空間
11.1.7還原表空間管理
11.2重做日志文件
11.2.1重做日志組和重做日志文件
11.2.2日志切換操作
11.2.3增加日志組及其成員
11.2.4刪除重做日志組和日志文件
11.3控制文件
11.3.1查看控制文件
11.3.2控制文件復(fù)用
11.3.3備份和恢復(fù)控制文件
11.3.4刪除控制文件
本章小結(jié)
習(xí)題與實(shí)踐
第12章備份與恢復(fù)
12.1備份與恢復(fù)概述
12.1.1備份與恢復(fù)的概念
12.1.2備份的類型
12.2備份與恢復(fù)的配置
12.2.1歸檔日志模式和歸檔進(jìn)程
12.2.2配置快速恢復(fù)區(qū)
12.2.3配置歸檔日志模式
12.3使用RMAN實(shí)現(xiàn)備份
12.3.1恢復(fù)管理器RMAN
12.3.2啟動(dòng)RMAN連接到目標(biāo)數(shù)據(jù)庫
12.3.3使用BACKUP命令備份數(shù)據(jù)庫
12.3.4歸檔日志模式下備份
12.3.5備份表空間和數(shù)據(jù)文件
12.3.6備份歸檔日志文件
12.3.7創(chuàng)建映像副本
12.3.8創(chuàng)建增量備份
12.3.9LIST、REPORT和DELETE命令
12.3.10配置RMAN參數(shù)值
12.4使用RMAN實(shí)現(xiàn)恢復(fù)
12.4.1還原與恢復(fù)
12.4.2完整恢復(fù)不重要的數(shù)據(jù)文件
12.4.3完整恢復(fù)重要的數(shù)據(jù)文件
12.5數(shù)據(jù)傳輸與加載
12.5.1創(chuàng)建和使用Oracle目錄
12.5.2使用數(shù)據(jù)泵EXPDP導(dǎo)出數(shù)據(jù)
12.5.3使用數(shù)據(jù)泵IMPDP導(dǎo)入數(shù)據(jù)
12.5.4用SQL*Loader工具加載外部數(shù)據(jù)
本章小結(jié)
習(xí)題與實(shí)踐
第13章閃回技術(shù)
13.1閃回技術(shù)概述
13.2閃回查詢
13.2.1基本閃回查詢
13.2.2閃回版本查詢
13.2.3閃回事務(wù)查詢
13.3閃回表
13.4閃回刪除
13.4.1執(zhí)行閃回刪除
13.4.2管理回收站
13.5閃回?cái)?shù)據(jù)歸檔
13.5.1創(chuàng)建與管理閃回?cái)?shù)據(jù)歸檔區(qū)
13.5.2為表指定閃回?cái)?shù)據(jù)歸檔區(qū)
13.5.3使用閃回?cái)?shù)據(jù)歸檔
13.6閃回?cái)?shù)據(jù)庫
13.6.1配置閃回?cái)?shù)據(jù)庫
13.6.2使用閃回?cái)?shù)據(jù)庫
本章小結(jié)
習(xí)題與實(shí)踐
第14章多租戶體系結(jié)構(gòu)
14.1多租戶數(shù)據(jù)庫體系結(jié)構(gòu)
14.1.1多租戶概念
14.1.2CDB和根容器
14.1.3PDB: 可插入數(shù)據(jù)庫
14.2建立到CDB和PDB的連接
14.2.1理解CDB和PDB服務(wù)名
14.2.2連接到CDB和PDB
14.3CDB的啟動(dòng)和關(guān)閉、PDB的打開和關(guān)閉
14.3.1關(guān)閉CDB實(shí)例
14.3.2啟動(dòng)CDB實(shí)例
14.3.3打開和關(guān)閉PDB
14.4管理可插入數(shù)據(jù)庫
14.4.1使用PDB$SEED創(chuàng)建新PDB
14.4.2克隆PDB創(chuàng)建新PDB
14.4.3拔出、插入和刪除PDB
14.5用戶、角色和權(quán)限管理
14.5.1公共用戶和本地用戶
14.5.2在CDB中創(chuàng)建公共用戶
14.5.3在PDB中創(chuàng)建本地用戶
14.5.4公共授權(quán)和本地授權(quán)
14.5.5管理公共角色和本地角色
本章小結(jié)
習(xí)題與實(shí)踐
第15章技能競賽平臺實(shí)例
15.1系統(tǒng)設(shè)計(jì)
15.1.1系統(tǒng)功能需求說明
15.1.2系統(tǒng)模塊劃分
15.2數(shù)據(jù)庫設(shè)計(jì)
15.2.1數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)
15.2.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
15.2.3數(shù)據(jù)庫實(shí)現(xiàn)
15.3系統(tǒng)管理
15.3.1導(dǎo)入相關(guān)的jar包
15.3.2頁面組織
15.3.3組件與Servlet管理
15.4組件設(shè)計(jì)
15.4.1數(shù)據(jù)庫連接
15.4.2過濾器
15.4.3實(shí)體模型
15.5前臺參賽者系統(tǒng)實(shí)現(xiàn)
15.5.1參賽者登錄
15.5.2不定項(xiàng)選擇答題
15.6后臺管理系統(tǒng)實(shí)現(xiàn)
15.6.1不定項(xiàng)選擇試題管理
15.6.2不定項(xiàng)選擇試題添加
15.6.3不定項(xiàng)選擇試題刪除
本章小結(jié)
附錄SQL Plus常用命令
參考文獻(xiàn)