IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 比较oracle与mysql的区别 -> 正文阅读

[大数据]比较oracle与mysql的区别

最近项目需要把oracle数据库改为mysql数据库,所以原有的SQL就需要改动一下。

以下是oracle和mysql的一些区别。

数据类型

oraclemysql备注
数值类型numberint/decimalOracle中的Number(10,2)对应MySQL中的decimal(10,2),Number(5) 对应 int(5)
时间类型date、timestamp、intervalDate、Time、Datetime等类型MySQL中Date类型仅表示日期(年-月-日),Time类型仅表示时间(时:分:秒),而Datetime类型表示日期时间(年-月-日 时:分:秒),Oracle中的Date类型和MySQL中的Datetime类型一致。
字符串类型Varchar2(n)varchar(n)

常用函数等差异

功能oraclemysql备注
日期转字符串to_char(sys_date, ‘yyyyMMdd’)date_format(sys_date,‘%Y%m%d’)
非日期转字符串to_char(200000.443133)cast(200000.443133 as char)MySQL可选类型: DATE:转换成日期。格式:“YYYY-MM-DD” DATETIME:转换成DATETIME 格式:“YYYY-MM-DD HH:MM:SS” TIME:转换成时间。格式:“HH:MM:SS” CHAR:转换成字符串 SIGNED:转换成签名(签名的64位整数) UNSIGNED:转换成UNSIGNED(无符号的64位整数) BINARY:转换 value 到BINARY(二进制字符串)
字符串转日期to_date(‘2022-03-18’, ‘yyyy-MM-dd’)str_to_date(‘2022-03-18’, ‘%Y-%m-%d’)
非空取值nvl(str, 0)ifnull(str,0)
多条件判断取值decode(Source, 1, ‘02’, 2, ‘01’, ‘03’)if(Source=1,‘02’,if(Source=2,‘01’,‘03’))
字符串拼接a||b 拼接concat(a,b)另oracle的空是null,mysql有null和’'两种,判断的时候注意
左连接,右连接左连接,右连接可以使用(+)left join ,right join
获取前面n条记录rownum获取前n条记录limit来获取前n条记录
返回不小于 X 的最小整数ceil(X)ceiling(X)
截取字符串substr(‘abcd’,2,2)substring(‘abcd’,2,2)
instr(‘abcdefg’,’ab’)locate(‘ab’,’abcdefg’)注意:locate的子串和总串的位置要互换
字符串长度length(str)char_length(str)
trunc(-1.002)cast(-1.002 as SIGNED)mysql可用的类型: 二进制,同带binary前缀的效果 : BINARY 字符型,可带参数 : CHAR() 日期 : DATE 时间: TIME 日期时间型 : DATETIME 浮点数 : DECIMAL 整数 : SIGNED 无符号整数 : UNSIGNED
字符串转数值类型to_number(str)cast(str AS SIGNED INTEGER)
当前日期SYSDATEnow() / SYSDATE()
日期加减Next_day(sysdate,7)DATE_ADD(sysdate() ,interval +7 day)DATE_ADD(d,INTERVAL expr type) type值:YEAR、MONTH、DAY、HOUR、WEEK
日期加减ADD_MONTHS(sysdate, 2)DATE_ADD(sysdate(), interval 2 month)
两个日期相差天数2个日期相减(D1-D2)DATEDIFF(date1,date2)
生成随机数列sys_guid()UUID()

其他区别

如 MySQL可识别双引号和单引号,Oracle只能识别单引号。

构建临时表:oracle可用with;mysql可用(),但必须加上临时表名

-- Oracle with使用
WITH tmptab AS (SELECT a.s_id FROM student a)
SELECT s_id FROM tmptab
 
-- MySQL 构建临时表使用(此处必须给括号中的临时表设置表名)
select b.s_id from (select s_id from student ) b 

相同部分

数字函数:round()、abs()、floor()、max()、min()、sum()

字符函数:ascii()、char()、replace()、coalesce()、instr()、lpad()、upper()、lower()、

开窗函数:ROW_NUMBER() OVER(PARTITION BY 分组字段 order by 排序字段 asc)

另外关于时间格式用法,可以学习:http://www.zzvips.com/article/45368.html

资料都是整理的!!!如有雷同,不是巧合。

(未完待续!)

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-14 22:40:05  更:2022-06-14 22:41:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 21:04:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码