本書作為Oracle程序設計的教程,系統、全面地介紹了有關Oracle程序開發所涉及的各方面知識。全書共分13章,內容包括數據庫的基本概念與Oracle環境、數據庫創建、表與表數據操作、數據庫的查詢和視圖、索引和數據的完整性、PL/SQL語言介紹、存儲過程和觸發器、高級數據類型、系統安全管理、備份和恢復、閃回操作和Undo表空間、其他概念、課程設計——企業人事管理系統。全書每章內容都與實例緊密結合,有助于學生理解知識、應用知識,達到學以致用的目的。
本書是慕課版教材,各章節主要內容配備了以二維碼為載體的微課,并在人郵學院(www.rymooc.com)平臺上提供了慕課。此外本書還提供了配套資源包,其中提供了本書所有實例、上機指導、綜合案例和課程設計的源代碼,制作精良的電子課件PPT,自測試卷等內容。其中,源代碼全部經過精心測試,能夠在Windows 7、Windows 8、Windows 10系統下編譯和運行。資源包也可在人郵學院下載。
30小時慕課教學視頻同步講解,讓學習更高效快捷
80個精彩課堂案例,12個課堂實驗,1個綜合案例,Oracle學習從入門到精通
66道習題,300道自測題,5套自測試卷,鞏固所學知識
提供免費教學資源,包括精品教學PPT、案例源代碼、自測題庫、拓展綜合案例
明日科技,程序設計類暢銷書作者,其主要作品“視頻大講堂”系列,每個品種都在其同品種的圖書中銷售名列前茅。累計銷售數十萬冊。其中《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章 高級數據類型 183
8.1 Oracle數據庫與大對象數據 184
8.1.1 大對象數據類型 184
8.1.2 Oracle數據庫中導入大對象數據 184
實例:向表中的BLOB列插入一個圖片文件,可以通過創建一個存儲過程來完成
8.2 Oracle數據庫與XML 187
8.2.1 XML概述 187
8.2.2 Oracle XML DB概述 189
8.2.3 Oracle數據庫中導入XML數據 190
實例:向表Xmltable中插入22201號學生的聯系方式
實例:將以下的XML數據保存為D盤DIR(MYDIR邏輯)下的22202.xml文件,并作為22202號學生的聯系方式插入Xmltable表中
8.2.4 XQuery的基本用法 192
實例:查詢Xmltable表中<郵政編碼>節點是否存在
實例:查詢是否存在“姓名”為張月的屬性
實例:讀取學號為22201的學生的電話
實例:返回學號為22201的學生的<地址>節點下的所有信息
實例:將學號為22202的學生的<生活直轄市>節點的值改為“浙江”
實例:使用FLWOR表達式在Oracle中執行查詢
小結 196
上機指導 196
習題 197
第9章 系統安全管理 198
9.1 用戶 199
9.1.1 創建用戶 199
實例:創建一個mr用戶,口令為mrsoft,并設置默認的表空間為users,臨時表空間為temp的用戶
實例:創建一個east用戶,口令為mrsoft
實例:創建一個用戶名為df,口令為mrsoft,臨時表空間為temp,默認表空間為tbsp_1,并且該用戶使用tbsp_1表空間不受限制
9.1.2 管理用戶 201
實例:修改用戶east在表空間上的磁盤限額為20M
實例:修改用戶east的新口令為12345
實例:使用ALTER USER命令解除被鎖定的賬戶SH
實例:使用DROP USER語句刪除用戶df,并連同該用戶所擁有的對象一起刪除
9.2 權限管理 202
9.2.1 權限概述 202
9.2.2 系統權限管理 203
實例:為用戶east授予連接和開發系統權限
實例:在創建用戶dongfang和xifang后,首先system將創建session和創建table的權限授權給dongfang,然后dongfang再將這兩個權限傳遞給xifang,最后通過xifang這個用戶創建一個數
據表
實例:撤銷east用戶的resource系統權限
9.2.3 對象權限管理 205
實例:給用戶xifang授予select、insert、delete和update表scott.emp的權限
實例:從xifang用戶撤銷scott.emp表的update和delete權限
9.2.4 安全特性 205
9.3 角色管理 207
9.3.1 角色概述 207
9.3.2 創建用戶角色 208
實例:創建一個名為designer的角色,角色口令為123456
9.3.3 管理用戶角色 208
實例:首先取消designer角色的密碼,然后再重新給該角色設置一個密碼
實例:創建一個無需密碼驗證的角色queryer,然后設置該角色生效,接下來再設置帶有密碼的角色designer也生效
9.4 概要文件和數據字典視圖 209
9.4.1 使用概要文件管理密碼 209
實例:創建profile文件,要求設置連續失敗次數為5,超過該次數后,賬戶將被鎖定7天,然后使用alter user語句將profile文件分配給用戶dongfang
實例:創建一個profile文件,并設置用戶的密碼有效期為30天,密碼寬限期為3天,然后使用alter user語句將profile文件分配給用戶dongfang
9.4.2 使用概要文件管理資源 211
實例:首先使用show命令查看RESO-URCE_LIMIT參數的值,然后使用alter system命令修改該參數的值為true,從而激活資源限制
9.4.3 數據字典視圖 212
9.5 審計 214
9.5.1 審計啟用 214
9.5.2 登錄審計 216
9.5.3 操作審計 217
實例:使用戶AUTHOR的所有更新操作都要被審計
9.5.4 權限審計 218
實例:分別對mr和east用戶進行系統權限級別審計
小結 219
上機指導 219
習題 220
第10章 備份和恢復 221
10.1 備份和恢復概述 222
10.2 RMAN備份恢復工具 223
10.2.1 RMAN的好處 223
10.2.2 RMAN組件基礎 224
10.2.3 分配RMAN通道 225
10.2.4 RMAN的常用命令 227
實例:首先創建恢復,然后使用RMAN工具連接到數據庫,最后注冊數據庫
10.3 使用RMAN工具實現數據備份 228
10.3.1 RMAN備份策略 228
10.3.2 使用RMAN備份數據庫文件和歸檔日志 229
實例:實現非一致性備份整個數據庫
實例:實現備份tbsp_1和ts_1表空間
實例:實現備份指定的數據文件
實例:實現備份指定的控制文件
實例:實現備份歸檔重做日志文件
10.3.3 增量備份 231
實例:對system、sysaux和users表空間進行了一次0級差異增量備份
實例:將對system表空間進行1級增量備份
實例:對表空間example進行2級累積增量備份
10.4 使用RMAN工具實現數據恢復 232
10.4.1 數據的完全恢復 232
實例:在NOARCHIVELOG模式下備份和恢復數據庫
實例:恢復ARCHIVELOG模式下的數據庫
10.4.2 數據的不完全恢復 234
實例:實現基于時間的不完全恢復
實例:假設某個用戶不小心刪除了scott.emp表中的所有記錄,DBA需要查看刪除數據的事務的SCN號,以執行基于更改的不完全恢復恢復被用戶誤刪除的數據
10.5 數據泵 237
10.5.1 數據泵概述 237
10.5.2 數據泵的使用 238
實例:創建一個DIRECTORY對象,并為SCOTT用戶授予使用該的權限
實例:導出scott方案中的dept和emp表
實例:導出scott和hr方案中的所有對象
實例:導出表空間tbsp_1
實例:導出整個數據庫
實例:將表dept、emp導入SYSTEM方案
實例:將scott方案中的所有對象導入system方案
實例:將tbsp_1表空間中的所有對象都導入當前數據庫
實例:從personnel_manage.dmp文件中導入所有數據庫
實例:使用自由格式加載TXT文件
實例:通過SQL*Loader加載Excel文件中的數據
小結 244
上機指導 244
習題 246
第11章 閃回操作和Undo表空間 247
11.1 閃回操作 248
11.1.1 基本概念 248
11.1.2 閃回數據庫 248
實例:設置閃回數據庫環境
實例:數據庫閃回
11.1.3 閃回數據表 252
實例:創建一個表,然后刪除某些數據,最后利用表閃回命令恢復
11.1.4 閃回丟棄 254
實例:數據準備、刪除表、查看回收站信息、恢復及查詢恢復
11.1.5 其他閃回技術 255
11.2 Undo表空間 257
11.2.1 自動Undo管理 257
11.2.2 Undo表空間的優點 257
11.2.3 Undo表空間管理參數 257
11.2.4 創建和管理Undo表空間 258
實例:創建一個Undo表空間,并指定數據文件大小為3G
實例:向表空間undo_tbs_1中添加一個新的數據文件,指定該文件大小為2G
實例:把當前系統的默認Undo表空間切換到自定義撤銷表空間undo_tbs_1
實例:把當前歷程的Undo表空間從“undo_tbs_1”切換到“undotbs1”,然后再刪除“undo_tbs_1”表空間
小結 259
上機指導 259
習題 260
第12章 其他概念 261
12.1 數據庫鏈接 262
12.1.1 創建數據庫鏈接 262
實例:為數據庫創建一個名為MY_PLINK的公用鏈接
12.1.2 使用數據庫鏈接 263
實例:查詢遠程數據庫personnel_manage表tb_record中的所有員工檔案信息
實例:為personnel_manage遠程數據庫表tb_record創建一個同義詞
12.1.3 刪除數據庫鏈接 263
實例:刪除公用數據庫鏈接MY_PLINK
12.2 快照 264
實例:創建一個名為EM_LINK的私有數據庫鏈接
12.2.1 創建快照 264
實例:在本地服務器上創建快照
12.2.2 修改快照 268
實例:修改快照
12.2.3 刪除快照 269
12.3 序列 269
12.3.1 創建序列 269
實例:在SCOTT模式下,創建一個序列empno_seq
實例:在SCOTT模式下,使用序列empno_seq為emp表的新紀錄提供員工編號
12.3.2 管理序列 271
實例:在SCOTT模式下,修改序列empno_seq的最大值為100000,序列增量為200,緩存值為100
實例:使用drop sequence 語句刪除empno_seq序列
小結 271
上機指導 271
習題 272
第13章 綜合案例——企業人事
管理系統 273
13.1 需求分析 274
13.2 系統設計 274
13.2.1 系統目標 274
13.2.2 系統功能結構 274
13.2.3 系統業務流程 274
13.2.4 系統預覽 275
13.2.5 系統編碼規范 278
13.3 系統開發及運行環境 278
13.4 數據庫設計 278
13.4.1 實體E-R圖設計 278
13.4.2 數據庫邏輯結構設計 280
13.5 系統文件夾組織結構 281
13.6 公共模塊設計 281
13.6.1 編寫Hibernate配置文件 281
13.6.2 編寫Hibernate持久化類和映射文件 282
13.6.3 編寫通過Hibernate操作持久化對象的常用方法 283
13.6.4 創建用于特殊效果的部門樹對話框 284
13.6.5 創建通過部門樹選取員工的面板和對話框 286
13.7 Hibernate關聯關系的建立方法 287
13.7.1 建立一對一關聯 288
13.7.2 建立一對多關聯 289
13.8 主窗體設計 290
13.8.1 實現導航欄 290
13.8.2 實現工具欄 292
13.9 人事管理模塊設計 294
13.9.1 實現上傳員工照片功能 296
13.9.2 實現組件聯動功能 298
13.9.3 通過Java反射驗證數據是否為空 300
13.10 待遇管理模塊設計 301
13.10.1 實現建立一個新的賬套 301
13.10.2 實現為新建的賬套添加項目 302
13.10.3 實現修改項目的金額 303
13.10.4 實現統計報表 305
13.11 系統維護模塊設計 306
13.11.1 實現修改名稱功能 308
13.11.2 實現添加部門的功能 309
13.11.3 實現刪除現有部門的功能 311
小結 312