《Oracle 入門教程》第 01 篇 專欄介紹

作者: 不剪發(fā)的Tony老師
畢業(yè)于北京航空航天大學(xué),十多年數(shù)據(jù)庫管理與開發(fā)經(jīng)驗,目前在一家全球性的金融公司從事數(shù)據(jù)庫架構(gòu)設(shè)計。CSDN學(xué)院簽約講師以及GitChat專欄作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net


文章目錄

        專欄背景
        專欄內(nèi)容
        專欄寄語

大家好,我是只談技術(shù)不剪發(fā)的 Tony 老師。歡迎來到我的專欄《Oracle 入門教程》!本專欄主要面向 Oracle 數(shù)據(jù)庫的初學(xué)者,包括初級 DBA 、數(shù)據(jù)庫工程師以及數(shù)據(jù)分析師以及相關(guān)人員,介紹 Oracle 數(shù)據(jù)庫開發(fā)和管理的相關(guān)知識。
專欄背景

著名的數(shù)據(jù)庫流行度排名網(wǎng)站 DB-Engines 每個月都會更新數(shù)據(jù)庫的排名情況,其中 Oracle 數(shù)據(jù)庫常年占據(jù)第一名的位置。


作為第一個商用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),Oracle 以其強大功能、穩(wěn)定性、高性能、安全性以及可擴展性廣泛應(yīng)用于企業(yè)數(shù)據(jù)庫。雖然開源數(shù)據(jù)庫 MySQL(Oracle 公司所有)、PostgreSQL(最兼容 Oracle 的開源數(shù)據(jù)庫)、NoSQL 以及云數(shù)據(jù)庫等占據(jù)了互聯(lián)網(wǎng)中的大部分應(yīng)用,Oracle 仍然是政府、金融、能源、教育、醫(yī)療和交通等傳統(tǒng)行業(yè)的主流數(shù)據(jù)庫,應(yīng)用非常廣泛。

另一方面,從學(xué)習(xí)技術(shù)的角度來說,Oracle 仍然代表了最先進(jìn)的數(shù)據(jù)庫技術(shù)。很多數(shù)據(jù)庫產(chǎn)品都以 Oracle 作為比較和兼容的目標(biāo),學(xué)習(xí)了 Oracle 之后再去了解其他數(shù)據(jù)庫就會顯得比較容易和熟悉。
專欄內(nèi)容

本專欄基于最新的 Oracle Database 19c,通過簡單易懂的示意圖和案例分析透徹講解每個知識點。本專欄預(yù)計包含以下內(nèi)容,具體可能會有所調(diào)整。

第 I 部分 基本概念

    第 01 篇 專欄介紹。也就是本文。
    第 02 篇 Oracle 簡介。簡單介紹關(guān)系型數(shù)據(jù)庫,Oracle 數(shù)據(jù)庫的相關(guān)信息和功能特性,以及 SQL 和 PL/SQL 語言。
    第 03 篇 Oracle 安裝。介紹 Oracle 數(shù)據(jù)庫的下載和安裝,連接數(shù)據(jù)庫,以及專欄示例表和數(shù)據(jù)的初始化。

第 III 部分 查詢基礎(chǔ)

    第 04 篇 簡單查詢。介紹如何使用SELECT和FROM查詢表中的數(shù)據(jù),返回表達(dá)式和函數(shù)的結(jié)果,為查詢結(jié)果自定義標(biāo)題以及注釋的使用。
    第 05 篇 數(shù)據(jù)過濾。使用WHERE子句返回滿足條件的數(shù)據(jù),以及使用DISTINCT去除查詢結(jié)果中的重復(fù)值。
    第 06 篇 排序顯示。介紹如何使用ORDER BY進(jìn)行查詢結(jié)果的排序顯示,包括單列排序、多列排序,升序和降序排序、空值排序、中文排序等。
    第 07 篇 限定數(shù)量。利用FETCH和OFFSET子句限制返回的行數(shù)和偏移量,實現(xiàn) Top-N 排行榜和分頁查詢功能;同時還介紹了如何使用 Oracle 中的 ROWNUM 偽列實現(xiàn)相同的功能。
    第 08 篇 分組匯總。使用GROUP BY子句對數(shù)據(jù)進(jìn)行分組,并且應(yīng)用聚合函數(shù)針對每個組進(jìn)行匯總分析。使用HAVING子句對分組后的結(jié)果進(jìn)行過濾。
    第 09 篇 CASE 表達(dá)式。CASE 表達(dá)式為 SQL 語句增加類似于 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 篇 高級分組。介紹 Oracle 中的GROUPING SETS、CUBE以及ROLLUP高級分組功選項。
    第 14 篇 數(shù)據(jù)透視表。介紹執(zhí)行行列轉(zhuǎn)換的PIVOT和UNPIVOT子句,實現(xiàn)數(shù)據(jù)透視表。
    第 15 篇 多表連接。介紹 Oracle 支持的各種連接查詢,包括內(nèi)連接、左/右外連接、全外連接、交叉連接、自然連接以及自連接。
    第 16 篇 子查詢。介紹 Oracle 中的子查詢、關(guān)聯(lián)子查詢、橫向子查詢、IN、ALL、ANY以及EXISTS操作符。
    第 17 篇 集合運算。介紹 Oracle 中的集合操作符 UNION、INTERSECT以及MINUS。
    第 18 篇 通用表表達(dá)式。通用表表達(dá)式(Common Table Expression)是一個臨時的查詢結(jié)果或者臨時表,可以在其他SELECT、INSERT、UPDATE以及DELETE語句中使用。使用 CTE 可以提高復(fù)雜查詢的可讀性,遞歸 CTE 可以遍歷各種層次數(shù)據(jù)。
    第 19 篇 分析函數(shù)。Oracle 分析函數(shù)(窗口函數(shù))基于和當(dāng)前數(shù)據(jù)行相關(guān)的一組數(shù)據(jù)計算出一個結(jié)果。窗口函數(shù)使用OVER子句進(jìn)行定義,包括PARTITION BY、ORDER BY以及frame_clause三個選項。常見的窗口函數(shù)可以分為以下幾類:聚合窗口函數(shù)、排名窗口函數(shù)以及取值窗口函數(shù)。

第 IV 部分 高級功能

    第 20 篇 DML 語句之?dāng)?shù)據(jù)插入。介紹 Oracle 中插入數(shù)據(jù)的INSERT語句以及多表插入的INSERT ALL語句。
    第 21 篇 DML 語句之?dāng)?shù)據(jù)更新。介紹 Oracle 中更新數(shù)據(jù)的UPDATE語句。
    第 22 篇 DML 語句之?dāng)?shù)據(jù)刪除。介紹 Oracle 中刪除數(shù)據(jù)的DELETE語句。
    第 23 篇 DML 語句之?dāng)?shù)據(jù)合并。介紹 Oracle 中合并數(shù)據(jù)的MERGE語句。
    第 24 篇 事務(wù)與并發(fā)控制。介紹 Oracle 中的數(shù)據(jù)庫事務(wù)概念和 ACID 屬性,并發(fā)事務(wù)可能帶來的問題以及 4 種隔離級別,演示了如何使用事務(wù)控制語句(TCL)對事務(wù)進(jìn)行處理,包括BEGIN、COMMIT、ROLLBACK以及SAVEPOINT語句。
    第 25 篇 索引與優(yōu)化。本篇介紹 Oracle 中的索引概念,包括 B-樹索引、哈希索引等類型,唯一索引、多列索引、函數(shù)索引、部分索引以及覆蓋索引等方式。如何利用索引優(yōu)化數(shù)據(jù)庫的查詢性能,以及創(chuàng)建索引、查看索引、維護(hù)索引等操作。
    第 26 篇 視圖。介紹 Oracle 中視圖(View)的概念和作用,如何創(chuàng)建、修改、刪除視圖,以及可更新視圖的使用與控制。
    第 27 篇 同義詞。

第 V 部分 PL/SQL 存儲過程

    第 28 篇 PL/SQL 基礎(chǔ)。PL/SQL 簡介和代碼塊結(jié)構(gòu),變量聲明與賦值。
    第 29 篇 條件控制語句。
    第 30 篇 循環(huán)控制語句。
    第 31 篇 異常處理。
    第 32 篇 游標(biāo)。
    第 33 篇 記錄與集合。
    第 34 篇 存儲過程與函數(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)聽管理。
    第 39 篇 角色與用戶。Oracle 使用角色的概念來管理數(shù)據(jù)庫的訪問權(quán)限。角色可以被看成是一個數(shù)據(jù)庫用戶或者是一個組。GRANT和REVOKE語句分別用于對象的授權(quán)和撤銷權(quán)限。
    第 40 篇 管理表空間。
    第 41 篇 管理數(shù)據(jù)表。介紹如何管理數(shù)據(jù)庫中的表,包括創(chuàng)建表、修改表以及刪除表等操作。
    第 42 篇 數(shù)據(jù)類型。介紹 Oracle 支持的各種數(shù)據(jù)類型。
    第 43 篇 序列。
    第 44 篇 臨時表。全局臨時表和私有臨時表。
    第 45 篇 數(shù)據(jù)庫鏈接。
    第 46 篇 備份與恢復(fù)。服務(wù)器系統(tǒng)錯誤、硬件故障或者人為失誤都可能導(dǎo)致數(shù)據(jù)的丟失或損壞。因此,備份和恢復(fù)對于數(shù)據(jù)庫的高可用性至關(guān)重要。數(shù)據(jù)庫管理員應(yīng)該根據(jù)業(yè)務(wù)的需求制定合適的備份策略,并提前演練各種故障情況下的恢復(fù)過程,做到有備無患。

第 VII 部分 應(yīng)用程序接口

    第 47 篇 Java 訪問 Oracle。在 Java 程序中利用 JDBC 接口連接和操作 Oracle 數(shù)據(jù)庫,包括創(chuàng)建和刪除表、執(zhí)行數(shù)據(jù)的增刪改查操作、事務(wù)的管理以及調(diào)用存儲過程。
    第 48 篇 Python 訪問 Oracle。利用 Python 驅(qū)動程序接口 cx_Oracle 連接和操作 Oracle 數(shù)據(jù)庫,包括創(chuàng)建和刪除表、執(zhí)行數(shù)據(jù)的增刪改查操作、事務(wù)的管理以及調(diào)用存儲過程和函數(shù)。

第 VIII 部分 實戰(zhàn)篇

    SQL 完整性約束。SQL 標(biāo)準(zhǔn)中的 6 種完整性約束,以及主流數(shù)據(jù)庫中的實現(xiàn)。
    實戰(zhàn) SQL:實現(xiàn)百度、高德等地圖中的地鐵換乘線路查詢。
    實戰(zhàn) SQL:微信、微博等社交網(wǎng)絡(luò)中的友好、粉絲關(guān)系分析。
    實戰(zhàn) SQL:銷售數(shù)據(jù)的小計/合計/總計以及數(shù)據(jù)透視表。
    實戰(zhàn) SQL:銀行等金融機構(gòu)可疑支付交易的監(jiān)測。
    實戰(zhàn) SQL:亞馬遜、京東等電商平臺的銷售排行榜和飆升榜。
    Oracle 常見面試題解析。

專欄寄語

希望大家通過本專欄的學(xué)習(xí),能夠熟練掌握 Oracle 數(shù)據(jù)庫開發(fā)和管理基礎(chǔ),同時對最新的 Oracle 特性和高級功能有所了解,并且在將來的工作中學(xué)以致用。如果你在學(xué)習(xí)的過程中有任何問題,歡迎隨時留言,留言必回。讓我們一起學(xué)習(xí)一起成長!