导航:
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
目录
一、基本区别
1.1 基本特性
1.2 Oracle和MySQL如何做技术选型?
1.3 RDBMS和ORDBMS的区别
1.4 默认端口号和用户名
1.5 基本操作
1.5.1 登录方式
1.5.2 修改用户名密码
1.5.3 Oracle解锁账号
1.5.4 Oracle内存优化
1.6 大小写是否敏感
1.6.1 Oracle:双引号下大小写敏感
1.6.2 MySQL:大小写不敏感
二、常用字段类型
2.1 Oracle常用字段类型
2.2 MySQL常用字段类型
三、时间日期
3.1 Oracle
3.2 MySQL
四、创建表空间/数据库
4.1 Oracle创建表空间
4.2 MySQL创建数据库
五、创建临时表
5.1 Oracle创建临时表
5.2 MySQL创建临时表
六、删除表空间/数据库
6.1 Oracle删除表空间
6.2 MySQL删除数据库
七、数据备份恢复
7.1 Oracle导入dmp文件
7.2 MySQL备份迁移
八、创建表和插入记录
8.1 Oracle创建表和插入记录
8.2 MySQL创建表和插入记录
九、事务提交方式
9.1 Oracle:完全支持事务,默认不自动提交
9.2 MySQL:仅innoDB支持事务,默认自动提交
十、分页
10.1 Oracle:利用rownum分类
10.2 MySQL:通过limit关键字分页
- 数据库类型:Oracle数据库是一个对象关系数据库管理系统(ORDBMS),MySQL是一个开源的关系数据库管理系统(RDBMS)。
- 对象关系 数据库管理系统:基于对象模型,存储数据及其方法,数据存储在对象中。拥有对象类、对象标识、多态、封装和继承等特性。用于存储复杂的数据。
- 关系 数据库管理系统:基于关系模型, 只存储数据,数据存储在实体里面,以包含特定信息的表格的形式存在。用于处理比较简单的数据
- 客户规模:Oracle主要面向大企业级级别的用户,而MySQL则更适合中小型企业和个人。根据Gartner的数据,截至2020年,Oracle占据了全球关系型数据库管理系统市场的超过40%的份额,而MySQL仅占5%。
- 成本:Oracle是一种专业的数据库管理系统,需要付费购买许可证。MySQL(社区版,支持基本功能)是一种免费的数据库管理系统,如果需要使用它的高级功能(如多线程复制、查询性能优化、物理备份和增量备份、安全和加密功能、管理和监控工具、官方服务等),可能需要购买许可证或商业版本(企业版)。
- 可移植性和兼容性:MySQL可以很容易地在各种平台上运行,并与其他许多开源软件集成。Oracle虽然也有跨平台支持,但更偏向于使用自己的技术堆栈和产品集成。
- 安全性:Oracle使用了许多安全功能,如用户名,密码,配置文件,本地身份验证,外部身份验证,高级安全增强功能等。MySQL只使用三个参数来验证用户,即用户名,密码和位置。
- 内存:Oracle占有内存空间大(因为面对对象,并且还存储数据的方法);MySQL占有内存空间比较小
- 性能和扩展性:由于MySQL的精简设计和管理方式,所以其性能通常比Oracle更高,尤其在读取和写入方面。MySQL的扩展性也相对较好,因为其社区活跃,有许多插件和工具可供选择和使用。
- 支持并发量:Oracle支持大并发访问量,是OLTP(联机事务处理)最好的工具;MySQL并发小,面对大访问量可以做分表分库优化。
- OLTP(联机事务处理):表示事务性非常高的系统,一般都是高可用的在线系统,以小的事务以及小的查询为主,评估其系统的时候,一般看其每秒执行的Transaction以及Execute SQL的数量。典型的OLTP系统有电子商务系统、银行、证券等。
- 存储内容:与Oracle相比,MySQL没有角色管理(MySQL8.0开始支持),快照,同义词和包以及自动存储管理。
- 表空间:
- Oracle:
- SYSTEM:存放系统表、视图、存储过程。所有的数据库结构和管理信息都保存在这里。
- SYSAUX:SYSTEM 表空间的辅助空间,主要用于存储除数据字典外的其他数据对象,减少 SYSTEM 表空间的负荷
- TEMP:用于存储临时数据,通常是排序和临时操作所需的数据。
- UNDOTBS1:存放撤销数据,用于回滚事务和提供一致性读操作。
- USERS:存放应用系统使用的数据对象,是默认用户表空间。
- EXAMPLE:存储数据库的示例数据,通常是 Oracle 安装时选择"示例方案"时所用的数据。
- MySQL:MySQL5.6之前,只有共享表空间(所有数据存储在一个 .ibdata 文件中)。5.6开始,支持独立表空间(每个表单独的 .ibd 文件)和共享表空间(存储系统数据库和表,初始12MB,会自动扩容)。
- Oracle:
- 可移植性和兼容性:MySQL可以很容易地在各种平台上运行,并与其他许多开源软件集成。Oracle虽然也有跨平台支持,但更偏向于使用自己的技术堆栈和产品集成。
- 临时表特点:Oracle临时表默认所有会话内可见,一旦创建就会存在,直到显式删除。可以设置临时表仅在当前会话内或事务内可见。MySQL临时表只在当前会话可见,一旦会话关闭,临时表会自动删除。
下面场景下适用于选择Oracle:
- 对数据库有高级需求:如果企业对数据库的高级需求较高,如存储复杂数据及其方法,要求高可用性、灾备恢复、安全性等,可以考虑用Oracle。
- 大型企业应用:Oracle在处理大规模、复杂的企业级应用方面表现出色。它能够处理海量的数据和高并发的访问请求,同时支持复杂的数据模型和关系。
- 项目并发量高:使用Oracle,它是是OLTP(联机事务处理)最好的工具。
- 安全性要求高:Oracle使用了许多安全功能,如用户名,密码,配置文件,本地身份验证,外部身份验证,高级安全增强功能等。像金融、银行等对安全性要求高的项目一般都选用Oracle作为数据库。
- 高可用性和容灾需求:Oracle提供了强大的高可用性和容灾解决方案,例如集群配置、数据复制和自动故障转移等,能够确保系统的连续性和数据的可靠性。MySQL付费版也支持,但可靠性不如Oracle。
1.5.1 登录方式
连接MySQL:
连接Oracle:
注意:Oracle 登录需要授予登录用户 session权限,建表需要分配限额
1.5.2 修改用户名密码
MySQL修改密码:
1. win+r快捷键,输入cmd进入命令行:

2.登录MySQL
3.修改MySQL的root用户密码
示例:
Oracle修改密码:
1.win+r快捷键,输入cmd进入命令行:

2.sqlplus进入Oracle命令行:
3.输入用户名密码登录;
4.修改密码:
示例:

1.5.3 Oracle解锁账号
Oracle 在多次输错密码的情况下,会锁定该账户,导致无法登录数据库。
查看被锁定的账号:
解锁账号:
恢复密码:
示例:解锁system用户:
1.5.4 Oracle内存优化
1.开启自动内存管理Automatic Memory Management(AMM)
Oracle开启AMM后,会根据当前系统的内存情况动态地分配内存,直到达到指定的最大值。当系统需要更多内存时,AMM会自动减少内存使用量。
AMM还可以设置max_memory_target参数,以控制最大内存使用:
2.开启自动共享内存管理Automatic Shared Memory Management(ASMM)
ASMM会自动检测当前系统的内存使用情况,并根据需求分配和释放共享内存区域。
与AMM不同,ASMM只处理共享池、缓冲区高速缓存、Java池和辅助预留区的共享内存。
1.6.1 Oracle:双引号下大小写敏感
是Oracle大小写不敏感的前提条件是在没有使用双引号 "" 的前提下(表名、字段名)
1.6.2 MySQL:大小写不敏感
大小写不敏感(关键字和字段名都不区分)
Windows 大小写不敏感,文件名同名大小写不同会覆盖
- 数值:number number(10) number(10,2)
- 字符串:CHAR,NCHAR,VARCHAR2和NVARCHAR2。四种字符类型都需要至少1个字节长; CHAR和NCHAR最大可以是2000个字节,NVARCHAR2和VARCHAR2的最大限制是4000个字节。
- 日期:date
- 数值:tinyint smallint mediumint int bigint decimal
- 字符串:char、varchar(10) 。最大长度允许为65,535字节(CHAR最多可以为255字节,VARCHAR为65.535字节)。
- 日期:date time datetime timestamp year
对于常见的时间格式: "2021-02-03 16:25:48"
- Java中的表示方式:
- Oracle 中的表示方式:
示例-Java:
示例-Oracle:
sqlplus:
创建表空间
示例:
创建用户
修改用户默认表空间:
示例:
授权
示例:
MySQL表空间:
MySQL5.6之前,只有共享表空间(所有数据存储在一个 .ibdata 文件中)。5.6开始,支持独立表空间(每个表单独的 .ibd 文件)和共享表空间(存储系统数据库和表,初始12MB,会自动扩容)。
Oracle临时表默认所有会话内可见,一旦创建就会存在,直到显式删除。可以设置临时表仅在当前会话内或事务内可见。
ON COMMIT DELETE ROWS指定了当事务提交时,临时表中的所有行都会被删除。这保证了当会话结束时,所有临时数据都会被清除。
设置临时表消失的时机:
- ON COMMIT DELETE ROWS :数据行只有在当前事务中可见,也是默认值,事务提交后数据行将消失
- ON COMMIT PRESERVE ROWS :数据行仅在当前会话中可见
临时表中数据的增删改查,跟普通表一致:
MySQL临时表只在当前会话可见,一旦会话关闭,临时表会自动删除。
示例如下:
临时表创建成功后,可以使用SELECT、INSERT、UPDATE、DELETE等语句对其进行操作,与普通表的语法相同。
1、删除无任何数据对象的表空间:
2、删除有任何数据对象的表空间
1.首先确保dmp版本和本地oracle版本一致
2.将需要导入的dmp文件放在oracle11g的安装目录里面的目录下面

3.右键dmp用notepad++打开,在第二行找到版本号,改成自己的oracle版本,例如我的版本是19c:

3.sqlplus:用system账号创建用户并授权
4.cmd命令行:迁移

直接用navicat转储和运行SQL文件即可:

外键约束:Oracle是constraints,MySQL是constraint
级联操作:
- Oracle:on delete set null 或者on delete cascade
- MySQL: on delete set null on update CASCADE
oracle默认不自动提交,需要用户手动提交,提交可以通过以下几个命令实现:
- BEGIN:事务块开始的标志。事务块里的SQL语句要么全部执行成功,要么全部失败回滚。
- COMMIT:提交事务。执行成功时,事务将被提交,并且对数据库的修改是可见的。
- ROLLBACK:ROLLBACK用于取消尚未提交的事务,并将数据库恢复到事务开始之前的状态。当ROLLBACK语句执行成功时,事务中的所有修改都将被撤销。
- SAVEPOINT:SAVEPOINT用于在事务中创建一个保存点,以便在事务执行过程中可以回滚到该保存点。它可以在事务中设置一个中间点,以便在需要时回滚到该点。
- SET TRANSACTION:SET TRANSACTION用于设置事务的属性。通过该命令,可以设置事务的隔离级别、读写权限等属性。
示例:
查看事务提交状态
关闭事务提交:
手动提交事务:
到此这篇orecle和mysql区别(orcle和mysql的区别)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sqlbc/18713.html

