産品特色
編輯推薦
30小時慕課教學視頻同步講解,讓學習更高效快捷
80個精彩課堂案例,12個課堂實驗,1個綜閤案例,Oracle學習從入門到精通
66道習題,300道自測題,5套自測試捲,鞏固所學知識
提供免費教學資源,包括精品教學PPT、案例源代碼、自測題庫、拓展綜閤案例
內容簡介
本書作為Oracle程序設計的教程,係統、全麵地介紹瞭有關Oracle程序開發所涉及的各方麵知識。全書共分13章,內容包括數據庫的基本概念與Oracle環境、數據庫創建、錶與錶數據操作、數據庫的查詢和視圖、索引和數據的完整性、PL/SQL語言介紹、存儲過程和觸發器、高級數據類型、係統安全管理、備份和恢復、閃迴操作和Undo錶空間、其他概念、課程設計——企業人事管理係統。全書每章內容都與實例緊密結閤,有助於學生理解知識、應用知識,達到學以緻用的目的。
本書是慕課版教材,各章節主要內容配備瞭以二維碼為載體的微課,並在人郵學院(www.rymooc.com)平颱上提供瞭慕課。此外本書還提供瞭配套資源包,其中提供瞭本書所有實例、上機指導、綜閤案例和課程設計的源代碼,製作精良的電子課件PPT,自測試捲等內容。其中,源代碼全部經過精心測試,能夠在Windows 7、Windows 8、Windows 10係統下編譯和運行。資源包也可在人郵學院下載。
作者簡介
明日科技,程序設計類暢銷書作者,其主要作品“視頻大講堂”係列,每個品種都在其同品種的圖書中銷售名列前茅。纍計銷售數十萬冊。其中《Oracle從入門到精通》長期占據Oracle零售圖書排行榜首位,年銷量數萬冊。
目錄
第1章 數據庫的基本概念與Oracle環境 1
1.1 數據庫基本概念 2
1.1.1 數據庫與數據庫管理係統 2
1.1.2 數據模型 2
1.1.3 關係型數據庫語言 2
1.2 Oracle數據庫環境 3
1.2.1 Oracle數據庫簡介 3
1.2.2 Oracle 11g的安裝 3
1.2.3 Oracle 11g的卸載 9
1.3 Oracle的管理工具 11
1.3.1 企業管理器 11
1.3.2 SQL*Plus工具 12
實例:在SQL *Plus中查詢誌願錶的所有信息
1.3.3 SQL Developer工具 14
實例:通過SQL Developer工具查詢員工信息錶
小結 18
上機指導 18
習題 20
第2章 數據庫創建 21
2.1 Oracle數據庫基本概念 22
2.1.1 邏輯存儲結構 22
2.1.2 物理存儲結構 25
2.1.3 實例 26
2.2 界麵方式創建數據庫 31
2.2.1 數據庫的創建與刪除 32
實例:使用DBCA創建員工信息管理數據庫MR
實例:使用DBCA刪除員工信息管理數據庫MR
2.2.2 數據庫的修改 35
實例:將MR數據庫的users01.dbf的最大文件大小改為無限製
實例:在MR數據庫增加數據文件users02.dbf,其屬性均取係統默認值
2.3 命令方式創建數據庫 39
2.3.1 創建數據庫 40
實例:創建數據庫mydb的初始化參數文件
實例:使用命令創建數據庫mydb
2.3.2 修改數據庫 46
2.3.3 刪除數據庫 47
實例:刪除數據庫mydb
小結 48
上機指導 48
習題 49
第3章 錶與錶數據操作 50
3.1 錶結構和數據類型 51
3.1.1 錶和錶結構 51
3.1.2 數據類型 51
3.1.3 錶結構設計 53
3.2 創建和管理錶空間 54
3.2.1 界麵方式創建錶空間 54
實例:使用OEM創建永久性錶空間MYMR
3.2.2 命令方式創建錶空間 56
實例:創建錶空間
實例:創建錶空間,擴展大小為自動管理,段空間管理方式為手工
實例:創建錶空間,擴展大小為自動管理,段空間管理方式為自動
3.3 界麵方式操作錶 60
3.3.1 OEM方式操作錶 60
實例:使用OEM創建錶
實例:錶XSB中添加一個“奬學金等級”列
實例:刪除錶
3.3.2 使用SQL Developer操作錶 64
實例:使用SQL Developer創建錶
實例:刪除KCB錶
3.4 命令方式操作錶 66
3.4.1 創建錶 66
實例:使用CREATE TABLE命令創建錶XSB
實例:嚮錶XSB中增加若乾條測試數據
3.4.2 修改錶 68
實例:嚮XSB錶中增加3個字段
實例:將XSB錶BZ字段的長度改為20
實例:刪除XSB錶中的PHOTO和ADDR字段
3.4.3 刪除錶 71
實例:刪除STUD錶
3.5 操作錶數據 71
3.5.1 插入數據 71
實例:在dept錶中,使用INSERT語句添加一條記錄
實例:在HR模式下,使用desc命令查看jobs錶的結構和列的定義順序,然後使用insert語句插入一條記錄
實例:在HR模式下,創建一個與job錶結構類似錶jobs_temp,然後將jobs錶中最高工資額(max_salary)大於10000的記錄插入到新錶jobs_temp中
3.5.2 修改記錄 73
實例:在SCOTT模式下,把emp錶中雇員名為SCOTT的工資調整為2460
實例:把emp錶中職務是銷售員(SALESMAN)的工資上調20%
3.5.3 刪除記錄 74
實例:在HR模式下,刪除jobs錶中職務編號(job_id)是“PRO”的記錄
實例:刪除emp錶中所有數據
實例:使用truncate語句清除自定義錶jobs_temp中的所有記錄
小結 76
上機指導 76
習題 77
第4章 數據庫的查詢和視圖 78
4.1 選擇、投影和連接 79
4.1.1 選擇 79
實例:在學生情況錶中找到學生錶中性彆為女且平均成績在80分以上的行形成一個新錶
4.1.2 投影 79
實例:對“學號”和“平均成績”投影
4.1.3 連接 79
實例:連接A錶和B錶
4.2 數據庫的查詢 80
4.2.1 選擇列 81
實例:在SCOTT模式下,在SELECT語句中使用星號(*)來檢索dept錶中所有的數據
實例:在SCOTT模式下,在from子句中指定兩個數據錶
實例:在SCOTT模式下,檢索emp錶中指定的列
實例:在SCOTT模式下,檢索emp錶的指定列,並使用as關鍵字為這些列指定中文的彆名
實例:檢索emp錶的sal列,把其值調整為原來的1.1倍
實例:在SCOTT模式下消除結果集中重復行
4.2.2 選擇行 84
實例:查詢emp錶中工資(sal)大於1500的數據記錄
實例:查詢emp錶中員工姓名中以S為開頭的員工信息
實例:在emp錶中,使用IN關鍵字查詢員工信息
實例:在emp錶中,使用NOT IN關鍵字查詢員工信息
實例:在emp錶中,使用“BETWEEN... AND”關鍵字查詢員工信息
實例:查詢emp錶中沒有奬金的員工信息
實例:在emp錶中,查詢齣既不是最高工資,也不是最低工資的員工信息
實例:在emp錶中,查詢不是銷售部門(SALES)的員工信息
實例:在emp錶中,查詢工資大於部門編號為10的任意一個員工工資即可的其他部門的員工信息
實例:在emp錶中,查詢工資大於部門編號為30的所有員工工資的員工信息
實例:在emp錶中,使用“關聯子查詢”檢索工資大於同職位的平均工資的員工信息
4.2.3 連接 89
實例:通過deptno列來關聯emp錶和dept錶
實例:通過deptno字段來內連接emp錶和dept錶
實例:使用insert語句插入新記錄,然後實現emp錶和dept錶之間通過deptno列進行左外連接
實例:實現emp錶和dept錶之間通過deptno列進行右外連接
實例:實現emp錶和dept錶之間通過deptno列進行完全外連接
實例:實現emp錶與dept錶的自然連接
實例:查詢所有領導者所管理的下屬員工信息
實例:通過交叉連接dept錶和emp錶
4.2.4 統計 94
實例:使用COUNT函數計算員工總數,使用AVG函數計算平均工資
實例:使用GROUP BY子句對工資記錄進行分組,並計算平均工資(AVG)、所有工資的總和(SUM)、以及最高工資(MAX)和各組的行數
實例:計算每個部門的平均工資,再過濾齣平均工資大於2000元的信息
4.2.5 排序 96
實例:檢索emp錶中所有的數據,並按照部門編號(deptno)、員工編號(empno)排序
4.3 數據庫視圖 97
4.3.1 視圖的概念 97
4.3.2 創建視圖 98
實例:創建一個查詢部門編號為20的視圖
實例:創建一視圖,要求能夠查詢每個部門的工資情況
4.3.3 查詢視圖 99
實例:通過select語句查詢視圖emp_view
4.3.4 更新視圖 100
實例:嚮視圖emp_myview中增加一條新紀錄
實例:將emp_view_complex視圖中員工編號是7566的員工的工資改為3000元
4.3.5 修改視圖的定義 101
實例:修改視圖emp_view_union,使該視圖實現查詢部門編號為30的功能
4.3.6 刪除視圖 102
實例:刪除視圖emp_view
小結 102
上機指導 102
習題 103
第5章 索引與數據完整性 105
5.1 索引 106
5.1.1 索引的分類 106
5.1.2 建立索引的注意事項 106
5.1.3 創建索引 107
實例:為emp錶的DEPTNO列創建索引
實例:在employees的salary列創建位圖索引
5.1.4 維護索引 109
實例:重命名索引XSB_NAME_INDEX
5.1.5 刪除索引 109
實例:刪除XSB錶中的索引XSB_INDEX
5.2 數據的完整性和約束性 110
5.2.1 非空約束 110
實例:創建Books錶,要求BookNo(圖書編號),ISBN和PublisherNo(齣版社編號)不能為空值
5.2.2 主鍵約束 111
實例:創建錶Books_1,並為該錶定義行級主鍵約束BOOK_PK
實例:使用ALTER TABLE...ADD語句為Books錶添加主鍵約束
實例:創建Books_2錶時,在BookNo列上定義瞭一個由係統自動分配名稱的主鍵約束
5.2.3 唯一性約束 113
實例:創建一個會員錶Members,並要求為該錶的QQ列定義唯一性約束
5.2.4 外鍵約束 114
實例:創建錶EMPLOYEES_TEMP,並添加外鍵約束
5.2.5 禁用約束 116
實例:創建一個學生信息錶,並為年齡列定義一個disable狀態的Check約束
5.2.6 激活約束 117
實例:激活一個被禁用的約束
5.2.7 刪除約束 117
實例:刪除Student錶中所創建的CHECK約束Age_CK
小結 118
上機指導 118
習題 119
第6章 PL/SQL語言介紹 120
6.1 PL/SQL概述 121
6.1.1 PL/SQL的特點 121
6.1.2 PL/SQL的開發和運行環境 121
6.2 PL/SQL字符集 121
6.2.1 閤法字符 121
6.2.2 運算符 122
實例:求員工的在職時間
實例:查詢員工工資在2000到2500的員工信息
實例:查詢員工工資不在2000到2500的員工信息
6.2.3 其他符號 122
6.3 PL/SQL變量、常量和數據類型 123
6.3.1 定義變量和常量 123
實例:定義一個用於存儲國傢名稱的可變字符串變量
實例:定義一個常量con_day,用來存儲一年的天數
6.3.2 基本數據類型 124
6.3.3 特殊數據類型 125
實例:使用%type類型的變量輸齣emp錶中編號為7369的員工名稱和職務信息
實例:聲明一個記錄類型emp_type,然後使用該類型的變量存儲emp錶中的一條記錄信息,並輸齣這條記錄信息
實例:聲明一個%ROWTYPE類型的變量rowVar_emp,然後使用該變量存儲emp錶中的一行數據
6.4 PL/SQL基本程序結構和語句 128
6.4.1 PL/SQL程序塊 128
實例:定義一個PL/SQL代碼塊,計算兩個整數的和與這個兩個整數的差的商
6.4.2 選擇語句 129
實例:比較兩個字符串的長度
實例:通過if...else語句實現隻有年齡大於等於56歲,纔可以申請退休,否則程序會提示不可以申請退休
實例:指定一個月份數值,然後使用if... then...elsif語句判斷它所屬的季節
6.4.3 循環結構 133
實例:使用loop語句求得前100個自然數的和
實例:使用while語句求前100個自然數的和
實例:使用for語句求得前100個自然數中偶數之和
6.4.4 選擇和跳轉語句 135
實例:判斷季度所包含的月份
6.4.5 異常 137
實例:使用SELECT INTO語句檢索emp錶中部門編號為10的雇員記錄信息,然後使用“too_many_rows”預定義異常捕獲錯誤信息並輸齣
實例:定義錯誤編號為“-00001”的異常變量,然後嚮dept錶中插入一條能夠“違反唯一約束條件”的記錄,最後在exception代碼體中輸齣異常提示信息
實例:自定義一個異常變量,在嚮dept錶中插入數據時,若判斷loc字段的值為null,則使用raise語句引發異常,並將程序的執行流程轉入到EXCEPTION部分進行處理
6.4.6 空操作和空值 142
6.5 係統內置函數 142
6.5.1 字符類函數 142
實例:分彆求得字符“Z、H、D和空格”的ASCII值
實例:使用concat函數連接“Hello”和“World”兩個字符串
實例:使用initcap函數轉換字符串“oh my god!”的輸齣
實例:在字符串“oracle 11g”中,從第3個字符開始查詢字符串“1”第2次齣現的位置
實例:在SCOTT模式下,通過使用length函數返迴雇員名稱長度大於5的雇員信息及所在部門信息
實例:在SCOTT模式下,在emp錶中檢索雇員名稱以字母“j”開頭的員工信息,並將ename字段的值轉換為小寫
實例:使用LTRIM、RTRIM和TRIM函數分彆去掉字符串“####East####”、“East”和“####East###”中左側“#”、右側空格和左右兩側的“#”
實例:使用REPLACE函數把字符串“Bad Luck Bad Gril”中的“Bad”字符串用“Good”替換掉
實例:使用SUBSTR函數在字符串“'MessageBox'”中從第8個位置截取長度為3的子字符串
6.5.2 數字類函數 145
實例:使用CEIL函數返迴3個指定小數的整數值
實例:使用ROUND函數返迴PI為兩位小數的值
實例:使用POWER函數計算2的3次方的值
6.5.3 日期和時間類函數 146
實例:使用SYSDATE函數返迴當期係統的日期
實例:使用ADD_MONTHS函數在當前日期下加上6個月
6.5.4 轉換類函數 147
實例:使用TO_CHAR函數轉換係統日期為“YYYY-MM-DD”格式
實例:使用TO_NUMBER函數把16進製數“18f”轉轉為10進製數
6.5.5 聚閤類函數 147
6.6 函數 148
6.6.1 函數的創建與調用 148
實例:定義一個函數,用於計算emp錶中指定某個部門的平均工資
實例:調用函數get_avg_pay,計算部門編號為10的雇員平均工資並輸齣
6.6.2 函數的刪除 149
實例:使用drop function命令刪除get_avg_pay函數
6.7 遊標 149
6.7.1 顯式遊標 150
實例:聲明一個檢索emp錶中雇員信息的遊標,然後打開遊標,並指定檢索職務是“MANAGER”的雇員信息,接著使用fetch... into語句和while循環讀取遊標中的所有雇員信息,最後輸齣讀取的雇員信息
6.7.2 隱式遊標 153
實例:把emp錶中銷售員的工作上調20%,再使用隱式遊標sql的%rowcount屬性輸齣上調工資的人數
6.7.3 使用遊標變量 153
6.7.4 使用遊標錶達式 155
6.8 程序包的使用 155
6.8.1 程序包的規範 156
實例:創建一個程序包的“規範”,首先在該程序包中聲明一個可以獲取指定部門的平均工資的函數,然後再聲明一個可以實現按照指定比例上調指定職務的工資的存儲過程
6.8.2 程序包的主體 157
實例:創建程序包pack_emp的主體,在該主體中實現對應“規範”中聲明的函數和存儲過程
小結 158
上機指導 158
習題 159
第7章 存儲過程和觸發器 160
7.1 存儲過程 161
7.1.1 存儲過程的創建和執行 161
實例:創建一個存儲過程,該存儲過程實現嚮dept錶中插入一條記錄
實例:使用execute命令執行pro_insertDept存儲過程
7.1.2 存儲過程的修改 162
7.1.3 存儲過程的刪除 163
實例:刪除存儲過程pro_insertDept
7.2 觸發器 163
7.2.1 利用SQL語句創建觸發器 163
實例:在SCOT模式下創建dept_log數據錶,並在其中定義兩個字段,分彆用來存儲操作種類信息和操作日期
實例:創建一個觸發器tri_dept,該觸發器在insert、update和delete事件下都可以被觸發,並且操作的數據對象是dept錶。然後要求在觸發器執行時輸齣對dept錶所做的具體操作
實例:在system模式下,給scott用戶授予“create view”(創建視圖)權限,然後在soctt模式下創建一個檢索雇員信息的視圖
實例:創建一個關於view_emp_dept視圖的替換觸發器,在該觸發器的主體中實現嚮emp錶和dept錶中插入兩行相互關聯的數據
實例:創建一個用戶事件觸發器,記錄用戶SYSTEM所刪除的所有對象
7.2.2 利用界麵方式創建觸發器 169
7.2.3 啓用和禁用觸發器 170
7.2.4 觸發器的刪除 171
7.3 事務 171
7.3.1 事務的概念 171
7.3.2 事務處理 172
實例:提交事務
實例:在emp數據錶中,刪除員工編號是7902的記錄,然後事務迴滾,恢復數據
實例:使用保存點(savepoint)來迴滾
記錄
7.3.3 自治事務 178
7.4 鎖 178
7.4.1 鎖機製和死鎖 179
7.4.2 鎖的類型 179
7.4.3 錶鎖和事務鎖 180
小結 181
上機指導 181
習題 182
第8章 高級數據
Oracle數據庫管理與開發 慕課版 下載 mobi epub pdf txt 電子書 格式