《Oracle Database 10g》是2005年清華大學出版社出版的圖書,作者是普里斯。
基本介紹
- 書名:Oracle Database 10g
- 類型:計算機與網際網路
- 出版日期:2005年5月1日
- 開本:16開
- 品牌:清華大學出版社
- 作者:普里斯
- 頁數:480頁
- ISBN:9787302104872, 7302104875
內容簡介
作者簡介
媒體推薦
本書主要內容:
對資料庫執行查詢、插入、更新和刪除操作,
編寫PL/SQL存儲程式、包和觸發器。
創建資料庫表、序列、索引、視圖和用戶,
使用SQL*Plus來執行SQL語句、腳本和報表。
使用分析函式進行複雜的運算,
了解通過JDBC,使用Java運行SQL的基本知識。
使用大對象來存儲128 TB以內的字元和二進制數據,
定義資料庫類型,並創建對象來處理高級數據。
使用Oracle Database 10g中的所有新特性,如BINARY_FLOAT和BINARY_DOUBLE類型、MODEL子句,等等。
使用最佳化技術實現真正高效率的SQL語句。
圖書目錄
1.1 關係資料庫簡介
1.2 結構化查詢語言(SQL)簡介
1.3 使用SQL*Plus
1.3.1 啟動Windows版本的SQL*Plus
1.3.2 啟動命令行版本的SQL*Plus
1.4 使用SQL*Plus執行SELECT語句
1.5 SQL*Plus Worksheet
1.6 創建store模式
1.6.1 運行SQL*Plus腳本創建store模式
1.6.2 用來創建store模式的DDL語句
1.7 添加、修改、刪除行
1.7.1 向表中添加行
1.7.2 修改表中的現有行
1.7.3 從表中刪除行
1.8 Oracle 10g的新數據類型BINARY_FLOAT和 BINARY_ DOUBLE
1.8.1 BINARY_FLOAT和BINARY_DOUBLE的優點
1.8.2 在表中使用BINARY_FLOAT和BINARY_DOUBLE
1.8.3 特殊值
1.9 退出SQL*Plus
1.10 Oracle PL/SQL簡介
1.11 小結
第2章 從資料庫表中檢索信息
2.1 對單表執行SELECT語句
2.2 選擇一個表中的所有列
2.3 理解行標識符
2.4 執行算術運算
2.4.1 日期運算
2.4.2 列運算
2.5 使用列別名
2.6 使用串連操作合併列的輸出結果
2.7 理解空值
2.8 禁止顯式重複行
2.9 使用WHERE子句過濾行
2.9.1 使用比較操作符
2.9.2 使用SQL操作符
2.9.3 使用邏輯操作符
2.9.4 理解操作符的優先權
2.10 使用ORDER BY子句對行進行排序
2.11 執行使用兩個表的SELECT語句
2.12 使用表別名
2.13 笛卡爾積
2.14 執行使用多於兩個表的SELECT語句
2.15 理解連線條件和連線類型
2.15.1 理解不等連線
2.15.2 理解外連線
2.15.3 理解自連線
2.16 使用SQL/92語法執行連線
2.16.1 使用SQL/92標準語法執行兩個表的內連線
2.16.2 使用USING關鍵字簡化連線
2.16.3 使用SQL/92執行多於兩個以上表的內連線
2.16.4 使用SQL/92執行多列的內連線
2.16.5 使用SQL/92執行外連線
2.16.6 使用SQL/92執行自連線
2.16.7 使用SQL/92執行交叉連線
2.17 小結
第3章 使用簡單函式
3.1 使用單行函式
3.1.1 字元函式
3.1.2 數字函式
3.1.3 轉換函式
3.1.4 正則表達式函式
3.2 使用聚合函式
3.2.1 AVG()函式
3.2.2 COUNT()函式
3.2.3 MAX()和MIN()函式
3.2.4 STDDEV()函式
3.2.5 SUM()函式
3.2.6 VARIANCE()函式
3.3 對行進行分組
3.3.1 使用GROUP BY子句對行進行分組
3.3.2 調用聚合函式的錯誤用法
3.3.3 使用HAVING子句過濾行分組
3.3.4 組合使用WHERE和GROUP BY子句
3.3.5 組合使用WHERE、GROUP BY和HAVING子句
3.4 小結
第4章 日期和時間的存儲與處理
4.1 幾個簡單的存儲和檢索日期的例子
4.2 使用TO_CHAR()和TO_DATE()轉換時間值
4.2.1 使用TO_CHAR()將時間值轉換為字元串
4.2.2 使用TO_DATE()將字元串轉換為時間值
4.3 設定默認的日期格式
4.4 Oracle對2位年份的處理
4.4.1 使用YY格式
4.4.2 使用RR格式
4.5 使用時間值函式
4.5.1 ADD_MONTHS()函式
4.5.2 LAST_DAY()函式
4.5.3 MONTHS_BETWEEN()
4.5.4 NEXT_DAY()函式
4.5.5 ROUND()函式
4.5.6 SYSDATE()函式
4.5.7 TRUNC()函式
4.6 理解時區
4.6.1 與時區有關的函式
4.6.2 資料庫時區和會話時區
4.6.3 獲取時區的時差
4.6.4 獲取時區名
4.6.5 將時間值從一個時區轉換為另一個時區
4.7 使用時間戳
4.7.1 使用TIMESTAMP類型
4.7.2 與時間戳有關的函式
4.8 使用時間間隔
4.8.1 使用INTERVAL YEAR TO MONTH類型
4.8.2 使用INTERVAL DAY TO SECOND類型
4.8.3 與時間間隔有關的函式
4.9 小結
第5章 使用SQL*Plus
5.1 查看錶結構
5.2 編輯SQL語句
5.3 保存、檢索並運行檔案
5.4 格式化列
5.5 設定頁面大小
5.6 設定行大小
5.7 清除列格式
5.8 使用變數
5.8.1 臨時變數
5.8.2 已定義變數
5.9 創建簡單報表
5.9.1 在腳本中使用臨時變數
5.9.2 在腳本中使用已定義變數
5.9.3 向腳本中的變數傳遞值
5.9.4 添加頁眉和頁腳
5.9.5 計算小計
5.10 自動生成SQL語句
5.11 小結
第6章 子查詢
6.1 子查詢的類型
6.2 編寫單行子查詢
6.2.1 在WHERE子句中使用子查詢
6.2.2 在HAVING子句中使用子查詢
6.2.3 在FROM子句中使用子查詢(內聯視圖)
6.2.4 可能碰到的兩個錯誤
6.3 編寫多行子查詢
6.3.1 在多行子查詢中使用IN操作符
6.3.2 在多行子查詢中使用ANY操作符
6.3.3 在多行子查詢中使用ALL操作符
6.4 編寫多列子查詢
6.5 編寫關聯子查詢
6.5.1 關聯子查詢的例子
6.5.2 在關聯子查詢中使用EXISTS和NOT EXISTS
6.6 編寫嵌套子查詢
6.7 編寫包含子查詢的UPDATE和DELETE語句
6.7.1 編寫包含子查詢的UPDATE語句
6.7.2 編寫包含子查詢的DELETE語句
6.8 小結
第7章 高級查詢
7.1 使用集合操作符
7.1.1 示例表
7.1.2 使用UNION ALL操作符
7.1.3 使用UNION操作符
7.1.4 使用INTERSECT操作符
7.1.5 使用MINUS操作符
7.1.6 組合使用集合操作符
7.2 使用TRANSLATE()函式
7.3 使用DECODE()函式
7.4 使用CASE表達式
7.4.1 使用簡單CASE表達式
7.4.2 使用搜尋CASE表達式
7.5 層次化查詢
7.5.1 示例數據
7.5.2 使用CONNECT BY和START WITH子句
7.5.3 使用偽列LEVEL
7.5.4 格式化層次化查詢的結果
7.5.5 從非根節點開始遍歷
7.5.6 在START WITH子句中使用子查詢
7.5.7 從下向上遍歷樹
7.5.8 從層次查詢中刪除節點和分支
7.5.9 在層次化查詢中加入其他條件
7.6 使用擴展的GROUP BY子句
7.7 使用ROLLUP子句
7.7.1 使用CUBE子句
7.7.2 使用GROUPING()函式
7.7.3 使用GROUPING SETS子句
7.7.4 使用GROUPING_ID()函式
7.7.5 在GROUP BY子句中多次使用一個列
7.7.6 使用GROUP_ID()函式
7.8 使用分析函式
7.8.1 示例表
7.8.2 使用評級函式
7.8.3 使用反百分點函式
7.8.4 使用視窗函式
7.8.5 使用報表函式
7.8.6 使用LAG()和LEAD()函式
7.8.7 使用FIRST和LAST函式
7.8.8 使用線性回歸函式
7.8.9 使用假想評級與分布函式
7.9 使用MODEL子句
7.9.1 示例MODEL子句
7.9.2 用位置標記和符號標記訪問數據單元
7.9.3 用BETWEEN和AND返回特定範圍內的數據單元
7.9.4 用ANY和IS ANY訪問所有的數據單元
7.9.5 用CURRENTV()獲取某個維度的當前值
7.9.6 用FOR循環訪問數據單元
7.9.7 處理空值和缺失值
7.9.8 更新已有的單元
7.10 小結
第8章 修改表的內容
8.1 使用INSERT語句添加行
8.1.1 忽略列的列表
8.1.2 為列指定空值
8.1.3 在列值中使用單引號和雙引號
8.1.4 從一個表向另外一個表複製行
8.2 使用UPDATE語句修改行
8.3 使用DELETE語句刪除行
8.4 資料庫的完整性
8.4.1 主鍵約束
8.4.2 外鍵約束
8.5 使用默認值
8.6 使用MERGE合併行
8.7 資料庫事務
8.7.1 事務的提交和回滾
8.7.2 事務的開始與結束
8.7.3 保存點
8.7.4 事務的ACID特性
8.7.5 並發事務
8.7.6 事務鎖
8.7.7 事務隔離級別
8.7.8 SERIALIZABLE事務隔離性級別的一個例子
8.8 查詢閃回
8.8.1 使用閃回的授權
8.8.2 時間查詢閃回
8.8.3 系統變更號查詢閃回
8.9 小結
第9章 資料庫安全性
9.1 用戶
9.1.1 創建用戶
9.1.2 修改用戶密碼
9.1.3 刪除用戶
9.2 系統特權
9.2.1 向用戶授予系統特權
9.2.2 檢查授予用戶的系統特權
9.2.3 使用系統特權
9.2.4 撤銷用戶的系統特權
9.3 對象特權
9.3.1 向用戶授予對象特權
9.3.2 檢查已授予的對象特權
9.3.3 檢查已接受的對象特權
9.3.4 使用對象特權
9.3.5 同名對象
9.3.6 公共同名對象
9.3.7 撤銷用戶的對象特權
9.4 角色
9.4.1 創建角色
9.4.2 為角色授權
9.4.3 將角色授予用戶
9.4.4 檢查授予用戶的角色
9.4.5 檢查授予角色的系統特權
9.4.6 檢查授予角色的對象特權
9.4.7 使用授予角色的特權
9.4.8 默認角色
9.4.9 撤銷角色
9.4.10 從角色中撤銷特權
9.4.11 刪除角色
9.5 小結
第10章 創建表、序列、索引和視圖
10.1 表
10.1.1 創建表
10.1.2 獲得有關表的信息
10.1.3 獲得表中列的信息
10.1.4 修改表
10.1.5 重命名表
10.1.6 向表添加注釋
10.1.7 截斷表
10.1.8 刪除表
10.2 序列
10.2.1 創建序列
10.2.2 獲取有關序列的信息
10.2.3 使用序列
10.2.4 使用序列填充主鍵
10.2.5 修改序列
10.2.6 刪除序列
10.3 索引
10.3.1 創建索引
10.3.2 創建基於函式的索引
10.3.3 獲取有關索引的信息
10.3.4 獲取列索引的信息
10.3.5 修改索引
10.3.6 刪除索引
10.4 視圖
10.4.1 創建並使用視圖
10.4.2 修改視圖
10.4.3 刪除視圖
10.5 小結
第11章 PL/SQL編程簡介
11.1 塊結構
11.2 變數和類型
11.3 條件邏輯
11.4 循環
11.4.1 簡單循環
11.4.2 WHILE循環
11.4.3 FOR循環
11.5 游標
11.5.1 步驟1:聲明用於保存列值的變數
11.5.2 步驟2:聲明游標
11.5.3 步驟3:打開游標
11.5.4 步驟4:從游標中取得記錄
11.5.5 步驟5:關閉游標
11.5.6 完整的實例:product_cursor.sql
11.5.7 游標與FOR循環
11.6 異常
11.6.1 ZERO_DIVIDE異常
11.6.2 DUP_VAL_ON_INDEX異常
11.6.3 INVALID_NUMBER異常
11.6.4 OTHERS異常
11.7 過程
11.7.1 創建過程
11.7.2 調用過程
11.7.3 獲取有關過程的信息
11.7.4 刪除過程
11.7.5 查看過程中的錯誤
11.8 函式
11.8.1 創建函式
11.8.2 調用函式
11.8.3 獲取有關函式的信息
11.8.4 刪除函式
11.9 包
11.9.1 創建包規範
11.9.2 創建包體
11.9.3 調用包中的函式和過程
11.9.4 獲取有關包中函式和過程的信息
11.9.5 刪除包
11.10 觸發器
11.10.1 觸發器運行的時機
11.10.2 設定示例觸發器
11.10.3 創建觸發器
11.10.4 激活觸發器
11.10.5 獲取有關觸發器的信息
11.10.6 禁用和啟用觸發器
11.10.7 刪除觸發器
11.11 小結
第12章 資料庫對象
12.1 對象簡介
12.2 創建對象類型
12.3 使用DESCRIBE獲取有關對象類型的信息
12.4 用對象類型定義列對象和對象表
12.5 對products表執行DML操作
12.5.1 將記錄插入到products表中
12.5.2 從products表中查詢記錄
12.5.3 修改products表中的記錄
12.5.4 從products表中刪除記錄
12.6 對object_products表執行DML
12.6.1 向object_products表中插入記錄
12.6.2 從object_products表中選擇記錄
12.6.3 更新object_products表中的記錄
12.6.4 從object_products表中刪除記錄
12.7 對object_customers表執行DML
12.7.1 向object_customers表中插入記錄
12.7.2 從object_customers表中查詢記錄
12.8 對purchases表執行DML
12.8.1 向purchases表中插入記錄
12.8.2 從purchases表中選擇記錄
12.8.3 更新purchases表中的記錄
12.9 在PL/SQL中使用對象
12.10 類型繼承
12.11 NOT INSTANTIABLE對象類型
12.12 用戶自定義的構造函式
12.13 小結
第13章 集合
13.1 集合簡介
13.2 變長數組
13.2.1 創建變長數組類型
13.2.2 使用變長數組類型定義表列
13.2.3 獲得變長數組信息
13.2.4 填充變長數組元素
13.2.5 查找變長數組元素
13.2.6 更改變長數組元素
13.3 嵌套表
13.3.1 創建嵌套表類型
13.3.2 使用嵌套表類型定義表列
13.3.3 獲得嵌套表信息
13.3.4 填充嵌套表元素
13.3.5 查找嵌套表元素
13.3.6 更改嵌套表元素
13.4 多級集合類型
13.5 在PL/SQL中使用集合
13.5.1 操作變長數組
13.5.2 操作嵌套表
13.5.3 集合方法
13.6 Oracle 10g對集合的改進
13.6.1 關聯數組
13.6.2 更改元素類型的大小或精度
13.6.3 增加變長數組的元素數目
13.6.4 在臨時表中使用變長數組
13.6.5 為嵌套表的存儲表使用不同的表空間
13.6.6 對嵌套表的ANSI支持
13.7 小結
第14章 大對象
14.1 大對象(LOB)簡介
14.2 示例檔案
14.3 理解大對象類型
14.4 創建包含大對象的表
14.5 在SQL中使用大對象
14.5.1 使用CLOB和BLOB
14.5.2 使用BFILE
14.6 在PL/SQL中使用大對象
14.6.1 READ()
14.6.2 WRITE()
14.6.3 APPEND()
14.6.4 CLOSE()
14.6.5 COMPARE()
14.6.6 COPY()
14.6.7 CREATETEMPORARY()
14.6.8 ERASE()
14.6.9 FILECLOSE()
14.6.10 FILECLOSEALL()
14.6.11 FILEEXISTS()
14.6.12 FILEGETNAME()
14.6.13 FILEISOPEN()
14.6.14 FILEOPEN()
14.6.15 FREETEMPORARY()
14.6.16 GETCHUNKSIZE()
14.6.17 GET_STORAGE_LIMIT()
14.6.18 GETLENGTH()
14.6.19 INSTR()
14.6.20 ISOPEN()
14.6.21 ISTEMPORARY()
14.6.22 LOADFROMFILE()
14.6.23 LOADBLOBFROMFILE()
14.6.24 LOADCLOBFROMFILE()
14.6.25 OPEN()
14.6.26 SUBSTR()
14.6.27 TRIM()
14.6.28 WRITEAPPEND()
14.7 理解LONG和LONG RAW類型
14.7.1 示例表
14.7.2 使用LONG和LONG RAW列
14.8 Oracle10g對大對象的增強
14.8.1 CLOB和NCLOB對象之間的隱式轉換
14.8.2 在觸發器中使用LOB時:new屬性的用法
14.9 小結
第15章 使用Java運行SQL
15.1 準備工作
15.2 配置計算機
15.2.1 設定ORACLE_HOME環境變數
15.2.2 設定JAVA_HOME環境變數
15.2.3 設定PATH環境變數
15.2.4 設定CLASSPATH環境變數
15.2.5 設定LD_LIBRARAY_PATH環境變數
15.3 Oracle JDBC驅動程式
15.3.1 Thin驅動程式
15.3.2 OCI驅動器
15.3.3 伺服器端內部驅動器
15.3.4 伺服器端Thin驅動器
15.4 導入JDBC包
15.5 註冊Oracle JDBC驅動程式
15.6 打開資料庫連線
15.6.1 使用DriverManager類的getConnection()方法連線資料庫
15.6.2 使用Oracle數據源連線資料庫
15.7 創建JDBC Statement對象
15.8 從資料庫檢索列
15.8.1 步驟1:創建和填充ResultSet對象
15.8.2 步驟2:從ResultSet對象中讀取列值
15.8.3 步驟3:關閉ResultSet對象
15.9 向資料庫添加行
15.10 更改資料庫的行
15.11 刪除資料庫的行
15.12 處理數字
15.13 處理資料庫Null值
15.14 控制資料庫事務
15.15 執行DDL語句
15.16 處理異常
15.17 關閉JDBC對象
15.18 示例程式:BasicExample1.java
15.18.1 編譯BasicExample1
15.18.2 運行BasicExample1
15.19 預備SQL語句
15.20 Oracle JDBC擴展
15.20.1 oracle.sql包
15.20.2 oracle.jdbc包
15.20.3 示例程式:BasicExample3.java
15.21 小結
第16章 SQL最佳化
16.1 SQL最佳化簡介
16.2 使用WHERE子句過濾行
16.3 使用表連線而不是多個查詢
16.4 執行連線時使用完全限定的列引用
16.5 使用CASE表達式而不是多個查詢
16.6 添加表索引
16.7 使用WHERE而不是HAVING
16.8 使用UNION ALL而不是UNION
16.9 使用EXISTS而不是IN
16.10 使用EXISTS而不是DISTINCT
16.11 使用綁定變數
16.11.1 不相同的SQL語句
16.11.2 使用綁定變數定義相同SQL語句
16.11.3 列出和輸出綁定變數
16.11.4 使用綁定變數存儲PL/SQL函式的返回值
16.11.5 使用綁定變數存儲REFCURSOR的行
16.12 比較執行查詢的成本
16.12.1 檢查執行計畫
16.12.2 比較執行計畫
16.13 為最佳化器傳遞提示
16.14 其他最佳化工具
16.14.1 Statspack包
16.14.2 Oracle Enterprise Manager Diagnostics Pack
16.14.3 自動資料庫診斷監控
16.15 小結
附錄A Oracle數據類型
A.1 Oracle SQL類型
A.2 Oracle PL/SQL類型