首页 > 数据库 >Oracle和MySQL的区别

Oracle和MySQL的区别

时间:2024-05-21 15:42:41浏览次数:25  
标签:事务 区别 默认 提交 MySQL Oracle select

刚进公司接触到了Oracle,记录一下他们的区别,面试的时候也有问到过,而且上来就是千万级别的数据调优,嘻嘻,我只是一个3年java。题外话,甚至有一些公司会问我java跟C、python的区别,以及具体区别的例子,然后我如果回答上来了,他们会告诉我,这边只做后端而且只用java,笑嘻了

就本人最近的使用和了解,整理了一下:

基本区别、大小写敏感、事务、时间日期、分页、常用字段类型

基本区别

数据库类型:

Oracle是对象关系数据库管理系统(ORDBMS => 基于对象模型,存储数据及其方法,数据存储在对象中,用于存储复杂的数据)

MySQL是开源的关系数据库管理系统(RDBMS => 基于关系模型, 存储数据,数据存储在实体里面,用于处理比较简单的数据)

默认端口和用户名:

Oracle默认端口:1521 默认用户:system
MySQL默认端口:3306 默认用户:root

安全:

Oracle使用了许多安全功能(本地身份验证,外部身份验证,高级安全增强等)

MySQL使用三个参数来验证用户,即用户名,密码和位置

性能:

MySQL在读取和写入方面性能通常比Oracle高

并发:

Oracle支持大并发访问量,是OLTP(联机事务处理 => 事务性非常高的系统,一般都是高可用的在线系统。比如银行、电商)最好的工具

MySQL并发小,面对大访问量可以做分表分库优化

临时表:

Oracle默认所有会话内可见(可设置当前会话内或事务内可见),创建后需要显式删除。

MySQL只在当前会话可见,一旦会话关闭就自动删除。

大小写敏感

Oracle默认是大写,在双引号""下,大小写敏感

MySQL默认是小写,大小写不敏感

事务

Oracle默认不自动提交,需要用户手动提交

提交命令:

BEGIN:事务块开始的标志(要么全部执行成功,要么全部失败回滚)
COMMIT:提交事务(对数据库的修改是可见的)
ROLLBACK:取消尚未提交的事务,将数据库恢复到事务开始之前的状态
SAVEPOINT:在事务中创建一个保存点,在事务执行过程中可以回滚到该保存点
SET TRANSACTION:设置事务的属性(事务的隔离级别、读写权限等)

MySQL中innoDB支持事务,默认自动提交(关闭事务提交命令 => set AutoCommit = 0)

提交命令:

START TRANSACTION:开始事务

COMMIT:手动提交

时间日期

Oracle使用 DATE 数据类型来存储日期和时间

# 获取当前DATE
SELECT SYSDATE
# 格式 'yyyy-mm-dd hh24:mi:ss' 
SELECT TO_CHAR(createDate, 'yyyy-mm-dd hh24:mi:ss') FROM tableName;

MySQL日期和时间通常使用 DATE,DATETIME,TIMESTAMP 数据类型存储

# 获取当前时间戳 
select unix_timestamp() 
# 获取当前日期 格式 'YYYY-MM-DD'
select date(now())
# 获取当前日期时间,格式 'YYYY-MM-DD hh:mm:ss' 
select now()

分页

Oracle

# rownum从1开始
select * from
(select rownum rn, t.* from (select * from tableName order by id desc) t )
where rn>=1 and rn<=5;

MySQL

# 从第0条开始,取5条数据
select * from tableName order by id desc limit 0,5

常用字段类型

Oracle MySQL
数字 NUMBER int、bigint、decimal
字符串 CHAR、NCHAR、VARCHAR2、NVARCHAR2 char、varchar
日期 DATE date、time、datetime、timestamp

标签:事务,区别,默认,提交,MySQL,Oracle,select
From: https://www.cnblogs.com/fanwenkeer/p/18204183

相关文章

  • BDD和ATDD、实例化需求有何区别?
    除了BDD之外,想必你也曾听说过ATDD和实例化需求这两个术语,那它们之间有何区别呢?要想得到问题的答案,不得不先了解下另外一个术语:TDD。TDD TDD,测试驱动开发,是由KentBeck在1999年提出的,强调测试先行,避免过度设计。TDD测试驱动开发的核心为红-绿-重构三步骤:1、编写一......
  • mysql
    存储引擎mysql表有几种类型/存储引擎?INNODB,MYISAM,MEMORY,CSV INNODB设计存储结构=内存区域+磁盘区域 刷盘策略: 存储方式特点innodbVSmyisamINNODB特点:1.支持ACID的事务,支持四种隔离级别。2.支持行级锁及外检约束,支持写并发。3.不存储总行数。4.一个innod......
  • mysql中主键、外键、约束、索引
    主键用于唯一标识表中每一行数据,外键用于建立表与表之间关联关系,约束用于限制表中数据的规则,索引用于加速查询。1.主键是一种用于唯一标识表中每一行数据的标识符。在Mysql中,主键可以是一个或多个列的组合,但是必须满足以下条件:主键列的值必须唯一,不能重复。主键列的值不能为......
  • 外肢体与协作机器人,移动机器人,外骨骼机器人的区别
    https://chatgpt.com/share/9d4603cf-591b-474d-a33c-876297bc50b9QHowsupernumeraryroboticarmsdifferfromcollabrativerobots,mobilerobots(roboticarmsmountedonAGV)andexoskeletons?Isthereanytaskthatsupernumeraryroboticarmscando......
  • 在Docker中安装MySQL的ODBC驱动并添加Python测试代码
    #使用官方的Ubuntu镜像作为基础镜像FROMubuntu:20.04#设置环境变量以避免交互式安装提示ENVDEBIAN_FRONTEND=noninteractive#更新包列表并安装必要的软件包RUNapt-getupdate&&\  apt-getinstall-y\  build-essential\  curl\  apt-trans......
  • 创建你的-Mysql-数据库-全-
    创建你的Mysql数据库(全)原文:zh.annas-archive.org/md5/853FEC9D976A75004408D5A9A661EDD8译者:飞龙协议:CCBY-NC-SA4.0前言1995年发布的MySQL已成为最受欢迎的开源数据库系统。MySQL和phpMyAdmin的普及使得许多非IT专家能够使用MySQL后端构建动态网站。本书是一......
  • 二进制安装mysql5.7
    1.创建目录mkdir-p/server/toolsmkdir/applicationmkdir/mysql-data/mysql/data-p2.建用户与环境变量useradd-s/sbin/nologinmysqlecho"exportPATH=/application/mysql/bin:$PATH">>/etc/profilesource/etc/profile3.下载与解压文件cd/server/tools/wg......
  • MySQL 字段截取拼接
    @目录前言需求:拼接函数:截取函数:总结前言请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i、提示:以下是本篇文章正文内容,下面案例可供参考需求:将数据库中的某一个字段的前6位替换成一个新的字符串,其它位置不变。拼接函数:CONCAT(A,B):将A和B拼接起来。截取函数:LEFT(s......
  • ddt数据驱动中unpack和*的区别
    分析在使用ddt导入数据的时候,会分别用到*解包和unpack,经常会把这两个认为是同一个用法,其实不是//我们定义一组CSV数据null,测试数据,存放地点名称必填,请重新输入。//数据驱动importcsvdefreadCsv():withopen("teatdata2.csv",encoding="utf-8")asf:......
  • mysql允许其它机器连接
    1.修改MySQL的配置文件(windows是my.ini,linux是my.cn.cnf或my.cnf),如果有bind-address这一行,值改为0.0.0.0,这样可以允许任意IP地址连接到MySQL服务器。bind-address=0.0.0.0没有bind-address,就补上bind-address=0.0.0.0这一行2.修改权限grantallprivilegeson*.*to'r......