专栏首页Java技术大杂烩国产达梦数据库与MySQL的区别

国产达梦数据库与MySQL的区别

背景

由于项目上的需要,把项目实现国产化,把底层的MySQL数据库替换为国产的达梦数据库,花了一周的时间研究了国产的数据库-达梦数据库,它和MySQL有一定的区别,SQL的写法也有一些区别。

介绍

以下介绍来自于达梦数据库官网,相关的文档在官网中也是可以下载的。

http://www.dameng.com/

达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM,它具有如下特点:

1、通用性

达梦数据库管理系统兼容多种硬件体系,可运行于X86、X64、SPARC、POWER等硬件体系之上。DM各种平台上的数据存储结构和消息通信结构完全一致,使得DM各种组件在不同的硬件平台上具有一致的使用特性。 达梦数据库管理系统产品实现了平台无关性,支持Windows系列、各版本Linux(2.4及2.4以上内核)、Unix、Kylin、AIX、Solaris等各种主流操作系统。达梦数据库的服务器、接口程序和管理工具均可在32位/64 位版本操作系统上使用。

2、高性能

支持列存储、数据压缩、物化视图等面向联机事务分析场景的优化选项; 通过表级行存储、列存储选项技术,在同一产品中提供对联机事务处理和联机分析处理业务场景的支持;

3、高可用

可配置数据守护系统(主备),自动快速故障恢复,具有强大的容灾处理能力。

4、跨平台

跨平台,支持主流软硬件体系(支持windows、Linux、中标麒麟、银河麒麟等操作系统),支持主流标准接口。

5、高可扩展

支持拓展软件包和多种工具,实现海量数据分析处理、数据共享集群(DSC)和无共享数据库集群(MPP)等扩展功能

与MySQL的区别

1. 创建表的时候,不支持在列的后面直接加 comment 注释,使用 COMMENT ON IS 代替,如:
   COMMENT ON TABLE xxx IS xxx
   COMMENT ON COLUMN xxx IS xxx
2. 不支持 date_sub 函数,使用 dateadd(datepart,n,date) 代替,

其中,datepart可以为:year(yy,yyyy)quarter(qq,q)month(mm,m)dayofyear(dy,y)day(dd,d)week(wk,ww)weekday(dw)hour(hh)minute(mi,n)second(ss,s)millisecond(ms) 例子:

   select dateadd(month, -6, now());
   select dateadd(month, 2, now());
3. 不支持 date_format 函数,它有三种代替方法:

a: 使用 datepart 代替: 语法:datepart(datepart, date),返回代表日期的指定部分的整数, datepart可以为:year(yy,yyyy)quarter(qq,q)month(mm,m)dayofyear(dy,y)day(dd,d)week(wk,ww)weekday(dw)hour(hh)minute(mi,n)second(ss,s)millisecond(ms) 例子:

 select datepart(year, '2018-12-13 08:45:00'); --2018
 select datepart(month, '2018-12-13 08:45:00'); --12

b: 使用 date_part 代替 功能和 datepart 一样,写法不同,参数顺序颠倒,且都要加引号, 例子:

 select date_part('2018-12-13 08:45:00', 'year');--2018
 select date_part('2018-12-13 08:45:00', 'mm'); -- 12

c: 使用 extract 代替, 语法:extract(dtfield from date),从日期类型date中抽取dtfield对应的值 dtfield 可以是 yearmonthdayhourminutesecond 例子:

  select extract(year from  '2018-12-13 08:45:00'); --2018
  select extract(month from  '2018-12-13 08:45:00'); --12
4. 不支持 substring_index 函数, 使用 substr / substring 代替,

语法:

    substr(char[,m[,n]])
    substring(char[from m[ for n]])
5. 不支持 group_concat 函数,使用 wm_concat 代替,

例子:

  select wm_concat(id) as idstr from persion ORDER BY id ;
6. 不支持 from_unixtime 函数,使用 round 代替

语法:

     round(date[,format])
7. 不支持 case-when-then-else ,

例如:

   select case  when id = 2 then "aaa" when id = 3 then "bbb" else "ccc" end as test
   from (select id from person) tt;
8. current_timestamp 的返回值带有时区,

例子:

     select current_timestamp(); --2018-12-17 14:34:18.433839 +08:00
9. convert(type, value) 函数,
与 mysql 的 convert 一样,但是参数是反过来的,mysql 是 convert(value, type)
10. 不支持 on duplicate key update,
     使用 merge into 代替 
11. 不支持 ignore,即 insert ignore into
12. 不支持 replace into,
       使用 merge into 代替 
13. 不支持 if。
14. 不支持 "",只支持 ''
15. 不支持 auto_increment,
使用 identity 代替
如: identity(1, 1),从 1 开始,每次增 1 
16. 不支持 longtext 类型,
       可用 CLOB 代替。

总结

达梦数据库和 oracle 数据库比较像,如果找不到和 MySQL 对应的函数,可以看下 oracle 的相关函数。

它的使用文档可以在官网下载到。

本文分享自微信公众号 - Java技术大杂烩(tsmyk0715),作者:TSMYK

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring AOP 功能使用详解

    AOP 既熟悉又陌生,了解过 Spring 人的都知道 AOP 的概念,即面向切面编程,可以用来管理一些和主业务无关的周边业务,如日志记录,事务管理等;陌生是因...

    Java技术大杂烩
  • 你值得安装的24个chrome插件!!!

    chrome可能是程序员最喜欢用的浏览器之一了,它画面简洁,兼容性好,易于调试程序,更重要的是提供了丰富的插件。

    Java技术大杂烩
  • Win10 微软拼音添加小鹤双拼

    今天发现 Win10 自带的微软输入法还可以添加 小鹤双拼,终于可以抛弃其他的广告输入法了。

    Java技术大杂烩
  • 10g升级至11g exp的问题解决(23天)

    昨天升级数据库,从10.2.0.5.0升级到11.2.0.2.0.按照预定的步骤很快就操作完了。升级完成后,开始跑一些应用和Job.有一个Job开始报错,Job...

    jeanron100
  • 网站安全公司对于渗透测试难度见解

    最先,对于大家提出的难题,网站愈来愈难渗透,表明如今的安全防护技术性及其网站结构技术性的成熟情况是越来越健全了。次之,某一实际技术性方面的安全要求减少了,不可以...

    技术分享达人
  • 网站渗透测试 越来越难渗透

    最先,对于大家提出的难题,网站愈来愈难渗透,表明如今的安全防护技术性及其网站结构技术性的成熟情况是越来越健全了。次之,某一实际技术性方面的安全要求减少了,不可以...

    网站安全专家
  • ECMAScript 6笔记(Symbol, Proxy 和 Reflect)

    版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/articl...

    空空云
  • ES6之Reflect

    将Object对象一些明显属于语言内部的方法放到Reflect对象上,比如Object.defineProperty,未来新方法只部署在Reflect对象上。

    wade
  • Mysql设置UTF-8字符集

    [windows下安装mysql及设置字符集]http://blog.csdn.net/dream_an/article/details/51058710

    王小雷
  • 如何用Excel制作二维码!

    第2步:在“其他控件”对话框里,选择"Microsoft Barcode Control 16.0",单击【确定】。如下图示:

    BessCroft

扫码关注云+社区

领取腾讯云代金券