《Oracle 入门教程》第 01 篇 专栏介绍

作者: 不剪发的Tony老师
毕业于北京航空航天大学,十多年数据库管理与开发经验,目前在一家全球性的金融公司从事数据库架构设计。CSDN学院签约讲师以及GitChat专栏作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net


文章目录

        专栏背景
        专栏内容
        专栏寄语

大家好,我是只谈技术不剪发的 Tony 老师。欢迎来到我的专栏《Oracle 入门教程》!本专栏主要面向 Oracle 数据库的初学者,包括初级 DBA 、数据库工程师以及数据分析师以及相关人员,介绍 Oracle 数据库开发和管理的相关知识。
专栏背景

著名的数据库流行度排名网站 DB-Engines 每个月都会更新数据库的排名情况,其中 Oracle 数据库常年占据第一名的位置。


作为第一个商用的关系型数据库管理系统,Oracle 以其强大功能、稳定性、高性能、安全性以及可扩展性广泛应用于企业数据库。虽然开源数据库 MySQL(Oracle 公司所有)、PostgreSQL(最兼容 Oracle 的开源数据库)、NoSQL 以及云数据库等占据了互联网中的大部分应用,Oracle 仍然是政府、金融、能源、教育、医疗和交通等传统行业的主流数据库,应用非常广泛。

另一方面,从学习技术的角度来说,Oracle 仍然代表了最先进的数据库技术。很多数据库产品都以 Oracle 作为比较和兼容的目标,学习了 Oracle 之后再去了解其他数据库就会显得比较容易和熟悉。
专栏内容

本专栏基于最新的 Oracle Database 19c,通过简单易懂的示意图和案例分析透彻讲解每个知识点。本专栏预计包含以下内容,具体可能会有所调整。

第 I 部分 基本概念

    第 01 篇 专栏介绍。也就是本文。
    第 02 篇 Oracle 简介。简单介绍关系型数据库,Oracle 数据库的相关信息和功能特性,以及 SQL 和 PL/SQL 语言。
    第 03 篇 Oracle 安装。介绍 Oracle 数据库的下载和安装,连接数据库,以及专栏示例表和数据的初始化。

第 III 部分 查询基础

    第 04 篇 简单查询。介绍如何使用SELECT和FROM查询表中的数据,返回表达式和函数的结果,为查询结果自定义标题以及注释的使用。
    第 05 篇 数据过滤。使用WHERE子句返回满足条件的数据,以及使用DISTINCT去除查询结果中的重复值。
    第 06 篇 排序显示。介绍如何使用ORDER BY进行查询结果的排序显示,包括单列排序、多列排序,升序和降序排序、空值排序、中文排序等。
    第 07 篇 限定数量。利用FETCH和OFFSET子句限制返回的行数和偏移量,实现 Top-N 排行榜和分页查询功能;同时还介绍了如何使用 Oracle 中的 ROWNUM 伪列实现相同的功能。
    第 08 篇 分组汇总。使用GROUP BY子句对数据进行分组,并且应用聚合函数针对每个组进行汇总分析。使用HAVING子句对分组后的结果进行过滤。
    第 09 篇 CASE 表达式。CASE 表达式为 SQL 语句增加类似于 IF-THEN-ELSE 的逻辑处理功能,根据不同的条件返回不同的结果。 Oracle 支持两种形式的条件表达式以及处理空值的 NULLIF 函数和 COALEASE 函数。
    第 10 篇 常用函数之数学函数。介绍 Oracle 常用的数学函数。
    第 11 篇 常用函数之字符函数。介绍 Oracle 常用的字符函数。
    第 12 篇 常用函数之日期函数。介绍 Oracle 常用的日期函数以及类型转换函数。

第 II 部分 查询进阶

    第 13 篇 高级分组。介绍 Oracle 中的GROUPING SETS、CUBE以及ROLLUP高级分组功选项。
    第 14 篇 数据透视表。介绍执行行列转换的PIVOT和UNPIVOT子句,实现数据透视表。
    第 15 篇 多表连接。介绍 Oracle 支持的各种连接查询,包括内连接、左/右外连接、全外连接、交叉连接、自然连接以及自连接。
    第 16 篇 子查询。介绍 Oracle 中的子查询、关联子查询、横向子查询、IN、ALL、ANY以及EXISTS操作符。
    第 17 篇 集合运算。介绍 Oracle 中的集合操作符 UNION、INTERSECT以及MINUS。
    第 18 篇 通用表表达式。通用表表达式(Common Table Expression)是一个临时的查询结果或者临时表,可以在其他SELECT、INSERT、UPDATE以及DELETE语句中使用。使用 CTE 可以提高复杂查询的可读性,递归 CTE 可以遍历各种层次数据。
    第 19 篇 分析函数。Oracle 分析函数(窗口函数)基于和当前数据行相关的一组数据计算出一个结果。窗口函数使用OVER子句进行定义,包括PARTITION BY、ORDER BY以及frame_clause三个选项。常见的窗口函数可以分为以下几类:聚合窗口函数、排名窗口函数以及取值窗口函数。

第 IV 部分 高级功能

    第 20 篇 DML 语句之数据插入。介绍 Oracle 中插入数据的INSERT语句以及多表插入的INSERT ALL语句。
    第 21 篇 DML 语句之数据更新。介绍 Oracle 中更新数据的UPDATE语句。
    第 22 篇 DML 语句之数据删除。介绍 Oracle 中删除数据的DELETE语句。
    第 23 篇 DML 语句之数据合并。介绍 Oracle 中合并数据的MERGE语句。
    第 24 篇 事务与并发控制。介绍 Oracle 中的数据库事务概念和 ACID 属性,并发事务可能带来的问题以及 4 种隔离级别,演示了如何使用事务控制语句(TCL)对事务进行处理,包括BEGIN、COMMIT、ROLLBACK以及SAVEPOINT语句。
    第 25 篇 索引与优化。本篇介绍 Oracle 中的索引概念,包括 B-树索引、哈希索引等类型,唯一索引、多列索引、函数索引、部分索引以及覆盖索引等方式。如何利用索引优化数据库的查询性能,以及创建索引、查看索引、维护索引等操作。
    第 26 篇 视图。介绍 Oracle 中视图(View)的概念和作用,如何创建、修改、删除视图,以及可更新视图的使用与控制。
    第 27 篇 同义词。

第 V 部分 PL/SQL 存储过程

    第 28 篇 PL/SQL 基础。PL/SQL 简介和代码块结构,变量声明与赋值。
    第 29 篇 条件控制语句。
    第 30 篇 循环控制语句。
    第 31 篇 异常处理。
    第 32 篇 游标。
    第 33 篇 记录与集合。
    第 34 篇 存储过程与函数。
    第 35 篇 PL/SQL 程序包。
    第 36 篇 触发器。介绍 Oracle 触发器(trigger)的概念和作用,DML 触发器、DDL 触发器以及事件触发器的创建、修改以及删除操作。

第 VI 部分 管理基础

    第 37 篇 Oracle 体系结构。
    第 38 篇 Oracle 服务和监听管理。
    第 39 篇 角色与用户。Oracle 使用角色的概念来管理数据库的访问权限。角色可以被看成是一个数据库用户或者是一个组。GRANT和REVOKE语句分别用于对象的授权和撤销权限。
    第 40 篇 管理表空间。
    第 41 篇 管理数据表。介绍如何管理数据库中的表,包括创建表、修改表以及删除表等操作。
    第 42 篇 数据类型。介绍 Oracle 支持的各种数据类型。
    第 43 篇 序列。
    第 44 篇 临时表。全局临时表和私有临时表。
    第 45 篇 数据库链接。
    第 46 篇 备份与恢复。服务器系统错误、硬件故障或者人为失误都可能导致数据的丢失或损坏。因此,备份和恢复对于数据库的高可用性至关重要。数据库管理员应该根据业务的需求制定合适的备份策略,并提前演练各种故障情况下的恢复过程,做到有备无患。

第 VII 部分 应用程序接口

    第 47 篇 Java 访问 Oracle。在 Java 程序中利用 JDBC 接口连接和操作 Oracle 数据库,包括创建和删除表、执行数据的增删改查操作、事务的管理以及调用存储过程。
    第 48 篇 Python 访问 Oracle。利用 Python 驱动程序接口 cx_Oracle 连接和操作 Oracle 数据库,包括创建和删除表、执行数据的增删改查操作、事务的管理以及调用存储过程和函数。

第 VIII 部分 实战篇

    SQL 完整性约束。SQL 标准中的 6 种完整性约束,以及主流数据库中的实现。
    实战 SQL:实现百度、高德等地图中的地铁换乘线路查询。
    实战 SQL:微信、微博等社交网络中的友好、粉丝关系分析。
    实战 SQL:销售数据的小计/合计/总计以及数据透视表。
    实战 SQL:银行等金融机构可疑支付交易的监测。
    实战 SQL:亚马逊、京东等电商平台的销售排行榜和飙升榜。
    Oracle 常见面试题解析。

专栏寄语

希望大家通过本专栏的学习,能够熟练掌握 Oracle 数据库开发和管理基础,同时对最新的 Oracle 特性和高级功能有所了解,并且在将来的工作中学以致用。如果你在学习的过程中有任何问题,欢迎随时留言,留言必回。让我们一起学习一起成长!