Oracle Database10g SQL開發指南

Oracle Database10g SQL開發指南

《Oracle Database10g SQL開發指南》是2005年由清華大學出版社出版的圖書,作者是(美)普里斯|譯者:馮銳//由淵霞

基本介紹

  • 書名:Oracle Database10g SQL開發指南 
  • 作者:(美)普里斯|譯者:馮銳//由淵霞
  • ISBN:9787302104872 
  • 定價:59.80元 
  • 出版社:清華大學出版社 
  • 出版時間:2005年05月 
版權資訊,編輯導讀,內容簡介,作者簡介,本書目錄,

版權資訊

作 者:
(美)普里斯|譯者:馮銳//由淵霞
出 版 社:
清華大學出版社
出版時間:
2005年05月
版 次:
印刷時間:
2008年04月
開 本:
4
I S B N :
7302104875
包 裝:
1

編輯導讀

對資料庫執行查詢、插入、更新和刪除操作,編寫PL/SQL存儲程式、包和觸發器。創建資料庫表、序列、索引、視圖和用戶,使用SQL*Plus來執行SQL語句、腳本和報表。使用分析函式進行複雜的運算,了解通過JDBC,使用Java運行SQL的基本知識。使用大對象來存儲128TB以內的字元和二進制數據,定義資料庫類型,並創建對象來處理高級數據。使用OracleDatabase10g中的所有新特性,如BINARY_FLOAT和BINARY_DOUBLE類型、MODEL子句,等等。使用最佳化技術實現真正高效率的SQL語句。

內容簡介

本書全面深入地論述了如何使用結構化查詢語言(SQL)語句來訪問Oracle資料庫,以及使用PL/SQL(ProceduralLanguage/SQL)來編寫包含SQL語句的程式。本書由Oracle前產品經理JasonPrice親筆撰寫,基於新推出的SQL2003規範]]],詳細介紹了OracleDatabase10g的新特性和功能。全書內容系統、權威,能幫助讀者快速掌握SQL的核心知識。

作者簡介

JasonPrice職業諮詢專家,Oracle公司前產品經理,對Oracle的眾多產品都做出了卓越的貢獻。Jason是一位經Oracle認證的資料庫管理員和應用程式開發員,在軟體產業具有10餘年的從業經驗,並親筆撰寫了多本關於Oracle、Jave和Net的優秀圖書。

本書目錄

第1章簡介
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.5SQL*PlusWorksheet
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.8Oracle10g的新數據類型BINARY_FLOAT和BINARY_DOUBLE
1.8.1BINARY_FLOAT和BINARY_DOUBLE的優點
1.8.2在表中使用BINARY_FLOAT和BINARY_DOUBLE
1.8.3特殊值
1.9退出SQL*Plus
1.10OraclePL/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使用ORDERBY子句對行進行排序
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.1AVG()函式
3.2.2COUNT()函式
3.2.3MAX()和MIN()函式
3.2.4STDDEV()函式
3.2.5SUM()函式
3.2.6VARIANCE()函式
3.3對行進行分組
3.3.1使用GROUPBY子句對行進行分組
3.3.2調用聚合函式的錯誤用法
3.3.3使用HAVING子句過濾行分組
3.3.4組合使用WHERE和GROUPBY子句
3.3.5組合使用WHERE、GROUPBY和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.4Oracle對2位年份的處理
4.4.1使用YY格式
4.4.2使用RR格式
4.5使用時間值函式
4.5.1ADD_MONTHS()函式
4.5.2LAST_DAY()函式
4.5.3MONTHS_BETWEEN()
4.5.4NEXT_DAY()函式
4.5.5ROUND()函式
4.5.6SYSDATE()函式
4.5.7TRUNC()函式
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使用INTERVALYEARTOMONTH類型
4.8.2使用INTERVALDAYTOSECOND類型
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和NOTEXISTS
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使用UNIONALL操作符
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使用CONNECTBY和STARTWITH子句
7.5.3使用偽列LEVEL
7.5.4格式化層次化查詢的結果
7.5.5從非根節點開始遍歷
7.5.6在STARTWITH子句中使用子查詢
7.5.7從下向上遍歷樹
7.5.8從層次查詢中刪除節點和分支
7.5.9在層次化查詢中加入其他條件
7.6使用擴展的GROUPBY子句
7.7使用ROLLUP子句
7.7.1使用CUBE子句
7.7.2使用GROUPING()函式
7.7.3使用GROUPINGSETS子句
7.7.4使用GROUPING_ID()函式
7.7.5在GROUPBY子句中多次使用一個列
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和ISANY訪問所有的數據單元
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.8SERIALIZABLE事務隔離性級別的一個例子
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.2WHILE循環
11.4.3FOR循環
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.1ZERO_DIVIDE異常
11.6.2DUP_VAL_ON_INDEX異常
11.6.3INVALID_NUMBER異常
11.6.4OTHERS異常
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.11NOTINSTANTIABLE對象類型
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.6Oracle10g對集合的改進
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.1READ()
14.6.2WRITE()
14.6.3APPEND()
14.6.4CLOSE()
14.6.5COMPARE()
14.6.6COPY()
14.6.7CREATETEMPORARY()
14.6.8ERASE()
14.6.9FILECLOSE()
14.6.10FILECLOSEALL()
14.6.11FILEEXISTS()
14.6.12FILEGETNAME()
14.6.13FILEISOPEN()
14.6.14FILEOPEN()
14.6.15FREETEMPORARY()
14.6.16GETCHUNKSIZE()
14.6.17GET_STORAGE_LIMIT()
14.6.18GETLENGTH()
14.6.19INSTR()
14.6.20ISOPEN()
14.6.21ISTEMPORARY()
14.6.22LOADFROMFILE()
14.6.23LOADBLOBFROMFILE()
14.6.24LOADCLOBFROMFILE()
14.6.25OPEN()
14.6.26SUBSTR()
14.6.27TRIM()
14.6.28WRITEAPPEND()
14.7理解LONG和LONGRAW類型
14.7.1示例表
14.7.2使用LONG和LONGRAW列
14.8Oracle10g對大對象的增強
14.8.1CLOB和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.3OracleJDBC驅動程式
15.3.1Thin驅動程式
15.3.2OCI驅動器
15.3.3伺服器端內部驅動器
15.3.4伺服器端Thin驅動器
15.4導入JDBC包
15.5註冊OracleJDBC驅動程式
15.6打開資料庫連線
15.6.1使用DriverManager類的getConnection()方法連線資料庫
15.6.2使用Oracle數據源連線資料庫
15.7創建JDBCStatement對象
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.20OracleJDBC擴展
15.20.1oracle.sql包
15.20.2oracle.jdbc包
15.20.3示例程式:BasicExample3.java
15.21小結
第16章SQL最佳化
16.1SQL最佳化簡介
16.2使用WHERE子句過濾行
16.3使用表連線而不是多個查詢
16.4執行連線時使用完全限定的列引用
16.5使用CASE表達式而不是多個查詢
16.6添加表索引
16.7使用WHERE而不是HAVING
16.8使用UNIONALL而不是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.1Statspack包
16.14.2OracleEnterpriseManagerDiagnosticsPack
16.14.3自動資料庫診斷監控
16.15小結
附錄AOracle數據類型
A.1OracleSQL類型
A.2OraclePL/SQL類型

相關詞條

熱門詞條

聯絡我們