Oracle 21cXE安装后默认不包含HR等示例表,用户可通过手动安装官方示例模式进行SQL练习。
本文详细介绍了三种示例模式的安装方法:
- 现代业务模型CO模式,适合大数据场景;
- 经典教学SCOTT模式(含EMP/DEPT表),适配传统教程;
- HR人力资源模式。
重点说明了CO模式的安装步骤,包括下载脚本、连接PDB、创建表空间等关键操作,并对比了不同示例模式的特点。
安装后用户可获得完整的练习环境,其中SCOTT模式包含14条记录的EMP表,与Oracle 11g教学视频完全兼容。
关联阅读推荐
(AI总结版)完整操作流程:从零配置 Oracle 21c XE 开发环境(安装 CO 示例、安装 SCOTT 教学示例)
如果你需要 HR 示例表来练习
Oracle 21c XE 在安装时并没有自动安装那些示例表(比如经典的 HR 员工表)。
🔍 结论分析
-
之前看到的"很多表" :当你用
SYSTEM等高权限账号登录时,看到的是 Oracle 的系统表 (如数据字典表),它们用于管理数据库本身,不是拿来练 SQL 的,也绝对不能动。 -
当前状态 :你现在用的
BIGDATA_DEV是一个普通用户,下面只有自己创建的业务表,这才是我们进行开发练习的"干净"环境。
很多教材(尤其是考证类)会用到经典的 EMPLOYEES(员工表)、DEPARTMENTS(部门表)等 HR 模式。如果你确实需要,可以手动安装。
安装示例脚本(v23.3)
新版安装步骤(适用于你的 21c XE)
建议你试试新的 CO (Customer Orders) 模式,它比经典的 HR 模式数据量更大,更适合大数据开发场景。
第一步:下载并准备脚本
-
访问官方发布页:https://github.com/oracle-samples/db-sample-schemas/releases/latest
-
下载
Source code (zip)文件并解压。
第二步:连接并安装(以 CO 为例)
-
打开终端,用
sqlplus以SYSTEM用户连接到你的 PDB(关键点):bash
sqlplus system@localhost:1521/XEPDB1 -
切换到解压后的脚本目录(注意用你自己的实际路径):
bash
cd /your_path/db-sample-schemas-23.3/customer_orders -
直接运行安装脚本,按提示输入 CO 用户的密码、默认表空间等即可:
bash
@co_install.sql
安装其他 Schema 也一样:
-
HR (人力资源) :进入
human_resources文件夹,运行@hr_install.sql。 -
SH (销售历史) :数据量较大,需要使用
SQLcl工具来安装。
💡 几点提醒
-
OE/PM 已归档 :
OE和PM这两个老示例已不再维护,官方建议使用新的CO模式。 -
连接 PDB :务必确认你连接的是
XEPDB1(或你的 PDB 名),而不是CDB$ROOT,否则创建的用户会有问题。 -
关于 SQLcl :
SQLcl是 Oracle 的命令行工具,比SQL*Plus功能更强。安装SH模式时会用到,需要的话我可以告诉你如何下载和使用。
下载 Source code (zip) 文件并解压。文件解压到哪有要求吗
解压位置没有硬性要求,只要满足下面两个基本条件,解压到哪里都可以:
核心要求:路径必须"干净"
路径中不能有空格 :比如
C:\Program Files\就不行。路径中不能有中文 :比如
D:\我的下载\就不行。📁 推荐做法
- 简单路径,方便操作 :建议直接解压到一个简短的纯英文目录,例如
D:\sample-schemas或C:\temp\db-sample-schemas。这样后面在 SQL*Plus 或 SQLcl 里切换目录时不容易输错。💡 注意事项
只需解压,无需移动 :官方脚本是用相对路径来调用其他文件的,所以只要保持解压出来的文件夹结构完整就行,不需要 把它复制到 Oracle 安装目录(比如
$ORACLE_HOME)下。避免过长路径:文件夹名不要太长,总路径长度最好控制在 80 个字符以内,可以避免 Windows 一些莫名其妙的路径限制问题。
总结一下 :在
D:盘根目录下新建一个叫sample的文件夹,把下载的db-sample-schemas-23.3.zip解压进去,这样路径就是D:\sample\db-sample-schemas-23.3\,非常干净,是很好的选择。
打开终端,用 sqlplus 以 SYSTEM 用户连接到你的 PDB(关键点),在哪里打开终端吗,编辑器里吗
是在你电脑上的命令提示符(或PowerShell) 里打开,不是在 SQL Developer 的编辑器里。
💻 具体操作步骤
第一步:打开命令提示符
-
按键盘上的
Win + R键 -
输入
cmd,然后按回车
第二步:切换到解压后的脚本目录
cmd
cd /d D:\sample\db-sample-schemas-23.3\customer_orders
(把路径换成你实际的解压路径)
第三步:用 sqlplus 连接到你的 PDB
cmd
sqlplus system@localhost:1521/XEPDB1
系统会提示输入 system 用户的密码,输入时屏幕不会显示星号,输完按回车即可。
登录成功后,你会看到类似这样的提示符:
cmd
SQL>
这就表示你已经成功连接到数据库了。
第四步:运行安装脚本
在 SQL> 提示符后面输入:
sql
@co_install.sql
然后按回车,脚本就会开始执行,按照提示输入 CO 用户的密码、表空间等信息即可。
⚠️ 常见问题
-
'sqlplus' 不是内部或外部命令 :说明 Oracle 没有加到系统环境变量里。解决方法:开始菜单找到
Oracle文件夹,右键SQL*Plus选择"打开文件位置",在那个文件夹里打开终端即可;或者用%ORACLE_HOME%\bin\sqlplus完整路径。 -
连接时报 ORA-12541 或 ORA-12514 :检查一下服务名是不是
XEPDB1,你的 21c XE 安装时默认 PDB 名就是这个。
按照提示输入 CO 用户的密码、表空间等信息即可,表空间写什么呢
当脚本提示输入表空间时,根据你的环境,可以有以下几种填写方式:
📋 方案一:直接填写现有的 USERS 表空间(最简单)
直接输入:USERS
这是最简单、最稳妥的做法。
| 提示项 | 建议输入 |
|---|---|
| default tablespace | USERS |
| temporary tablespace | TEMP |
优点:USERS 表空间在你的 21c XE 中已经存在,无需额外创建,直接可用。
说明:USERS 是 Oracle 数据库安装时自动创建的默认永久表空间,专门用于存放普通用户的数据对象(如表、索引等)。TEMPORARY 表空间则用于处理排序等临时操作。对于 CO 示例模式来说,使用这两个表空间完全足够。
📋 方案二:创建一个专属表空间(更规范)
如果你想更规范地管理,可以按以下步骤操作:
第一步:先在 SQL*Plus 中创建表空间
在运行 @co_install.sql 之前,先在 SQL*Plus 中执行:
sql
-- 查询你数据库的实际数据文件路径(确认目录存在)
SELECT name FROM v$datafile;
-- 创建专属表空间(用查到的路径)
CREATE TABLESPACE co_data
DATAFILE 'D:\APPDATA\DATABASE\ORADATA\XE\XEPDB1\co_data01.dbf'
SIZE 500M
AUTOEXTEND ON NEXT 100M
MAXSIZE 2G;
注意 :请将路径中的
D:\APPDATA\DATABASE\ORADATA\XE\XEPDB1\替换为你电脑上的实际路径。可以通过SELECT name FROM v$datafile;查询确认。
第二步:然后在脚本提示时输入
| 提示项 | 建议输入 |
|---|---|
| default tablespace | co_data |
| temporary tablespace | TEMP |
优点:CO 模式的所有数据都放在独立的表空间中,便于管理和维护。
📊 两种方案对比
| 对比项 | 方案一:USERS | 方案二:新建专属表空间 |
|---|---|---|
| 复杂度 | 最简单,直接输入 | 需先手动创建 |
| 管理性 | 数据混在一起 | 独立管理,便于维护 |
| 适用场景 | 学习练习够用 | 更规范,推荐 |
💎 推荐
-
学习/练习目的 :直接用 方案一 ,输入
USERS即可,省时省力。 -
希望规范管理 :按 方案二 先创建专属表空间,再输入
co_data。
两种方式都能顺利完成 CO 示例模式的安装,不影响后续使用。
选方案二,在运行 @co_install.sql 之前,已经运行了,怎么退回来,还是重新打开一个终端
不需要重新打开终端,直接在同一个 SQL*Plus 会话中退出来即可。
🔄 退出当前安装脚本
如果脚本已经开始执行并等待你输入信息,按 Ctrl + C 即可中断。如果已经输入了一些信息,脚本可能会继续执行几步,可以多按几次 Ctrl + C 强制中断。
中断后会回到 SQL> 提示符。
📝 下一步操作
在 SQL> 提示符下,执行以下命令创建表空间:
sql
CREATE TABLESPACE co_data
DATAFILE 'D:\APPDATA\DATABASE\ORADATA\XE\XEPDB1\co_data01.dbf'
SIZE 500M
AUTOEXTEND ON NEXT 100M;
✅ 预期结果
执行成功后,应该显示:
text
Tablespace created.
🚀 然后继续安装 CO 示例
sql
@co_install.sql
📋 脚本提示输入参考
当脚本询问时,按以下内容填写:
| 提示 | 输入 |
|---|---|
| password for CO user | co123(或你自己设的密码) |
| default tablespace | co_data |
| temporary tablespace | TEMP |
注意:输入密码时屏幕不会显示星号,这是正常的,输完按回车即可。
🔍 验证安装
安装完成后,可以用新用户连接测试:
cmd
sqlplus co123@localhost:1521/XEPDB1
登录成功后,查看有哪些表:
sql
SELECT table_name FROM user_tables;
应该会看到 CUSTOMERS、ORDERS、PRODUCTS 等表。
Enter a tablespace for CO [USERS]: co_data Do you want to overwrite the schema, if it already exists? [YES|no]:
输入
YES(或者直接按回车,因为YES是大写的默认选项)。📋 解释
[YES|no]表示默认选项是 YES ,直接按回车就相当于输入了YES选择
YES的意思是:如果CO这个用户已经存在,就覆盖它(删除旧的,重新创建)💡 操作建议
直接按 回车键 即可,脚本会自动继续执行。
⏳ 接下来
脚本会开始创建 CO 用户、导入数据、创建表结构。整个过程可能需要 1-3 分钟,耐心等待即可。
CO 示例模式安装成功!
从安装验证结果来看,所有表的数据行数都完全匹配预期:
| 表名 | 数据行数 | 用途说明 |
|---|---|---|
customers |
392 | 客户信息表 |
stores |
23 | 门店信息表 |
products |
46 | 产品信息表 |
orders |
1,950 | 订单头表 |
shipments |
1,892 | 发货信息表 |
order_items |
3,914 | 订单明细表 |
inventory |
566 | 库存信息表 |
✅ 验证安装
现在可以用 CO 用户连接测试一下:
在命令提示符中执行:
cmd
sqlplus co@localhost:1521/XEPDB1
(密码输入你刚才设置的,比如 co123)
登录成功后,可以试试几个查询:
sql
-- 查看有哪些表
SELECT table_name FROM user_tables ORDER BY table_name;
查看 ORDERS 表有哪些列
sql
DESC orders;
💡 下一步建议
-
在 SQL Developer 中添加 CO 连接
-
用户名:
co -
密码:你设置的密码
-
服务名:
XEPDB1
-
-
练习多表关联查询
💡 小提示
CO 示例的数据量(几千条)适合快速验证逻辑
你之前
BIGDATA_DEV下的百万级ORDERS表适合性能测试和优化练习两个环境可以配合使用:在 CO 里写对逻辑,在 BIGDATA_DEV 里跑大数据量
没找到示例表
你当前连接的是 BIGDATA_DEV 用户,而不是我们刚才安装的 CO 用户。
BIGDATA_DEV 用户下只有你自己创建的 ORDERS 一张表(红框里显示的正是这张表),而 CO 示例模式的 7 张表(CUSTOMERS、PRODUCTS、STORES 等)是在 CO 用户下的。
解决方法
在 SQL Developer 中新建一个连接到 CO 用户即可:
-
点击左上角的绿色
+号(新建连接) -
填写以下信息:
| 配置项 | 填写内容 |
|---|---|
| 连接名 | CO示例(可自定义) |
| 用户名 | co |
| 密码 | 你安装时设置的密码(如 co123) |
| 主机名 | localhost |
| 端口 | 1521 |
| 服务名 | XEPDB1 |
- 点击 测试 → 显示"成功"后点击 保存 → 点击 连接
CO示例中的表和Oracle 11g中的示例表 EMP一样吗,因为现在在看教学视频,里面用的是Oracle 11g中的示例表 EMP
不一样。教学视频里用的 EMP 表属于 SCOTT 用户下的经典示例模式,和你安装的 CO 用户下的表结构不同。
两者的主要区别如下:
| 对比维度 | 教学视频中的 EMP 表 (SCOTT 用户) | 你刚安装的 CO 示例模式 |
|---|---|---|
| 核心表名 | EMP (雇员)、DEPT (部门)、SALGRADE (薪资等级) |
CUSTOMERS (客户)、ORDERS (订单)、PRODUCTS (产品) 等 7 张表 |
| 数据特点 | 基础数据量,非常适合练习单表查询和简单关联 | 模拟真实业务(订单/库存/发货),关联逻辑更复杂 |
| 设计年代 | Oracle 早期版本推出的经典教学模型 (至今仍广泛使用) | 新版推出的现代业务模型 (23c 官方示例) |
简单来说,如果你跟着视频敲代码,用 CO 的表会报错。如果你想要和视频里一样的 EMP 表,我们需要手动创建经典的 SCOTT 用户。
手动创建经典的 SCOTT 用户
在 Oracle 21c XE 中创建经典的 SCOTT 用户,并导入 EMP、DEPT 这些教学用的示例表。
📋 SCOTT 用户简介
SCOTT 用户是 Oracle 官方预置的经典教学示例,包含以下 4 张表:
| 表名 | 说明 | 数据量 |
|---|---|---|
EMP |
员工表 | ~14 条记录 |
DEPT |
部门表 | 4 条记录 |
SALGRADE |
薪资等级表 | 5 条记录 |
BONUS |
奖金表 | 空表(预留) |
这套表虽然数据量小,但结构经典、关系清晰,覆盖了 SQL 学习的核心知识点:多表连接、分组统计、子查询、自关联等,非常适合跟着教学视频练习。
🔧 安装步骤
第一步:获取 scott.sql 脚本
在 Oracle 21c XE 中,SCOTT 用户不再是预置的,但脚本文件仍然存在。请按以下路径查找:
text
D:\appData\database\product\21c\dbhomeXE\rdbms\admin\scott.sql
如果找不到 :说明你的安装目录结构略有不同。可以在
D:\appData\database\目录下搜索scott.sql文件。
如果确实没有这个文件,我可以把完整的 scott.sql 脚本内容发给你,你复制保存为一个 .sql 文件即可。
第二步:连接数据库并执行脚本
-
打开命令提示符 (Win + R → 输入
cmd→ 回车) -
用 SYSTEM 用户连接到你的 PDB (关键:必须连
XEPDB1):cmd
sqlplus system@localhost:1521/XEPDB1输入你安装时设置的 SYSTEM 密码。
-
执行 scott.sql 脚本:
sql
@D:\appData\database\dbhomeXE\rdbms\admin\scott.sql(把路径换成你实际找到的路径)
脚本会自动完成以下操作:
-
创建
SCOTT用户,密码默认为TIGER -
创建
DEPT、EMP、SALGRADE、BONUS四张表 -
插入示例数据
-
提交事务
第三步:解锁 SCOTT 用户(如果需要)
如果脚本执行后无法登录,可以手动解锁:
sql
ALTER USER scott IDENTIFIED BY tiger ACCOUNT UNLOCK;
GRANT CONNECT, RESOURCE TO scott;
✅ 第四步:验证安装
方法一:命令行验证
cmd
sqlplus scott/tiger@localhost:1521/XEPDB1
登录成功后执行:
sql
SELECT * FROM emp;
SELECT * FROM dept;
方法二:SQL Developer 中验证
新建连接,填写:
| 配置项 | 填写内容 |
|---|---|
| 用户名 | scott |
| 密码 | tiger |
| 主机名 | localhost |
| 端口 | 1521 |
| 服务名 | XEPDB1 |
📊 你现在有三个用户环境了
| 用户名 | 包含内容 | 数据量 | 用途 |
|---|---|---|---|
BIGDATA_DEV |
ORDERS |
100万行 | 大数据量性能测试 |
CO |
7张关联表 | 数千条 | 现代业务模型练习 |
SCOTT |
EMP、DEPT 等 |
~20条 | 跟着教学视频练习 |
💡 与视频教程对应
教学视频中使用的 SQL 示例,现在可以直接在你的环境中运行了:
sql
-- 视频中的查询示例
SELECT * FROM emp;
SELECT ename, job, sal FROM emp WHERE deptno = 10;
SELECT e.ename, d.dname FROM emp e JOIN dept d ON e.deptno = d.deptno;
SELECT deptno, AVG(sal) FROM emp GROUP BY deptno;
安装过程中遇到的问题
执行 @scott.sql 提示选一个应用打开文件?
这不是报错,而是 Windows 系统弹窗让你选择用什么程序打开
.sql文件。原因 :你输入了
@scott.sql但忘了先进入 SQL*Plus ,系统把scott.sql当成了一个需要打开的文件,而不是要执行的脚本。
SP2-0310: 无法打开文件 "scott.sql"
这个错误说明 SQLPlus 在当前目录下找不到
scott.sql文件。host cd命令只是临时切换了目录,但对 SQL Plus 的文件查找路径没有生效。
其他问题
你用的是旧版脚本,不需要输入任何参数,会自动执行。之前没反应可能是因为脚本执行被卡住了。
问题很清楚:SCOTT 用户已经存在 (之前脚本可能部分执行成功了),但密码不是 tiger,导致无法登录。
你在 SQL*Plus 内部输入了 sqlplus scott/tiger@localhost:1521/XEPDB1,这是命令行 命令,不能在 SQL> 提示符下执行。
退出当前 SQL*Plus
在
SQL>提示符下输入:sql
EXIT在 Windows 命令提示符中连接 SCOTT
现在你回到了
PS C:\Users\86178>或C:\>提示符下
🎉 完美!SCOTT 用户创建成功!
在 SQL Developer 中新建 SCOTT 连接
📝 操作步骤
第一步:点击新建连接图标
在 SQL Developer 左上角,点击绿色的 + 号(或右键点击"连接" → 选择"新建连接")。
第二步:填写连接信息
| 配置项 | 填写内容 |
|---|---|
| 连接名 | SCOTT教学(或你喜欢的名字) |
| 用户名 | scott |
| 密码 | tiger |
| 主机名 | localhost |
| 端口 | 1521 |
| 服务名 | XEPDB1 |
第三步:测试并保存
-
点击右下角的 "测试" 按钮
-
左下角显示 "成功" 后,点击 "保存"
-
点击 "连接"