精通Oracle Database 12c SQL & PL/SQL編程(第3版)數據庫
內容簡介
學習經過編寫SQL語句並構建PL/SQL程序來訪問Oracle數據庫。《精通OracleDatabase12cSQL&PL/SQL編程(第3版)》徹底涵蓋了*新版本Oracle數據庫的功能和技術,指導讀者編寫SQL語句以檢索和修改數據庫中的信息、掌握SQL*Plus和SQLDeveloper、處理數據庫對象、編寫PL/SQL程序、採用性能優化技術、結合XML以及其餘技術。這本Oracle指南包含掌握SQL所需的所有知識。編程
精通Oracle Database 12c SQL & PL/SQL編程(第3版)目錄安全
版權信息性能優化
譯者序網絡
前言函數
第1章 簡介
1.1 關係數據庫簡介
1.2 SQL簡介
1.3 使用SQL*Plus
1.4 使用SQL Developer
1.5 建立store模式
1.6 添加、修改和刪除行
1.7 鏈接數據庫和斷開鏈接
1.8 退出SQL*Plus
1.9 Oracle PL/SQL簡介
1.10 小結
第2章 從數據庫表中檢索信息
2.1 對單表執行SELECT語句
2.2 選擇一個表中的全部列
2.3 使用WHERE子句限定行
2.4 行標識符
2.5 行號
2.6 執行算術運算
2.7 使用列別名
2.8 使用鏈接操做合併列的輸出結果
2.9 空值
2.10 禁止顯示重複行
2.11 比較值
2.12 使用SQL操做符
2.13 使用邏輯操做符
2.14 邏輯操做符的優先級
2.15 使用ORDER BY子句對行進行排序
2.16 執行使用兩個表的SELECT語句
2.17 使用表別名
2.18 笛卡爾積
2.19 執行使用多於兩個表的SELECT語句
2.20 鏈接條件和鏈接類型
2.21 使用SQL/92語法執行鏈接
2.22 小結
第3章 使用SQL*Plus
3.1 查看錶的結構
3.2 編輯SQL語句
3.3 保存、檢索並運行文件
3.4 格式化列
3.5 設置頁面大小
3.6 設置行大小
3.7 清除列的格式
3.8 使用變量
3.9 建立簡單報表
3.10 從SQL*Plus獲取幫助信息
3.11 自動生成SQL語句
3.12 斷開數據庫鏈接並退出SQL*Plus
3.13 小結
第4章 使用簡單函數
4.1 使用單行函數
4.2 使用聚合函數
4.3 對行進行分組
4.4 小結
第5章 日期和時間的存儲與處理
5.1 幾個簡單的存儲和檢索日期的例子
5.2 使用TO_CHAR()和TO_DATE()轉換時間值
5.3 設置默認的日期格式
5.4 Oracle對兩位年份的處理
5.5 使用時間值函數
5.6 使用時區
5.7 使用時間戳
5.8 使用時間間隔
5.9 小結
第6章 子查詢
6.1 子查詢的類型
6.2 編寫單行子查詢
6.3 編寫多行子查詢
6.4 編寫多列子查詢
6.5 編寫關聯子查詢
6.6 編寫嵌套子查詢
6.7 編寫包含子查詢的UPDATE和DELETE語句
6.8 使用子查詢因子化
6.9 小結
第7章 高級查詢
7.1 使用集合操做符
7.2 使用TRANSLATE()函數
7.3 使用DECODE()函數
7.4 使用CASE表達式
7.5 層次化查詢
7.6 使用ROLLUP和CUBE子句
第8章 分析數據
8.1 使用分析函數
8.2 使用MODEL子句
8.3 使用PIVOT和UNPIVOT子句
8.4 執行Top-N查詢
8.5 在數據中發現模式
8.6 小結
第9章 修改表的內容
9.1 使用INSERT語句添加行
9.2 使用UPDATE語句修改行
9.3 使用RETURNING子句返回聚合函數的計算結果
9.4 使用DELETE語句刪除行
9.5 數據庫的完整性
9.6 使用默認值
9.7 使用MERGE合併行
9.8 數據庫事務
9.9 查詢閃回
9.10 小結
第10章 用戶、特權和角色
數據庫存儲簡介
10.1 用戶
10.2 系統特權
10.3 對象特權
10.4 角色
10.5 審計
10.6 小結
第11章 建立表、序列、索引和視圖
11.1 表
11.2 序列
11.3 索引
11.4 視圖
11.5 閃回數據歸檔
11.6 小結
第12章 PL/SQL編程簡介
12.1 塊結構
12.2 變量和類型
12.3 條件邏輯
12.4 循環
12.5 遊標
12.6 異常
12.7 過程
12.8 函數
12.9 包
12.10 觸發器
12.11 其餘PL/SQL特性
12.12 小結
第13章 數據庫對象
13.1 對象簡介
運行腳本以建立對象模式
13.2 建立對象類型
13.3 使用DESCRIBE獲取有關對象類型的信息
13.4 在數據庫表中使用對象類型
13.5 在PL/SQL中使用對象
13.6 類型繼承
13.7 用子類型對象代替超類型對象
13.8 其餘有用的對象函數
13.9 NOT INSTANTIABLE對象類型
13.10 用戶自定義的構造函數
13.11 重載方法
13.12 通用調用
13.13 小結
第14章 集合
14.1 集合簡介
運行腳本以建立集合模式
14.2 建立集合類型
14.3 使用集合類型定義表列
14.4 獲取集合信息
14.5 填充集合元素
14.6 檢索集合元素
14.7 使用TABLE()函數將集合視爲一系列行
14.8 更改集合元素
14.9 使用映射方法比較嵌套表的內容
14.10 使用CAST()函數將集合從一種類型轉換爲另外一種類型
14.11 在PL/SQL中使用集合
14.12 建立和使用多級集合
14.13 Oracle Database 10g對集合的加強
14.14 小結
第15章 大對象
15.1 大對象(LOB)簡介
15.2 示例文件
15.3 理解大對象類型
15.4 建立包含大對象的表
15.5 在SQL中使用大對象
15.6 在PL/SQL中使用大對象
15.7 LONG和LONG RAW類型
15.8 Oracle Database 10g對大對象的加強
15.9 Oracle Database 11g對大對象的加強
15.10 Oracle Database 12c對大對象的加強
15.11 小結
第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 使用GROUPING SETS而不是CUBE
16.12 使用綁定變量
16.13 比較執行查詢的成本
16.14 爲優化器傳遞提示
16.15 其餘優化工具
16.16 小結
第17章 XML和Oracle數據庫
17.1 XML簡介
17.2 從關係數據生成XML
17.3 將XML保存到數據庫中
17.4 小結
附錄 Oracle數據類型工具
前言
如今的數據庫管理系統使用一種標準語言——結構化查詢語言(StructuredQueryLanguage,SQL)訪問。此外,SQL還能夠對數據庫中的信息進行檢索、添加、更新和刪除。本書將介紹如何真正掌握SQL,同時還會給出許多實用的例子。讀者能夠經過網絡得到本書中用到的全部腳本和程序(詳細信息參看後文「本書源代碼下載」部分)。
經過本書讀者能夠:
掌握標準的SQL,以及Oracle公司爲了使用Oracle數據庫的特性而開發的一些擴展。
理解PL/SQL,它容許用戶編寫包含SQL語句的程序。
使用SQL*Plus執行SQL語句、腳本和報表;SQL*Plus是一個用於與數據庫進行交互的工具。
對數據庫執行查詢、插入、更新和刪除操做。
建立數據庫表、序列、索引、視圖和用戶。
執行包含多條SQL語句的事務。
定義數據庫對象類型,以及建立對象表來處理高級數據。
使用大對象來處理包含圖像、音樂和電影的多媒體文件。
使用分析函數執行復雜計算。
實現高性能的優化技術,使SQL語句能夠快速執行。
探討Oracle數據庫的XML功能。
使用*新的OracleDatabase12cSQL功能。
本書共包含17章和一個附錄。
第1章簡介
本章將介紹有關關係數據庫和SQL的知識,而後給出幾個簡單查詢,並使用SQL*Plus和SQLDeveloper執行這些查詢,*後簡要介紹PL/SQL。
第2章從數據庫表中檢索信息
本章將展現如何使用SELECT語句從一個或多個數據庫表中檢索信息,如何使用算術表達式執行計算,如何使用WHERE子句對行進行過濾,以及如何對從表中檢索出的行排序。
第3章使用SQL*Plus
本章將介紹使用SQL*Plus來查看錶的結構,編輯SQL語句,保存並運行腳本,設置列的輸出格式,定義並使用變量,以及建立報表。
第4章使用簡單函數
本章將介紹有關Oracle數據庫中內置函數的知識。函數能夠接受輸入參數,並返回輸出參數1。使用函數能夠實現不少功能,例如計算一組數字的平均值和平方根。
第5章日期和時間的存儲與處理
本章將介紹Oracle數據庫如何處理與存儲日期和時間(兩者合稱時間值)。本章還將介紹如何使用時間戳來存儲特定的日期和時間,如何使用時間間隔來存儲必定長度的時間段。
第6章子查詢
本章將介紹如何在外部的SQL語句中放置SELECT語句。內部的SELECT語句被稱爲子查詢。本章還將介紹子查詢的各類類型,以及如何使用子查詢從簡單部件構建複雜語句。
第7章高級查詢
本章將介紹如何執行包含高級操做符和函數的查詢。例如,集合操做符能夠合併由多個查詢返回的行,TRANSLATE()函數能夠將一個字符串中的字符轉換爲另外一個字符串中的字符,DECODE()函數能夠在一組值中搜索某個特定的值,CASE表達式能夠執行if-then-else邏輯,ROLLUP和CUBE子句能夠返回包含小計的行。OracleDatabase12c中新增長了CROSSAPPLY和OUTERAPPLY來合併兩條SELECT語句返回的行,還增長了LATERAL以返回數據的內聯視圖。
第8章分析數據
本章將介紹有關分析函數的知識,分析函數能夠用來執行復雜計算,例如查找每個月銷量*高的產品類型、業績*佳的銷售員等。本章還將介紹如何對層次化組織的數據進行查詢,並將探討如何使用MODEL子句執行行間計算。*後,咱們會講解PIVOT和UNPIVOT子句,使用它們能夠了解大量數據的總體趨勢。OracleDatabase12c中新增長了MATCH_RECOGNIZE子句來查找數據中的模式,還增長了FETCHFIRST子句來執行top-N查詢。
第9章修改表的內容
本章將介紹如何使用INSERT、UPDATE和DELETE語句添加、修改和刪除行,如何使用COMMIT語句使事務的處理結果永久生效,或者使用ROLLBACK語句徹底取消事務執行的操做。本章還將介紹Oracle數據庫如何同時處理多個事務。
第10章用戶、特權和角色
本章將介紹有關數據庫用戶的知識以及如何使用特權和角色來控制用戶能夠在數據庫中執行的特定任務。
第11章建立表、序列、索引和視圖
本章將介紹有關表、序列和索引的知識。序列會生成一系列數字,而索引就如同書籍的索引,能夠幫助讀者快速訪問表中的行。本章還將介紹有關視圖的知識,視圖是對一個或多個表預約義的查詢。視圖能夠對用戶屏蔽複雜性,並經過只容許視圖訪問表中有限的數據集,從另外一層面上實現安全特性。本章還將討論閃回數據歸檔,這會將對錶所作的改變存儲一段時間。OracleDatabase12c中新增長了在表中定義可見列和不可見列的能力。
第12章PL/SQL編程簡介
本章將介紹有關PL/SQL的知識,PL/SQL構建在SQL基礎之上,使用PL/SQL能夠在數據庫中編寫包含SQL語句的存儲程序。PL/SQL包含標準的編程結構。
第13章數據庫對象
本章將介紹如何建立數據庫對象類型,數據庫對象類型能夠包括屬性和方法;還將介紹如何使用對象類型來定義列對象和對象表,以及如何使用SQL和PL/SQL來操縱對象。
第14章集合
本章將介紹如何建立集合類型,集合能夠包含多個元素;還將介紹如何使用集合類型來定義表中的列,以及如何使用SQL和PL/SQL來操縱集合。
第15章大對象
本章將介紹有關大對象的知識,大對象能夠用來存儲多達128TB的字符和二進制數據(也能夠是指向外部文件的指針);此外,還將介紹有關較舊的LONG類型的知識,爲了保持向後兼容性,在OracleDatabase12c中依然支持LONG類型。
第16章SQL優化
本章將介紹SQL優化的一些技巧,這些技巧能夠用來縮短查詢執行的時間;本章還將介紹有關Oracle優化器的知識,以及如何向優化器傳遞一些提示。此外還介紹瞭如何使用高級調優工具。
第17章XML和Oracle數據庫
可擴展標記語言(XML)是一種通用標記語言,可用來在Internet上共享結構化數據,並可用來編碼數據和其餘文檔。本章將介紹如何從關係數據生成XML,以及如何將XML保存到數據庫中。
附錄Oracle數據類型
本附錄列出了OracleSQL和PL/SQL中可使用的數據類型。
本書讀者對象
本書適用於如下讀者:
須要編寫SQL和PL/SQL的開發人員
須要深刻了解SQL的數據庫管理員
須要編寫SQL查詢來從本身公司的數據庫中得到信息的業務用戶
須要簡單瞭解SQL和PL/SQL的技術主管和技術顧問
讀者閱讀本書,不須要預先了解Oracle數據庫、SQL或PL/SQL的知識;本書爲讀者提供了成爲這方面專家所需的所有知識。性能