Oracle 21c XE 安装后默认不包含HR等示例表,CO 模式、SCOTT 模式安装过程记录

Oracle 21cXE安装后默认不包含HR等示例表,用户可通过手动安装官方示例模式进行SQL练习。


本文详细介绍了三种示例模式的安装方法:

  1. 现代业务模型CO模式,适合大数据场景;
  2. 经典教学SCOTT模式(含EMP/DEPT表),适配传统教程;
  3. 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 模式数据量更大,更适合大数据开发场景。


第一步:下载并准备脚本

  1. 访问官方发布页:https://github.com/oracle-samples/db-sample-schemas/releases/latest

  2. 下载 Source code (zip) 文件并解压。

第二步:连接并安装(以 CO 为例)

  1. 打开终端,用 sqlplusSYSTEM 用户连接到你的 PDB(关键点):

    bash

    复制代码
    sqlplus system@localhost:1521/XEPDB1
  2. 切换到解压后的脚本目录(注意用你自己的实际路径):

    bash

    复制代码
    cd /your_path/db-sample-schemas-23.3/customer_orders
  3. 直接运行安装脚本,按提示输入 CO 用户的密码、默认表空间等即可:

    bash

    复制代码
    @co_install.sql

安装其他 Schema 也一样

  • HR (人力资源) :进入 human_resources 文件夹,运行 @hr_install.sql

  • SH (销售历史) :数据量较大,需要使用 SQLcl 工具来安装。

💡 几点提醒

  • OE/PM 已归档OEPM 这两个老示例已不再维护,官方建议使用新的 CO 模式。

  • 连接 PDB :务必确认你连接的是 XEPDB1(或你的 PDB 名),而不是 CDB$ROOT,否则创建的用户会有问题。

  • 关于 SQLclSQLcl 是 Oracle 的命令行工具,比 SQL*Plus 功能更强。安装 SH 模式时会用到,需要的话我可以告诉你如何下载和使用。


下载 Source code (zip) 文件并解压。文件解压到哪有要求吗


解压位置没有硬性要求,只要满足下面两个基本条件,解压到哪里都可以:


核心要求:路径必须"干净"
  • 路径中不能有空格 :比如 C:\Program Files\ 就不行。

  • 路径中不能有中文 :比如 D:\我的下载\ 就不行。

📁 推荐做法
  • 简单路径,方便操作 :建议直接解压到一个简短的纯英文目录,例如 D:\sample-schemasC:\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;

应该会看到 CUSTOMERSORDERSPRODUCTS 等表。


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;

💡 下一步建议

  1. 在 SQL Developer 中添加 CO 连接

    • 用户名:co

    • 密码:你设置的密码

    • 服务名:XEPDB1

  2. 练习多表关联查询


💡 小提示

  • CO 示例的数据量(几千条)适合快速验证逻辑

  • 你之前 BIGDATA_DEV 下的百万级 ORDERS 表适合性能测试和优化练习

  • 两个环境可以配合使用:在 CO 里写对逻辑,在 BIGDATA_DEV 里跑大数据量

没找到示例表


你当前连接的是 BIGDATA_DEV 用户,而不是我们刚才安装的 CO 用户。

BIGDATA_DEV 用户下只有你自己创建的 ORDERS 一张表(红框里显示的正是这张表),而 CO 示例模式的 7 张表(CUSTOMERSPRODUCTSSTORES 等)是在 CO 用户下的。


解决方法

在 SQL Developer 中新建一个连接到 CO 用户即可:

  1. 点击左上角的绿色 + 号(新建连接)

  2. 填写以下信息:

配置项 填写内容
连接名 CO示例(可自定义)
用户名 co
密码 你安装时设置的密码(如 co123
主机名 localhost
端口 1521
服务名 XEPDB1
  1. 点击 测试 → 显示"成功"后点击 保存 → 点击 连接

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 文件即可。

第二步:连接数据库并执行脚本

  1. 打开命令提示符 (Win + R → 输入 cmd → 回车)

  2. 用 SYSTEM 用户连接到你的 PDB (关键:必须连 XEPDB1):

    cmd

    复制代码
    sqlplus system@localhost:1521/XEPDB1

    输入你安装时设置的 SYSTEM 密码。

  3. 执行 scott.sql 脚本

    sql

    复制代码
    @D:\appData\database\dbhomeXE\rdbms\admin\scott.sql

    (把路径换成你实际找到的路径)

脚本会自动完成以下操作:

  • 创建 SCOTT 用户,密码默认为 TIGER

  • 创建 DEPTEMPSALGRADEBONUS 四张表

  • 插入示例数据

  • 提交事务

第三步:解锁 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 EMPDEPT ~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

第三步:测试并保存

  1. 点击右下角的 "测试" 按钮

  2. 左下角显示 "成功" 后,点击 "保存"

  3. 点击 "连接"

相关推荐
2401_837163891 小时前
CSS如何实现网页打印样式优化_利用@media print重写布局
jvm·数据库·python
李白客2 小时前
能源系统数据库:面向智能电网与新能源场景的五大核心能力
数据库·能源
观北海2 小时前
机器人调度系统死锁卡死全复盘及解决方案
数据库·机器人
DolphinDB智臾科技2 小时前
高频行情低频化因子库:让 Tick 级数据为中低频策略所用
数据库·金融
oradh2 小时前
Oracle数据库序列和同义词概述
数据库·oracle·数据库基础·数据库入门·oracle序列·oracle同义词
treesforest2 小时前
Ipdatacloud IP 地址查询方案适合哪些场景?
大数据·网络·数据库·网络协议·tcp/ip·ip
TeDi TIVE2 小时前
C#数据库操作系列---SqlSugar完结篇
网络·数据库·c#
你觉得脆皮鸡好吃吗2 小时前
SQL注入 高权限注入(引入概念)
网络·数据库·sql·oracle·网络安全学习
数智化精益手记局3 小时前
4m变更管理实战:拆解4m变更管理四大要素的管控功能与常见难题
大数据·数据结构·数据库·人工智能·精益工程