Oracle 数据库知识整理
Oracle 数据库知识整理
一、Oracle 与 MySQL 对比
对比项 | Oracle | MySQL |
---|---|---|
适用场景 | 大型数据库 | 中小型数据库 |
开源情况 | 不开源 | 开源 |
收费情况 | 收费 | 免费 |
内存占用 | 默认物理内存的1/8 | 几百MB |
默认端口 | 1521 | 3306 |
二、Oracle 安装与配置
2.1 安装注意事项
- 安装顺序:先安装 Oracle11g,再安装 PLSQL_Developer
- 重要提示:
- 安装路径不能包含中文
- 严格按照视频教程步骤安装
- 新手安装失败率较高
2.2 配置服务
需要启动的两个核心服务:
OracleServiceORCL
OracleOraDb11g_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の小屋!