內容簡介
學習通過編寫SQL語句並構建PL/SQL程序來訪問Oracle數據庫。《精通OracleDatabase12cSQL&PL;/SQL編程(第3版)》完全涵蓋瞭最新版本Oracle數據庫的功能和技術,指導讀者編寫SQL語句以檢索和修改數據庫中的信息、掌握SQL*Plus和SQLDeveloper、處理數據庫對象、編寫PL/SQL程序、采用性能優化技術、結閤XML以及其他技術。這本Oracle指南包含掌握SQL所需的全部知識。
作者簡介
Jason Price,持有OCP證書,是Oracle公司的前産品經理,對Oracle公司的眾多産品曾作齣十分卓越的貢獻,包括數據庫、應用服務器和若乾CRM應用程序。他在軟件行業從業超過15年,執筆撰寫瞭多本關於Oracle、Java和.NET技術的優秀圖書。
目錄
第1章 簡介
1.1 關係數據庫簡介
1.2 SQL簡介
1.3 使用SQL*Plus
1.3.1 啓動SQL*Plus
1.3.2 從命令行啓動SQL*Plus
1.3.3 使用SQL*Plus執行SELECT語句
1.4 使用SQL Developer
1.5 創建store模式
1.5.1 檢查腳本
1.5.2 運行腳本
1.5.3 用來創建store模式的DDL語句
1.6 添加、修改和刪除行
1.6.1 嚮錶中添加行
1.6.2 修改錶中的現有行
1.6.3 從錶中刪除行
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.6.1 執行日期運算
2.6.2 列運算
2.6.3 算術運算操作符的優先級
2.7 使用列彆名
2.8 使用連接操作閤並列的輸齣結果
2.9 空值
2.10 禁止顯示重復行
2.11 比較值
2.11.1 使用不等於操作符
2.11.2 使用大於操作符
2.11.3 使用小於或等於操作符
2.11.4 使用ANY操作符
2.11.5 使用ALL操作符
2.12 使用SQL操作符
2.12.1 使用LIKE操作符
2.12.2 使用IN操作符
2.12.3 使用BETWEEN操作符
2.13 使用邏輯操作符
2.13.1 使用AND操作符
2.13.2 使用OR操作符
2.14 邏輯操作符的優先級
2.15 使用ORDER BY子句對行進行排序
2.16 執行使用兩個錶的SELECT語句
2.17 使用錶彆名
2.18 笛卡爾積
2.19 執行使用多於兩個錶的SELECT語句
2.20 連接條件和連接類型
2.20.1 不等連接
2.20.2 外連接
2.20.3 自連接
2.21 使用SQL/92語法執行連接
2.21.1 使用SQL/92標準語法執行兩個錶的內連接
2.21.2 使用USING關鍵字簡化連接
2.21.3 使用SQL/92執行多於兩個錶的內連接
2.21.4 使用SQL/92執行多列的內連接
2.21.5 使用SQL/92執行外連接
2.21.6 使用SQL/92執行自連接
2.21.7 使用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.8.1 臨時變量
3.8.2 已定義變量
3.9 創建簡單報錶
3.9.1 在腳本中使用臨時變量
3.9.2 在腳本中使用已定義變量
3.9.3 嚮腳本中的變量傳遞值
3.9.4 添加頁眉和頁腳
3.9.5 計算小計
3.10 從SQL*Plus獲取幫助信息
3.11 自動生成SQL語句
3.12 斷開數據庫連接並退齣SQL*Plus
3.13 小結
第4章 使用簡單函數
4.1 使用單行函數
4.1.1 字符函數
4.1.2 數值函數
4.1.3 轉換函數
4.1.4 正則錶達式函數
4.2 使用聚閤函數
4.2.1 AVG()
4.2.2 COUNT()
4.2.3 MAX()和MIN()
4.2.4 STDDEV()
4.2.5 SUM()
4.2.6 VARIANCE()
4.3 對行進行分組
4.3.1 使用GROUP BY子句對行進行分組
4.3.2 調用聚閤函數的錯誤用法
4.3.3 使用HAVING子句過濾行組
4.3.4 組閤使用WHERE和GROUP BY子句
4.3.5 組閤使用WHERE、GROUP BY和HAVING子句
4.4 小結
第5章 日期和時間的存儲與處理
5.1 幾個簡單的存儲和檢索日期的例子
5.2 使用TO_CHAR()和TO_DATE()轉換時間值
5.2.1 使用TO_CHAR()將時間值轉換為字符串
5.2.2 使用TO_DATE()將字符串轉換為時間值
5.3 設置默認的日期格式
5.4 Oracle對兩位年份的處理
5.4.1 使用YY格式
5.4.2 使用RR格式
5.5 使用時間值函數
5.5.1 ADD_MONTHS()
5.5.2 LAST_DAY()
5.5.3 MONTHS_BETWEEN()
5.5.4 NEXT_DAY()
5.5.5 ROUND()
5.5.6 SYSDATE
5.5.7 TRUNC()
5.6 使用時區
5.6.1 與時區有關的函數
5.6.2 數據庫時區和會話時區
5.6.3 獲取時區的時差
5.6.4 獲取時區名
5.6.5 將時間值從一個時區轉換為另一個時區
5.7 使用時間戳
5.7.1 使用時間戳類型
5.7.2 與時間戳有關的函數
5.8 使用時間間隔
5.8.1 使用INTERVAL YEAR TO MONTH類型
5.8.2 使用INTERVAL DAY TO SECOND類型
5.8.3 與時間間隔有關的函數
5.9 小結
第6章 子查詢
6.1 子查詢的類型
6.2 編寫單行子查詢
6.2.1 在WHERE子句中使用子查詢
6.2.2 使用其他單行操作符
6.2.3 在HAVING子句中使用子查詢
6.2.4 在FROM子句中使用子查詢(內聯視圖)
6.2.5 可能碰到的錯誤
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 使用子查詢因子化
6.9 小結
第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.5.10 使用遞歸子查詢因子化查詢分層數據
7.6 使用ROLLUP和CUBE子句
7.6.1 示例錶
7.6.2 使用ROLLUP子句
7.6.3 使用CUBE子句
7.6.4 使用GROUPING()函數
7.6.5 使用GROUPING SETS子句
7.6.6 使用GROUPING_ID()函數
7.6.7 在GROUP BY子句中多次使用某個列
7.6.8 使用GROUP_ID()函數
7.7 使用CROSS APPLY和OUTER APPLY
7.7.1 CROSS APPLY
7.7.2 OUTER APPLY
7.8 使用LATERAL
7.9 小結
第8章 分析數據
8.1 使用分析函數
8.1.1 示例錶
8.1.2 使用評級函數
8.1.3 使用反百分位函數
8.1.4 使用窗口函數
8.1.5 使用報錶函數
8.1.6 使用LAG()和LEAD()函數
8.1.7 使用FIRST和LAST函數
8.1.8 使用綫性迴歸函數
8.1.9 使用假想評級與分布函數
8.2 使用MODEL子句
8.2.1 MODEL子句示例
8.2.2 用位置標記和符號標記訪問數據單元
8.2.3 用BETWEEN和AND返迴特定範圍內的數據單元
8.2.4 用ANY和IS ANY訪問所有的數據單元
8.2.5 用CURRENTV()函數獲取某個維度的當前值
8.2.6 用FOR循環訪問數據單元
8.2.7 處理空值和缺失值
8.2.8 更新已有的單元
8.3 使用PIVOT和UNPIVOT子句
8.3.1 PIVOT子句的簡單示例
8.3.2 轉換多個列
8.3.3 在轉換中使用多個聚閤函數
8.3.4 使用UNPIVOT子句
8.4 執行Top-N查詢
8.4.1 使用FETCH FIRST子句
8.4.2 使用OFFSET子句
8.4.3 使用PERCENT子句
8.4.4 使用WITH TIES子句
8.5 在數據中發現模式
8.5.1 在all_sales2錶中發現V形數據模式
8.5.2 在all_sales3錶中發現W型數據模式
8.5.3 在all_sales3錶中發現V形數據模式
8.6 小結
第9章 修改錶的內容
9.1 使用INSERT語句添加行
9.1.1 省略列的列錶
9.1.2 為列指定空值
9.1.3 在列值中使用單引號和雙引號
9.1.4 從一個錶嚮另一個錶復製行
9.2 使用UPDATE語句修改行
9.3 使用RETURNING子句返迴聚閤函數的計算結果
9.4 使用DELETE語句刪除行
9.5 數據庫的完整性
9.5.1 主鍵約束
9.5.2 外鍵約束
9.6 使用默認值
9.7 使用MERGE閤並行
9.8 數據庫事務
9.8.1 事務的提交和迴滾
9.8.2 事務的開始與結束
9.8.3 保存點
9.8.4 事務的ACID特性
9.8.5 並發事務
9.8.6 事務鎖
9.8.7 事務隔離級彆
9.8.8 SERIALIZABLE事務隔離級彆的一個例子
9.9 查詢閃迴
9.9.1 授權使用閃迴
9.9.2 時間查詢閃迴
9.9.3 SCN查詢閃迴
9.10 小結
第10章 用戶、特權和角色
10.1 用戶
10.1.1 創建用戶
10.1.2 修改用戶密碼
10.1.3 刪除用戶
......
前言/序言
前言
現在的數據庫管理係統使用一種標準語言——結構化查詢語言(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和
精通Oracle Database 12c SQL & PL/SQL編程(第3版) 下載 mobi epub pdf txt 電子書 格式
精通Oracle Database 12c SQL & PL/SQL編程(第3版) 下載 mobi pdf epub txt 電子書 格式 2024
精通Oracle Database 12c SQL & PL/SQL編程(第3版) mobi epub pdf txt 電子書 格式下載 2024