Oracle 数据库知识整理
Oracle 数据库知识整理
一、Oracle 与 MySQL 对比
| 对比项 | Oracle | MySQL | 
|---|---|---|
| 适用场景 | 大型数据库 | 中小型数据库 | 
| 开源情况 | 不开源 | 开源 | 
| 收费情况 | 收费 | 免费 | 
| 内存占用 | 默认物理内存的1/8 | 几百MB | 
| 默认端口 | 1521 | 3306 | 
二、Oracle 安装与配置
2.1 安装注意事项
- 安装顺序:先安装 Oracle11g,再安装 PLSQL_Developer
 - 重要提示:
- 安装路径不能包含中文
 - 严格按照视频教程步骤安装
 - 新手安装失败率较高
 
 
2.2 配置服务
需要启动的两个核心服务:
OracleServiceORCLOracleOraDb11g_home1TNSListener
注:默认自动启动,如无问题无需手动配置
三、用户创建与授权
3.1 用户类型
| 账户类型 | 描述 | 功能 | 
|---|---|---|
| sysdba | 数据库管理员 | 启停服务器、备份恢复、日志归档、会话限制、管理功能、创建数据库等 | 
| sysoper | 数据库操作员 | 启停服务器、备份恢复、日志归档、会话限制 | 
| normal | 普通用户 | 无权限(需授权后才能操作) | 
3.2 默认账户
| 用户名 | 密码设置 | 类型 | 说明 | 
|---|---|---|---|
| sys | 安装时设 | sysdba, sysoper | 最高权限账户 | 
| system | 安装时设 | normal (有dba角色) | 普通用户但有管理员权限 | 
3.3 用户管理命令
1  | -- 创建账户  | 
四、数据类型
| 类型 | 说明 | 限制条件 | 
|---|---|---|
| CHAR | 固定长度字符串 | 最大2000 bytes | 
| VARCHAR2 | 可变长度字符串 | 最大4000 bytes | 
| DATE | 日期(日-月-年) | YYYY-MM-DD (时间可选) | 
| TIMESTAMP | 时间戳(精确到微秒) | YYYY-MM-DD HH24:MI:SS.ff | 
| NUMBER(P,S) | 数字类型(P:总位数,S:小数位) | |
| INTEGER | 整数类型 | |
| FLOAT | 浮点数类型 | 
注:VARCHAR2中文占2字节,英文占1字节
五、SQL分类
5.1 DDL (数据定义语言)
- CREATE / ALTER / DROP / CREATE VIEW
 
5.2 DML (数据操作语言)
- INSERT / UPDATE / DELETE
 
Oracle特殊语法:
- 自增字段:使用SEQUENCE替代AUTO_INCREMENT
 dual:系统虚表,当不确定操作表时使用
5.3 DQL (数据查询语言)
- SELECT
 
查询运算符:
- 算术运算符:
+ - * / - 连接符:
||、&&、CONCAT(arg1,arg2) - 比较运算符:
<,>,<=,>=,=,!=,<>,is,is not,in,not,between..and,like - 通配符:
%:匹配任意多个字符_:匹配1个字符
 - 其他:
AS:起别名DISTINCT:去重ORDER BY:排序(ASC默认/DESC)GROUP BY:分组
 
5.4 多表查询
(内容待补充)
六、视图
6.1 视图特点
- 虚拟表(存储的SELECT语句)
 - 基于基表创建
 - 不存储实际数据
 
6.2 视图作用
- 封装复杂查询
 - 隐藏敏感字段
 
七、索引
7.1 索引作用
- 加快数据检索速度
 - 通过ROWID快速定位数据
 - 减少磁盘IO
 
7.2 创建原则
适合创建索引的情况:
- 频繁SELECT操作的表
 - 大表且数据分布广
 - 字段常出现在WHERE或连接条件中
 
不适合创建索引的情况:
- 频繁INSERT/UPDATE/DELETE的表
 - 小表或不常作为查询条件的字段
 
注:主键/唯一约束字段会自动创建索引
八、事务
8.1 事务支持对比
| 特性 | Oracle | MySQL(InnoDB) | 
|---|---|---|
| 事务支持 | 完全支持 | 仅InnoDB支持 | 
| 默认提交方式 | 不自动提交 | 自动提交 | 
8.2 事务问题
- 脏读
 - 不可重复读
 - 幻读
 - 覆盖更新
 
8.3 ACID原则
- 原子性(Atomicity)
 - 一致性(Consistency)
 - 隔离性(Isolation)
 - 持久性(Durability)
 
8.4 隔离级别
- SERIALIZABLE(序列化)
 - REPEATABLE READ(可重复读)
 - READ COMMITTED(读已提交)
 - READ UNCOMMITTED(读未提交)
 
九、锁机制
9.1 锁级别
- 行级锁:
- 对查询数据加排他锁
 - 锁定期间其他用户不能修改
 
 - 表级锁:
- 共享锁:允许查询,禁止修改
 - 共享更新锁:允许查询和更新未锁定行
 - 排他锁:仅允许查询,禁止所有修改
 
 
1  | undefined  | 
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XHAYANEの小屋!
