杰瑞科技汇

Oracle数据库入门教程怎么学?

Oracle 数据库入门教程

第一部分:初识 Oracle

什么是 Oracle 数据库?

Oracle 数据库就是一个大型的、高性能的、可靠的关系型数据库管理系统,你可以把它想象成一个极其智能、安全且容量巨大的“电子文件柜”。

Oracle数据库入门教程怎么学?-图1
(图片来源网络,侵删)
  • 关系型: 数据被存储在一系列相互关联的“二维表格”(称为“表”,Table)中,每个表都有明确的列(字段)和行(记录),一个“学生信息表”可以有“学号”、“姓名”、“年龄”等列。
  • 管理系统: 它不仅仅是存储数据,还提供了强大的工具来管理这些数据,
    • 增、删、改、查 数据。
    • 保证数据安全(通过用户权限控制)。
    • 保证数据完整性(通过约束防止错误数据)。
    • 处理并发访问(当多个用户同时操作时保证数据一致)。

Oracle 数据库的特点

  • 大型企业级: Oracle 是世界上最流行的数据库之一,被广泛应用于金融、电信、政府、大型电商等对数据稳定性、安全性和性能要求极高的领域。
  • 功能强大: 提供了极其丰富的功能,如高级查询、数据仓库、联机分析处理、高可用性方案等。
  • 平台独立: 可以运行在 Windows、Linux、Unix 等多种操作系统上。
  • 收费: 与 MySQL、PostgreSQL 等开源数据库不同,Oracle 是商业软件,需要付费使用(但有一个免费的 Express Edition 版本可供学习)。

第二部分:核心概念

在学习操作之前,必须先理解几个核心概念,这就像学开车前要先了解油门、刹车、方向盘一样。

数据库、实例、表空间

  • 数据库: 物理上,它是一系列存储在硬盘上的数据文件(.dbf)、控制文件、日志文件等的集合,逻辑上,它是一个存放所有数据的地方。
  • 实例: 这是 Oracle 数据库的“大脑”和“心脏”,它是一组在内存中运行的进程和内存结构,当你启动一个 Oracle 数据库时,你实际上是在启动一个实例,实例负责管理数据文件,处理用户请求。
    • 关系: 实例操作数据库文件,一个实例只能对应一个数据库,但一个数据库在特定时间只能被一个实例打开。
  • 表空间: 这是数据库在逻辑上的“分区”,一个数据库可以被划分为多个表空间,每个表空间用于存放特定类型的数据。
    • SYSTEM 表空间:存放系统核心数据。
    • USERS 表空间:存放普通用户的表和索引。
    • UNDOTBS1 表空间:用于事务回滚。
    • 好处: 方便管理、备份和性能优化。

用户、模式、对象

  • 用户: 就像一个操作数据库的“账户”,每个用户都有自己的用户名和密码,并被授予特定的权限。
  • 模式: 一个用户所拥有的所有数据库对象的集合,一个用户的模式名就是其用户名,当你以 scott 用户登录时,你就在操作 scott 这个模式。
  • 对象: 存储在模式下的具体数据结构,最常见的有:
    • 表: 存储数据的基本单位,由行和列组成。
    • 视图: 一个虚拟的表,其数据来源于一个或多个真实的表,可以理解为一种“预定义好的查询”。
    • 索引: 为了提高查询速度而创建的对象,类似于一本书的目录。
    • 序列: 用于生成唯一数字的数据库对象。
    • 约束: 用于保证表中数据的有效性和完整性,例如主键约束、非空约束等。

第三部分:安装与连接

安装 Oracle 数据库

对于初学者,建议使用 Oracle Database Express Edition (XE),它是免费的,功能也足够学习使用。

  • 下载: 访问 Oracle 官网,搜索 "Oracle Database XE",下载对应你操作系统的版本(Windows 或 Linux)。
  • 安装: 按照安装向导一步步操作即可,安装过程中会设置一个管理员密码(SYS, SYSTEM 等超级用户)。
  • 注意: 安装时请记住你设置的密码和端口号(默认是 1521)。

连接到数据库

连接 Oracle 数据库需要两个信息:

  1. 主机名: 通常是 localhost(如果你安装在本机)。
  2. 端口: 默认是 1521
  3. 服务名/SID: 在安装 XE 时,它会默认创建一个服务名,通常是 XE

连接工具推荐:

Oracle数据库入门教程怎么学?-图2
(图片来源网络,侵删)
  • *SQLPlus:** Oracle 自带的命令行工具,最基础,也最常用。
    • Windows: 开始菜单 -> Oracle -> Application Development -> SQL*Plus。
    • Linux: 在终端输入 sqlplus / as sysdba (以管理员身份登录) 或 sqlplus scott/tiger@localhost/XE (以普通用户登录)。
  • SQL Developer: Oracle 提供的图形化界面工具,非常友好,推荐初学者使用。
    • 下载并安装 SQL Developer。
    • 打开后,新建连接:
      • 连接名: 随便起一个,如 MyOracleXE
      • 用户名: scott (Oracle 提供的示例用户)。
      • 密码: tiger (默认密码)。
      • 角色: Default
      • 连接类型: Basic
      • 主机名: localhost
      • 端口: 1521
      • 服务名: XE
    • 点击“连接”,即可看到图形化界面。

第四部分:SQL 语言基础

SQL (Structured Query Language) 是与 Oracle 数据库交互的标准语言,它主要分为四类:

  1. DQL (Data Query Language): 数据查询语言
  2. DDL (Data Definition Language): 数据定义语言
  3. DML (Data Manipulation Language): 数据操纵语言
  4. DCL (Data Control Language): 数据控制语言

我们主要学习前三类。

DDL - 定义和管理表结构

-- 创建一个表
CREATE TABLE employees (
    id          NUMBER(4) PRIMARY KEY,
    name        VARCHAR2(50) NOT NULL,
    salary      NUMBER(10, 2),
    hire_date   DATE
);
-- 修改表结构 (增加一列)
ALTER TABLE employees ADD (
    department_id NUMBER(3)
);
-- 删除表
DROP TABLE employees;
  • NUMBER: 数字类型。
  • VARCHAR2: 可变长度字符串。
  • DATE: 日期类型。
  • PRIMARY KEY: 主键约束,保证唯一性。
  • NOT NULL: 非空约束。

DML - 操作表中的数据

-- 插入数据
INSERT INTO employees (id, name, salary, hire_date) VALUES (1001, '张三', 8000.00, TO_DATE('2025-01-15', 'YYYY-MM-DD'));
-- 插入多行数据
INSERT INTO employees VALUES (1002, '李四', 9000.00, TO_DATE('2025-05-20', 'YYYY-MM-DD'), 10);
INSERT INTO employees VALUES (1003, '王五', 7500.00, TO_DATE('2025-03-10', 'YYYY-MM-DD'), 20);
-- 更新数据
UPDATE employees SET salary = 8500.00 WHERE id = 1001;
-- 删除数据
DELETE FROM employees WHERE id = 1003;

DQL - 查询数据 (最重要的部分)

-- 查询所有列和所有行
SELECT * FROM employees;
-- 查询特定列
SELECT name, salary FROM employees;
-- 使用 WHERE 子句进行条件查询
SELECT * FROM employees WHERE salary > 8000;
-- 使用 AND/OR 组合条件
SELECT * FROM employees WHERE salary > 8000 AND department_id = 10;
-- 使用 ORDER BY 排序
SELECT * FROM employees ORDER BY salary DESC; -- DESC: 降序, ASC: 升序 (默认)
-- 使用聚合函数
SELECT COUNT(*) FROM employees; -- 计算总人数
SELECT AVG(salary) FROM employees; -- 计算平均工资
SELECT MAX(salary), MIN(salary) FROM employees; -- 计算最高和最低工资
-- 使用 GROUP BY 分组
SELECT department_id, AVG(salary) FROM employees GROUP BY department_id;

第五部分:进阶学习路径

当你掌握了以上基础后,可以按照以下路径继续深入:

  1. PL/SQL 编程:

    学习 Oracle 的过程化语言,用于编写存储过程、函数、触发器等,可以实现更复杂的业务逻辑。

  2. 高级查询:

    • 多表连接: JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN
    • 子查询: 在一个查询中嵌套另一个查询。
    • 集合操作: UNION, INTERSECT, MINUS
  3. 数据库对象:

    • 深入学习 视图索引 的创建和使用。
    • 学习 序列 的创建和获取。
  4. 用户与权限管理:

    • 学习如何创建新用户,并使用 GRANTREVOKE 命令来授予或收回权限。
  5. 事务控制:

    • 学习 COMMIT (提交)、ROLLBACK (回滚)、SAVEPOINT (保存点) 的概念,确保数据操作的原子性。

第六部分:学习资源推荐

  • 官方文档: Oracle Documentation (最权威,但可能对初学者稍显复杂)
  • Oracle Learning Library: Oracle Learning Library (官方免费课程)
  • W3Schools SQL Tutorial: W3Schools SQL (非常好的 SQL 基础入门)
  • 书籍:
    • 《Oracle Database 12c SQL》: 经典入门书籍。
    • 《Oracle PL/SQL Programming》: PL/编程的“圣经”。

总结与建议

  • 动手实践: 数据库学习是“做”出来的,不是“看”出来的,一定要亲手敲每一行代码。
  • scott 用户开始: scott 用户下有 emp (员工) 和 dept (部门) 两个经典示例表,非常适合练习连接查询等操作。
  • 保持耐心: 遇到错误是正常的,仔细阅读错误信息,多搜索多请教。
  • 先理解,再记忆: 先搞懂 为什么 要这么做,再去记忆 怎么做

祝你学习顺利!

分享:
扫描分享到社交APP
上一篇
下一篇