精通Oracle Database 12c SQL & PL/SQL編程(第3版) 內容簡介 學習通過編寫SQL語句並構建PL/SQL程式來訪問Oracle資料庫。《精通OracleDatabase12cSQL&PL/SQL編程(第3版)》完全涵蓋了*新版本Oracle資料庫的功能和技術,指導讀者編 ...
精通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的知識;本書為讀者提供了成為這方面專家所需的全部知識。