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使用区别

1.MyBatis中的 foreach标签使用区别:

<!-- oracle -->
<if test="dbType=='oracle'">
   <foreach collection="list" item="item" index="index" open="begin" close=";end;" separator=";">
      update test set name=${item.name} where seq=${item.seq}
    </foreach>
</if>
<!-- mysql -->
<if test="dbType=='mysql'">
   <foreach collection="list" item="item" index="index" open="" close="" separator=";">
      update test set name=${item.name} where seq=${item.seq}
    </foreach>
   </if>

2.like 的使用区别:

oracle:where seq like #{seq} || '%'

mysql:?where seq like concat(#{seq},'%')

b.name like CONCAT(CONCAT('%',#{name}),'%')

3. 函数通过子类查询到父类:

3.1 函数通过子类查询到父类

Oracle:

select *
from test a
connect by a.unit_code = prior a.para_unit_code
start with a.unit_code = #{unitCode}
order by a.unit_code asc

MySQL:

select *
from test a
find_in_set(a.unit_code,(select getparentunitlist (#{unitCode})))
order by a.unit_code asc

MySQL的 find_in_set函数的使用:

https://www.jb51.net/article/143105.htm

MySQL自定义函数,实现父子查询getparentunitlist函数的使用:

https://blog.csdn.net/qq_28428687/article/details/79107818?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-1-79107818.pc_agg_new_rank&utm_term=MySQL%E7%9A%84getparentlist%E5%87%BD%E6%95%B0&spm=1000.2123.3001.4430

3.1 函数通过父类查询到子类:

<select id="getChildrenArea" resultType="java.lang.String" databaseId="oracle">
    select
        AREA_SEQ
    from test_area aua
    start with aua.area_seq = #{areaSeq}
    connect by prior aua.area_seq = aua.parent_area_seq
</select>

<select id="getChildrenArea" resultType="java.lang.String" databaseId="mysql">
    select
        AREA_SEQ
    from test_area aua where
    FIND_IN_SET (aua.AREA_SEQ, getChildareaLst(#{areaSeq}))
</select>

4. 字段转换:

Oracle中 wm_concat() 函数的使用:

wm_concat()函数是oracle行列转换函数,该函数可以把列值以‘,’分割开来,并显示成一行。

Oracle中 over(order by )分区转换、 over(order by )连续转换函数的使用:

地址:

https://blog.csdn.net/iteye1011/article/details/12782887?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_aa&utm_relevant_index=2

5. 当前时间的获取:

Oracle:SYSDATE

MySQL:NOW()

6.mysql 获取昨天日期、今天日期、明天日期以及前一个小时和后一个小时的时间:

https://www.jb51.net/article/132425.htm
1、当前日期 
select DATE_SUB(curdate(),INTERVAL 0 DAY) ;
2、明天日期
select DATE_SUB(curdate(),INTERVAL -1 DAY) ;
3、昨天日期
select DATE_SUB(curdate(),INTERVAL 1 DAY) ;

7.Oracle数据库获取前一天日期、当月第一天日期

获取前一天日期SQL:select to_char(sysdate-1,'yyyy-mm-dd') from dual
获取当月第一天日期SQL:select to_char(sysdate-1,'yyyy-mm')||'-01' from dual

<if test="@com.minstone.apprEfficiency.common.constant.ConfigConstant@DBTYPE =='oracle'">
    and to_char(h.SCSJSJ,'yyyy-MM-dd') >= to_char(sysdate -1,'yyyy-mm-dd')
</if>
<if test="@com.minstone.apprEfficiency.common.constant.ConfigConstant@DBTYPE =='mysql'">
    and to_char(h.SCSJSJ,'yyyy-MM-dd') >= date_sub(curdate(), interval 1 day )
</if>

8.时间格式的转换:

  注意:Oracle是不区分大小写的
  <if test="dbType=='oracle'">
  TO_CHAR(A.UPDATE_TIME,'YYYY-MM-DD HH24:MI:SS') AS UPDATE_TIME
  </if>
  <if test="dbType=='mysql'">
DATE_FORMAT(A.UPDATE_TIME,'%Y-%m-%d %H:%i:%s') AS UPDATE_TIME
  </if>

10?mysql的 if 和oracle 的 decode

https://blog.csdn.net/nimeijian/article/details/50470189?spm=1001.2101.3001.6650.16&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-16.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-16.pc_relevant_antiscanv2&utm_relevant_index=17

总结:
通过比较,可以发现:
ifNull(exp1,exp2)类似于nvl(exp1,exp2);
if(exp1,exp2,exp3)类似于nvl2(exp1,exp2,exp3);
CASE WHEN 类似于DECODE()。

11.字符集问题:

https://www.cnblogs.com/youjianjiangnan/p/9114791.html
mysql修改表,字段的字符集
http://blog.itpub.net/29254281/viewspace-1285916/

????????字符集问题比较恶心,之前遇到的问题建库的时候设置的是gbk的字符集(好像这样的字符集外文 会乱码),但是生产环境存在大量的数据,又不能修改字符集,所以当时是把外文字段base64编码之后存入数据库,取出来的时候再解码,非常的繁琐。请注意,后续建库建表的时候请设置好。巨大的坑啊。数据库被设置为gbk的编码

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:35:41  更:2022-09-21 00:39:49 
 
开发: 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年11日历 -2024/11/23 10:43:43-

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