Oracle 数据库入门教程
第一部分:初识 Oracle
什么是 Oracle 数据库?
Oracle 数据库就是一个大型的、高性能的、可靠的关系型数据库管理系统,你可以把它想象成一个极其智能、安全且容量巨大的“电子文件柜”。

(图片来源网络,侵删)
- 关系型: 数据被存储在一系列相互关联的“二维表格”(称为“表”,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 数据库需要两个信息:
- 主机名: 通常是
localhost(如果你安装在本机)。 - 端口: 默认是
1521。 - 服务名/SID: 在安装 XE 时,它会默认创建一个服务名,通常是
XE。
连接工具推荐:

(图片来源网络,侵删)
- *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 数据库交互的标准语言,它主要分为四类:
- DQL (Data Query Language): 数据查询语言
- DDL (Data Definition Language): 数据定义语言
- DML (Data Manipulation Language): 数据操纵语言
- 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;
第五部分:进阶学习路径
当你掌握了以上基础后,可以按照以下路径继续深入:
-
PL/SQL 编程:
学习 Oracle 的过程化语言,用于编写存储过程、函数、触发器等,可以实现更复杂的业务逻辑。
-
高级查询:
- 多表连接:
JOIN,LEFT JOIN,RIGHT JOIN,FULL JOIN。 - 子查询: 在一个查询中嵌套另一个查询。
- 集合操作:
UNION,INTERSECT,MINUS。
- 多表连接:
-
数据库对象:
- 深入学习 视图、索引 的创建和使用。
- 学习 序列 的创建和获取。
-
用户与权限管理:
- 学习如何创建新用户,并使用
GRANT和REVOKE命令来授予或收回权限。
- 学习如何创建新用户,并使用
-
事务控制:
- 学习
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(部门) 两个经典示例表,非常适合练习连接查询等操作。 - 保持耐心: 遇到错误是正常的,仔细阅读错误信息,多搜索多请教。
- 先理解,再记忆: 先搞懂
为什么要这么做,再去记忆怎么做。
祝你学习顺利!
