《Oracle 入門(mén)教程》第 01 篇 專欄介紹
作者: 不剪發(fā)的Tony老師
畢業(yè)于北京航空航天大學(xué),十多年數(shù)據(jù)庫(kù)管理與開(kāi)發(fā)經(jīng)驗(yàn),目前在一家全球性的金融公司從事數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)。CSDN學(xué)院簽約講師以及GitChat專欄作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net
文章目錄
專欄背景
專欄內(nèi)容
專欄寄語(yǔ)
大家好,我是只談技術(shù)不剪發(fā)的 Tony 老師。歡迎來(lái)到我的專欄《Oracle 入門(mén)教程》!本專欄主要面向 Oracle 數(shù)據(jù)庫(kù)的初學(xué)者,包括初級(jí) DBA 、數(shù)據(jù)庫(kù)工程師以及數(shù)據(jù)分析師以及相關(guān)人員,介紹 Oracle 數(shù)據(jù)庫(kù)開(kāi)發(fā)和管理的相關(guān)知識(shí)。
專欄背景
著名的數(shù)據(jù)庫(kù)流行度排名網(wǎng)站 DB-Engines 每個(gè)月都會(huì)更新數(shù)據(jù)庫(kù)的排名情況,其中 Oracle 數(shù)據(jù)庫(kù)常年占據(jù)第一名的位置。
作為第一個(gè)商用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),Oracle
以其強(qiáng)大功能、穩(wěn)定性、高性能、安全性以及可擴(kuò)展性廣泛應(yīng)用于企業(yè)數(shù)據(jù)庫(kù)。雖然開(kāi)源數(shù)據(jù)庫(kù) MySQL(Oracle
公司所有)、PostgreSQL(最兼容 Oracle 的開(kāi)源數(shù)據(jù)庫(kù))、NoSQL 以及云數(shù)據(jù)庫(kù)等占據(jù)了互聯(lián)網(wǎng)中的大部分應(yīng)用,Oracle
仍然是政府、金融、能源、教育、醫(yī)療和交通等傳統(tǒng)行業(yè)的主流數(shù)據(jù)庫(kù),應(yīng)用非常廣泛。
另一方面,從學(xué)習(xí)技術(shù)的角度來(lái)說(shuō),Oracle 仍然代表了最先進(jìn)的數(shù)據(jù)庫(kù)技術(shù)。很多數(shù)據(jù)庫(kù)產(chǎn)品都以 Oracle 作為比較和兼容的目標(biāo),學(xué)習(xí)了 Oracle 之后再去了解其他數(shù)據(jù)庫(kù)就會(huì)顯得比較容易和熟悉。
專欄內(nèi)容
本專欄基于最新的 Oracle Database 19c,通過(guò)簡(jiǎn)單易懂的示意圖和案例分析透徹講解每個(gè)知識(shí)點(diǎn)。本專欄預(yù)計(jì)包含以下內(nèi)容,具體可能會(huì)有所調(diào)整。
第 I 部分 基本概念
第 01 篇 專欄介紹。也就是本文。
第 02 篇 Oracle 簡(jiǎn)介。簡(jiǎn)單介紹關(guān)系型數(shù)據(jù)庫(kù),Oracle 數(shù)據(jù)庫(kù)的相關(guān)信息和功能特性,以及 SQL 和 PL/SQL 語(yǔ)言。
第 03 篇 Oracle 安裝。介紹 Oracle 數(shù)據(jù)庫(kù)的下載和安裝,連接數(shù)據(jù)庫(kù),以及專欄示例表和數(shù)據(jù)的初始化。
第 III 部分 查詢基礎(chǔ)
第 04 篇 簡(jiǎn)單查詢。介紹如何使用SELECT和FROM查詢表中的數(shù)據(jù),返回表達(dá)式和函數(shù)的結(jié)果,為查詢結(jié)果自定義標(biāo)題以及注釋的使用。
第 05 篇 數(shù)據(jù)過(guò)濾。使用WHERE子句返回滿足條件的數(shù)據(jù),以及使用DISTINCT去除查詢結(jié)果中的重復(fù)值。
第 06 篇 排序顯示。介紹如何使用ORDER BY進(jìn)行查詢結(jié)果的排序顯示,包括單列排序、多列排序,升序和降序排序、空值排序、中文排序等。
第 07 篇 限定數(shù)量。利用FETCH和OFFSET子句限制返回的行數(shù)和偏移量,實(shí)現(xiàn) Top-N 排行榜和分頁(yè)查詢功能;同時(shí)還介紹了如何使用 Oracle 中的 ROWNUM 偽列實(shí)現(xiàn)相同的功能。
第 08 篇 分組匯總。使用GROUP BY子句對(duì)數(shù)據(jù)進(jìn)行分組,并且應(yīng)用聚合函數(shù)針對(duì)每個(gè)組進(jìn)行匯總分析。使用HAVING子句對(duì)分組后的結(jié)果進(jìn)行過(guò)濾。
第 09 篇 CASE 表達(dá)式。CASE 表達(dá)式為 SQL 語(yǔ)句增加類似于 IF-THEN-ELSE
的邏輯處理功能,根據(jù)不同的條件返回不同的結(jié)果。 Oracle 支持兩種形式的條件表達(dá)式以及處理空值的 NULLIF 函數(shù)和 COALEASE
函數(shù)。
第 10 篇 常用函數(shù)之?dāng)?shù)學(xué)函數(shù)。介紹 Oracle 常用的數(shù)學(xué)函數(shù)。
第 11 篇 常用函數(shù)之字符函數(shù)。介紹 Oracle 常用的字符函數(shù)。
第 12 篇 常用函數(shù)之日期函數(shù)。介紹 Oracle 常用的日期函數(shù)以及類型轉(zhuǎn)換函數(shù)。
第 II 部分 查詢進(jìn)階
第 13 篇 高級(jí)分組。介紹 Oracle 中的GROUPING SETS、CUBE以及ROLLUP高級(jí)分組功選項(xiàng)。
第 14 篇 數(shù)據(jù)透視表。介紹執(zhí)行行列轉(zhuǎn)換的PIVOT和UNPIVOT子句,實(shí)現(xiàn)數(shù)據(jù)透視表。
第 15 篇 多表連接。介紹 Oracle 支持的各種連接查詢,包括內(nèi)連接、左/右外連接、全外連接、交叉連接、自然連接以及自連接。
第 16 篇 子查詢。介紹 Oracle 中的子查詢、關(guān)聯(lián)子查詢、橫向子查詢、IN、ALL、ANY以及EXISTS操作符。
第 17 篇 集合運(yùn)算。介紹 Oracle 中的集合操作符 UNION、INTERSECT以及MINUS。
第 18 篇 通用表表達(dá)式。通用表表達(dá)式(Common Table
Expression)是一個(gè)臨時(shí)的查詢結(jié)果或者臨時(shí)表,可以在其他SELECT、INSERT、UPDATE以及DELETE語(yǔ)句中使用。使用 CTE
可以提高復(fù)雜查詢的可讀性,遞歸 CTE 可以遍歷各種層次數(shù)據(jù)。
第 19 篇 分析函數(shù)。Oracle
分析函數(shù)(窗口函數(shù))基于和當(dāng)前數(shù)據(jù)行相關(guān)的一組數(shù)據(jù)計(jì)算出一個(gè)結(jié)果。窗口函數(shù)使用OVER子句進(jìn)行定義,包括PARTITION BY、ORDER
BY以及frame_clause三個(gè)選項(xiàng)。常見(jiàn)的窗口函數(shù)可以分為以下幾類:聚合窗口函數(shù)、排名窗口函數(shù)以及取值窗口函數(shù)。
第 IV 部分 高級(jí)功能
第 20 篇 DML 語(yǔ)句之?dāng)?shù)據(jù)插入。介紹 Oracle 中插入數(shù)據(jù)的INSERT語(yǔ)句以及多表插入的INSERT ALL語(yǔ)句。
第 21 篇 DML 語(yǔ)句之?dāng)?shù)據(jù)更新。介紹 Oracle 中更新數(shù)據(jù)的UPDATE語(yǔ)句。
第 22 篇 DML 語(yǔ)句之?dāng)?shù)據(jù)刪除。介紹 Oracle 中刪除數(shù)據(jù)的DELETE語(yǔ)句。
第 23 篇 DML 語(yǔ)句之?dāng)?shù)據(jù)合并。介紹 Oracle 中合并數(shù)據(jù)的MERGE語(yǔ)句。
第 24 篇 事務(wù)與并發(fā)控制。介紹 Oracle 中的數(shù)據(jù)庫(kù)事務(wù)概念和 ACID 屬性,并發(fā)事務(wù)可能帶來(lái)的問(wèn)題以及 4
種隔離級(jí)別,演示了如何使用事務(wù)控制語(yǔ)句(TCL)對(duì)事務(wù)進(jìn)行處理,包括BEGIN、COMMIT、ROLLBACK以及SAVEPOINT語(yǔ)句。
第 25 篇 索引與優(yōu)化。本篇介紹 Oracle 中的索引概念,包括 B-樹(shù)索引、哈希索引等類型,唯一索引、多列索引、函數(shù)索引、部分索引以及覆蓋索引等方式。如何利用索引優(yōu)化數(shù)據(jù)庫(kù)的查詢性能,以及創(chuàng)建索引、查看索引、維護(hù)索引等操作。
第 26 篇 視圖。介紹 Oracle 中視圖(View)的概念和作用,如何創(chuàng)建、修改、刪除視圖,以及可更新視圖的使用與控制。
第 27 篇 同義詞。
第 V 部分 PL/SQL 存儲(chǔ)過(guò)程
第 28 篇 PL/SQL 基礎(chǔ)。PL/SQL 簡(jiǎn)介和代碼塊結(jié)構(gòu),變量聲明與賦值。
第 29 篇 條件控制語(yǔ)句。
第 30 篇 循環(huán)控制語(yǔ)句。
第 31 篇 異常處理。
第 32 篇 游標(biāo)。
第 33 篇 記錄與集合。
第 34 篇 存儲(chǔ)過(guò)程與函數(shù)。
第 35 篇 PL/SQL 程序包。
第 36 篇 觸發(fā)器。介紹 Oracle 觸發(fā)器(trigger)的概念和作用,DML 觸發(fā)器、DDL 觸發(fā)器以及事件觸發(fā)器的創(chuàng)建、修改以及刪除操作。
第 VI 部分 管理基礎(chǔ)
第 37 篇 Oracle 體系結(jié)構(gòu)。
第 38 篇 Oracle 服務(wù)和監(jiān)聽(tīng)管理。
第 39 篇 角色與用戶。Oracle 使用角色的概念來(lái)管理數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限。角色可以被看成是一個(gè)數(shù)據(jù)庫(kù)用戶或者是一個(gè)組。GRANT和REVOKE語(yǔ)句分別用于對(duì)象的授權(quán)和撤銷權(quán)限。
第 40 篇 管理表空間。
第 41 篇 管理數(shù)據(jù)表。介紹如何管理數(shù)據(jù)庫(kù)中的表,包括創(chuàng)建表、修改表以及刪除表等操作。
第 42 篇 數(shù)據(jù)類型。介紹 Oracle 支持的各種數(shù)據(jù)類型。
第 43 篇 序列。
第 44 篇 臨時(shí)表。全局臨時(shí)表和私有臨時(shí)表。
第 45 篇 數(shù)據(jù)庫(kù)鏈接。
第 46 篇 備份與恢復(fù)。服務(wù)器系統(tǒng)錯(cuò)誤、硬件故障或者人為失誤都可能導(dǎo)致數(shù)據(jù)的丟失或損壞。因此,備份和恢復(fù)對(duì)于數(shù)據(jù)庫(kù)的高可用性至關(guān)重要。數(shù)據(jù)庫(kù)管理員應(yīng)該根據(jù)業(yè)務(wù)的需求制定合適的備份策略,并提前演練各種故障情況下的恢復(fù)過(guò)程,做到有備無(wú)患。
第 VII 部分 應(yīng)用程序接口
第 47 篇 Java 訪問(wèn) Oracle。在 Java 程序中利用 JDBC 接口連接和操作 Oracle 數(shù)據(jù)庫(kù),包括創(chuàng)建和刪除表、執(zhí)行數(shù)據(jù)的增刪改查操作、事務(wù)的管理以及調(diào)用存儲(chǔ)過(guò)程。
第 48 篇 Python 訪問(wèn) Oracle。利用 Python 驅(qū)動(dòng)程序接口 cx_Oracle 連接和操作 Oracle 數(shù)據(jù)庫(kù),包括創(chuàng)建和刪除表、執(zhí)行數(shù)據(jù)的增刪改查操作、事務(wù)的管理以及調(diào)用存儲(chǔ)過(guò)程和函數(shù)。
第 VIII 部分 實(shí)戰(zhàn)篇
SQL 完整性約束。SQL 標(biāo)準(zhǔn)中的 6 種完整性約束,以及主流數(shù)據(jù)庫(kù)中的實(shí)現(xiàn)。
實(shí)戰(zhàn) SQL:實(shí)現(xiàn)百度、高德等地圖中的地鐵換乘線路查詢。
實(shí)戰(zhàn) SQL:微信、微博等社交網(wǎng)絡(luò)中的友好、粉絲關(guān)系分析。
實(shí)戰(zhàn) SQL:銷售數(shù)據(jù)的小計(jì)/合計(jì)/總計(jì)以及數(shù)據(jù)透視表。
實(shí)戰(zhàn) SQL:銀行等金融機(jī)構(gòu)可疑支付交易的監(jiān)測(cè)。
實(shí)戰(zhàn) SQL:亞馬遜、京東等電商平臺(tái)的銷售排行榜和飆升榜。
Oracle 常見(jiàn)面試題解析。
專欄寄語(yǔ)
希望大家通過(guò)本專欄的學(xué)習(xí),能夠熟練掌握 Oracle 數(shù)據(jù)庫(kù)開(kāi)發(fā)和管理基礎(chǔ),同時(shí)對(duì)最新的 Oracle 特性和高級(jí)功能有所了解,并且在將來(lái)的工作中學(xué)以致用。如果你在學(xué)習(xí)的過(guò)程中有任何問(wèn)題,歡迎隨時(shí)留言,留言必回。讓我們一起學(xué)習(xí)一起成長(zhǎng)!