欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

MySQL 与达梦的区别简介

最编程 2024-04-26 14:52:12
...

背景

由于项目上的需要,把项目实现国产化,甲方要求使用国产的达梦数据库,这几天一直在和达梦数据库打交道,虽然作为菜鸡的我只是对它进行CRUD但是它和MySQL区别还是让我踩了不少坑(本人平时MySQL使用较多),SQL的写法也有一些区别,这些区别也给我带来了一些困扰。

与MySQL的区别

  • 时间处理

    //mysql:
    convert(Date,DATE)
    date\_format(Date,'%Y-%m-%d %H:%i:%s')
    //达梦:
    to\_char(Date,'YYYY-MM-DD')
    to\_char(Date,'YYYY-MM-DD HH24:MI:SS')
    to\_date(Date,'YYYY-MM-DD HH24:MI:SS')
    date\_format(Date,'%Y-%m-%d %H:%i:%s')
    

    如mysql的convert('时间',DATE) 达梦可以使用to_char/date_format('','%Y-%m-%d %H:%i:%s')或者convert(DATE,'时间')

  • 达梦关键字

    达梦数据库返回字段为关键字时一律返回大写(不论字段是否大小写同时存在),除非使用双引号“”,如
    value,time,times,sum,max,min,avg,type,count,date,year,month,day,hour,online
    等,如select sum(Date) as time from ..

  • Data_sub函数

    DATE_SUB(date,INTERVAL expr type) => DATE_SUB(CURDATE(), INTERVAL '1' MONTH)
    

    expr 在达梦中需要加单引号,建议使用到这类函数时数字加上单引号。

  • Updeat

    达梦数据库 update 时 自增列不能修改,where字段不能修改(如 where name=''则name不能修改)

  • 其他区别汇总

    1. dm数据库的sql语句中有用到表名的地方,前面必须加上模式名,格式为模式名.表名。
    2. dm数据库使用的sql语句模式名,表明,字段名等必须加双引号,字段值加单引号。
    3. dm数据库使用的sql语句不支持连接关键字。

总结

关于达梦数据库之前确实没有什么接触,现在也主要是对数据库的表进行crud,但是不得不吐槽一下它那个管理工具,可能是其他数据库连接工具用久了,它的管理工具用起来是真的不顺手,最开始的时候甚至练查询语句都报错(一开始不知道要加模式名),再就是一些日期处理的时候遇到过坑,如果文章中有未提到的语法或者函数区别,欢迎大家补充一起学习共同进步。