当前位置: 首页 > news >正文

Oracle 基础入门:核心概念与实操指南(视频教程)

Oracle 基础入门:核心概念与实操指南

  • Oracle 是全球领先的关系型数据库管理系统(RDBMS),以稳定性、安全性和高性能著称,广泛应用于企业级系统。本文从核心概念、环境准备、基础操作、常用对象、SQL 核心语法五个维度,帮你快速掌握 Oracle 基础。
  • 视频教程:https://pan.quark.cn/s/bcbe74d71b6d

一、核心概念梳理

1. 数据库与实例

  • 数据库(Database):物理存储的集合(数据文件、控制文件、日志文件等),Oracle 中一个数据库可对应多个实例(RAC 集群场景)。
  • 实例(Instance):数据库启动后,内存结构(SGA)+ 后台进程(DBWR、LGWR、CKPT 等)的总称,是“运行中的数据库”。
  • 关系:实例是数据库的“访问入口”,单机环境下通常“一个实例对应一个数据库”。

2. 用户与模式(Schema)

  • 用户(User):数据库的访问账号(如 SYSSYSTEM、普通用户),需分配权限才能操作数据。
  • 模式(Schema):用户拥有的数据库对象(表、视图、索引等)的集合,默认情况下,用户名将 = 模式名(如用户 SCOTT 的模式就是 SCOTT,其表 EMP 需通过 SCOTT.EMP 访问)。
  • 内置用户:
    • SYS:超级管理员(需以 SYSDBA 身份登录),管理数据库核心组件;
    • SYSTEM:普通管理员,管理用户、权限等日常运维。

3. 数据文件与表空间

  • 表空间(Tablespace):逻辑存储单元,用于分类管理数据(如 SYSTEM 系统表空间、USERS 普通用户表空间)。
  • 数据文件(Data File):物理存储文件,表空间由一个或多个数据文件组成(数据最终存在数据文件中)。
  • 关系:数据库 → 表空间 → 数据文件 → 表/数据。

二、环境准备

1. 安装 Oracle

  • 推荐版本:Oracle 11g(入门友好)、Oracle 19c(长期支持版)。
  • 安装介质:官网下载安装包(需注册 Oracle 账号),或使用 Docker 快速部署(推荐新手):
    # Docker 拉取 Oracle 11g 镜像
    docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
    # 启动容器(映射端口 1521,密码 helowin)
    docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
    

2. 连接工具

  • 命令行:sqlplus(Oracle 自带),如:
    sqlplus sys/helowin as sysdba  -- 管理员登录
    sqlplus scott/tiger@localhost:1521/helowin  -- 普通用户登录(@后为连接串:主机:端口/服务名)
    
  • 图形化工具(推荐):PL/SQL Developer、Navicat Premium、DataGrip,可视化操作更高效。

3. 连接串格式

用户名/密码@主机IP:端口号/服务名(或SID)
  • 默认端口:1521;
  • 服务名(11g 常用):helowin(Docker 镜像默认)、orcl(本地安装默认);
  • SID:Oracle 实例标识(11g 中 SID 通常与服务名一致)。

三、基础操作:用户与权限

1. 创建普通用户

需以管理员身份(SYSTEMSYS)登录,语法:

-- 创建用户(指定默认表空间 USERS,临时表空间 TEMP)
CREATE USER 用户名 IDENTIFIED BY 密码
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;-- 示例:创建用户 test,密码 123456
CREATE USER test IDENTIFIED BY 123456
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

2. 授予权限

Oracle 权限分两类:

  • 系统权限:数据库级操作(如创建表、连接数据库);
  • 对象权限:操作其他用户的对象(如查询 SCOTT.EMP 表)。

常用授权命令:

-- 授予用户连接数据库、创建表的系统权限
GRANT CONNECT, RESOURCE TO test;-- 授予用户查询 SCOTT.EMP 表的对象权限
GRANT SELECT ON scott.emp TO test;-- 授予管理员权限(谨慎使用)
GRANT DBA TO test;

3. 切换用户与修改密码

-- 管理员切换到普通用户(无需退出 sqlplus)
CONNECT test/123456;-- 修改当前用户密码
ALTER USER test IDENTIFIED BY new_password;

四、核心数据库对象

Oracle 中常用对象包括表、视图、索引、序列,以下是基础用法:

1. 表(Table):数据存储核心

创建表(DDL)
CREATE TABLE 表名 (列名1 数据类型 [约束],列名2 数据类型 [约束],...
);-- 示例:创建员工表 emp_test
CREATE TABLE emp_test (emp_id NUMBER(10) PRIMARY KEY,  -- 主键(唯一+非空)emp_name VARCHAR2(50) NOT NULL, -- 非空dept_id NUMBER(5),              -- 部门ID(外键关联部门表)salary NUMBER(10,2),            -- 工资(保留2位小数)hire_date DATE DEFAULT SYSDATE  -- 入职日期(默认当前日期)
);
常用数据类型
数据类型说明
VARCHAR2(n)可变长度字符串(n 最大 4000)
NUMBER(p,s)数值型(p 总长度,s 小数位数)
DATE日期时间型(包含年月日时分秒)
TIMESTAMP高精度日期时间(包含毫秒)
CLOB大文本(最大 4GB)
表操作(DDL)
-- 修改表:添加列
ALTER TABLE emp_test ADD email VARCHAR2(100);-- 修改表:修改列类型(注意数据兼容性)
ALTER TABLE emp_test MODIFY email VARCHAR2(150);-- 删除表(谨慎!不可逆)
DROP TABLE emp_test;

2. 数据操作(DML):增删改查

插入数据(INSERT)
-- 全列插入(顺序与表定义一致)
INSERT INTO emp_test VALUES (1, '张三', 10, 5000.00, SYSDATE, 'zhangsan@test.com');-- 指定列插入(推荐,不受列顺序影响)
INSERT INTO emp_test (emp_id, emp_name, dept_id, salary) 
VALUES (2, '李四', 20, 6000.00);-- 提交事务(Oracle 默认手动提交,插入后需 commit 生效)
COMMIT;
查询数据(SELECT)
-- 查询所有列
SELECT * FROM emp_test;-- 查询指定列+条件+排序
SELECT emp_id, emp_name, salary 
FROM emp_test 
WHERE dept_id = 10 
ORDER BY salary DESC;-- 聚合查询(统计部门10的平均工资)
SELECT AVG(salary) AS avg_salary 
FROM emp_test 
WHERE dept_id = 10;
更新数据(UPDATE)
UPDATE emp_test 
SET salary = 5500.00, email = 'zhangsan_new@test.com' 
WHERE emp_id = 1;COMMIT; -- 提交修改
删除数据(DELETE)
-- 删除指定数据
DELETE FROM emp_test WHERE emp_id = 2;-- 删除全表数据(保留表结构,可回滚)
DELETE FROM emp_test;-- 快速删除全表(不写日志,不可回滚,效率高)
TRUNCATE TABLE emp_test;COMMIT;

3. 视图(View):虚拟表

基于表的查询结果创建,简化复杂查询,隐藏数据细节:

-- 创建视图(查询部门10的员工信息)
CREATE VIEW dept10_emp AS
SELECT emp_id, emp_name, salary 
FROM emp_test 
WHERE dept_id = 10;-- 查询视图(与查询表语法一致)
SELECT * FROM dept10_emp;-- 删除视图
DROP VIEW dept10_emp;

4. 序列(Sequence):生成自增ID

Oracle 没有 AUTO_INCREMENT,需通过序列实现自增主键:

-- 创建序列(起始值1,步长1,无最大值)
CREATE SEQUENCE emp_seq
START WITH 1
INCREMENT BY 1
NOCYCLE; -- 不循环-- 调用序列(NEXTVAL:下一个值,CURRVAL:当前值)
INSERT INTO emp_test (emp_id, emp_name) 
VALUES (emp_seq.NEXTVAL, '王五');COMMIT;-- 删除序列
DROP SEQUENCE emp_seq;

5. 索引(Index):提升查询效率

基于表的列创建,加速查询(插入/更新会变慢,需合理使用):

-- 创建普通索引(针对查询频繁的 dept_id 列)
CREATE INDEX idx_emp_dept ON emp_test(dept_id);-- 删除索引
DROP INDEX idx_emp_dept;

五、Oracle 特有语法与注意事项

1. 事务控制

Oracle 事务默认手动提交,需通过以下命令控制:

  • COMMIT:提交事务(永久生效);
  • ROLLBACK:回滚事务(撤销未提交的操作);
  • SAVEPOINT:设置保存点(回滚到指定节点)。

示例:

INSERT INTO emp_test VALUES (3, '赵六', 30, 7000.00, SYSDATE, 'zhaoliu@test.com');
SAVEPOINT sp1; -- 设置保存点UPDATE emp_test SET salary = 7500 WHERE emp_id = 3;
ROLLBACK TO sp1; -- 回滚到保存点(撤销更新,保留插入)COMMIT; -- 最终提交插入操作

2. 日期函数

Oracle 日期处理功能强大,常用函数:

-- 当前日期时间
SELECT SYSDATE FROM DUAL; -- DATE 类型
SELECT SYSTIMESTAMP FROM DUAL; -- TIMESTAMP 类型-- 日期格式化(TO_CHAR)
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS current_time FROM DUAL;-- 日期字符串转日期(TO_DATE)
INSERT INTO emp_test (emp_id, emp_name, hire_date) 
VALUES (4, '孙七', TO_DATE('2024-01-15', 'YYYY-MM-DD'));

3. 伪表 DUAL

Oracle 中 SELECT 必须包含 FROMDUAL 是系统伪表(无实际数据),用于无表查询:

-- 计算 1+1
SELECT 1+1 AS result FROM DUAL;-- 查询当前用户
SELECT USER FROM DUAL;

4. 注意事项

  • VARCHAR2VARCHAR:Oracle 中 VARCHARVARCHAR2 的同义词,推荐使用 VARCHAR2
  • 区分大小写:Oracle 关键字、表名、列名默认不区分大小写(会自动转大写),若需区分需用双引号括起(不推荐);
  • 空值处理:NULL 不等于任何值,判断空值需用 IS NULL/IS NOT NULL(不能用 =/!=);
  • 表空间:创建用户时需指定默认表空间,否则可能因权限不足无法创建表。

六、入门进阶方向

  1. PL/SQL 编程:存储过程、函数、触发器、游标(Oracle 核心编程能力);
  2. 权限与角色:细粒度权限控制、角色管理;
  3. 备份与恢复:RMAN 备份、数据泵(expdp/impdp)导入导出;
  4. 性能优化:SQL 执行计划、索引优化、表分区;
  5. Oracle 19c 新特性:PDB 可插拔数据库、JSON 支持增强等。
http://www.dtcms.com/a/606813.html

相关文章:

  • Kafka 消费积压影响写入?试试 Pulsar
  • 遂溪网站开发公司js 访问wordpress
  • 电容上产生的寄生电感的主要原因有哪些?
  • 门户网站 建设 投入wordpress视频教程百度云
  • 上海手机站网站建设数据库在网站建设中的作用
  • 网站建设的域名续费网址提交
  • 编译语言 | 探索不同编程语言的编译过程与效率
  • 孤能子视角:中西文明认知模式分析,外观与内理(2)
  • 襄樊大型网站建设南京做网站优化
  • 网站关键字优化销售版面设计的原则
  • wordpress 婚纱主题深圳SEO网站建设优化
  • 算法 day 53
  • 基础算法理解
  • 链表7--------查找2:给数传值
  • 电脑终端(不用软件)直连树莓派
  • Android AB升级(一) - 升级各层级模块概述
  • 沈阳网站开发培训价格冬奥会建设官方网站
  • 365科技简报 2025年11月13日 星期四
  • 医院做网站怎么就违规了论文格式样板模板
  • 建设不动产网站工业设计专业是干什么的
  • Redis 常见八股(不定期更新)
  • 做网站用什么网名好什么是最经典最常用的网站推广方式
  • 网站优化的基本思想网架公司赵娜
  • 哪里有做网站app的支部建设杂志官方网站
  • 选型指南:电流检测芯片 TI INA139 VS FP137 详解 如何根据关键参数选择?
  • module ‘torch.compiler‘ has no attribute ‘is_compiling‘
  • c 网站开发教程海城建设网站
  • 揭阳网站推广教程网站刷链接怎么做
  • C语言编程实战:每日刷题 - day2
  • 大模型运维