达梦与MySQL部分语法的区别

前言:
达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统的最新版本是8.0版本,简称DM8。
DM8采用全新的体系架构,在保证大型通用的基础上,针对可靠性、高性能、海量数据处理和安全性做了大量的研发和改进工作,极大提升了达梦数据库产品的性能、可靠性、可扩展性,能同时兼顾OLTP和OLAP请求,从根本上提升了DM8产品的品质。

DM_SQL 语言符合结构化查询语言 SQL 标准,是标准 SQL 的扩充。它集数据定义、数据查询、数据操纵和数据控制于一体,是一种统一的、综合的关系数据库语言。 它功能强大,使用简单方便、容易为用户掌握。

语法区别

在达梦中需注意:
达梦中有内置参数可进行兼容其他数据库的部分使用语法

内置达梦数据库参数
COMPATIBLE_MODE=4   可兼容MySQL部分语法使用

兼容MySQL语法中查询列不在group by表达式

兼容order by排序=ASC时空值在首行显示,在末尾显示的参数

  1. 创建表的时候,不支持在列的后面直接加 comment 注释,使用 COMMENT ON IS 代替,如:
 COMMENT ON TABLE xxx IS xxxCOMMENT ON COLUMN xxx IS xxx
  1. 不支持 case-when-then-else

    例如:

  select case  when id = 2 then "aaa" when id = 3 then "bbb" else "ccc" end as testfrom (select id from person) tt;
  1. 不支持 if。

  2. 不支持 “”(双引号使用),只支持’’(单引号使用)

数据类型

1.不支持 longtext、TINYBLOB、MEDIUMBLOB、LONGBLOB类型,

可用 CLOB 代替

函数概括

  1. 不支持 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());
  1. 不支持 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'); --2018select datepart(month, '2018-12-13 08:45:00'); --12

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

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

c: 使用 extract 代替,
语法:extract(dtfield from date),从日期类型date中抽取dtfield对应的值
dtfield 可以是 year,month,day,hour,minute,second

 例子:select extract(year from  '2018-12-13 08:45:00'); --2018select extract(month from  '2018-12-13 08:45:00'); --12
  1. 不支持 substring_index 函数, 使用 substr / substring 代替,
语法:
substr(char[,m[,n]])
substring(char[from m[ for n]])
  1. 不支持 group_concat 函数,使用 wm_concat 代替,
例子:select wm_concat(id) as idstr from persion ORDER BY id ;
  1. 不支持 from_unixtime 函数,使用 round 代替
  语法:round(date[,format])
  1. current_timestamp 的返回值带有时区,
例子:select current_timestamp();2018-12-17 14:34:18.433839 +08:00
  1. convert(type, value) 函数,
 与 mysql 的 convert 一样,但是参数是反过来的,mysql 是 convert(value, type)
  1. 不支持 on duplicate key update,
 使用 merge into 代替
  1. 不支持 ignore,达梦使用方法如下
 insert ignore  into
  1. 不支持 replace into,
  使用 merge into 代替
  1. 不支持 auto_increment, 使用 identity 代替
  如: identity(1, 1),从 1 开始,每次增 1
  1. MySQL中REPEAT(str,count)函数使用上有区别在达梦中需要
REPEAT(char,n) /REPEATSTR(char,n)

达梦技术社区地址 https://eco.dameng.com

达梦数据库与MySQL部分语法区别相关推荐

  1. 达梦数据库和mysql的语法区别

    1.达梦数据库select查询字段默认是全大写英文,可以给别名加上双引号" ",比如 select real_name as "realName" from u ...

  2. 达梦数据库:mysql -dm数据同步dmhs工具搭建

    达梦技术社区: https://eco.dameng.com 注意 Dmhs对mysql的 支持:表的ddl 操作,注释,索引,数据同步,支持装载和增量同步: 对于其它对象如触发器,函数,存储过程,不 ...

  3. 达梦数据库和mysql索引引擎_达梦数据库如何建索引和使用

    一.建立索引的准则 1.1在表中插入数据后创建索引 一般情况下,在插入或装载了数据后,为表创建索引会更加有效率.如果在装载数据之前创建了一个或多个索引,那么在插入每行时DM数据库都必须更改和维护每个索 ...

  4. 国产达梦数据库查询和语法

    在达梦数据库的客户端用管理员登陆了以后,进行数据查询.如果此时有多个库的话,在对某个表进行数据查询的时候,需要先加上该表所在的库名,然后再点该表名.例如(数据库是DBA,表是TableA 那么查询的时 ...

  5. 达梦数据库简介及索引创建

    前言: 武汉达梦数据库股份有限公司成立于2000年,为中国电子信息产业集团(CEC)旗下基础软件企业,致力于数据库管理系统与大数据平台的研发.销售和服务,同时可为用户提供全栈数据产品和解决方案.多年来 ...

  6. 达梦数据库之创建表空间和用户

    我使用的环境是DM8,通过达梦管理工具和disql命令行两种方式进行演示.达梦数据库默认情况下可以使用SYSDBA用户使用默认表空间进行数据库操作.但是对于业务开发来说,使用普通用户和表空间进行使用保 ...

  7. 【达梦数据库】数据库测试

    文章目录 前言 1 数据库测试 1.1 测试流程 1.2 测试内容 1.3 测试标准 2 TPC-C基准测试 2.1 概念介绍 2.2 模型介绍 2.3 测试流程 2.4 工具介绍 2.5 操作步骤 ...

  8. 达梦数据库兼容Oracle之SQL语法(一)

    对于刚从Oracle数据库转到达梦数据库,SQL语法的使用基本一致,有一些差别,下面总结的一些常用SQL语法差别. 文章目录 1.导入数据 2.返回查询数据的返回行 3 外连接用法 4.多列IN用法 ...

  9. 达梦数据库中迁移过来的数据,在Mysql中批量添加注释,修改注释

    一.原因 数据是从达梦数据库中迁移过来的,迁移完成注释丢失 二.方法 利用 information_schema.COLUMNS 这个表 三.执行步骤 1.这是达梦数据库导出的注释 2.达梦的数数据库 ...

最新文章

  1. PTA 基础编程题目集 7-27 冒泡法排序 C语言
  2. 南瓜派php,南瓜派_【顶级厨师】南瓜派_日志_美食天下
  3. 脚本标记 - 异步和延迟
  4. 冰岛试行四天工作制大获成功:每周缩短五小时,生产力没变!
  5. 安装“ubuntu-8.04-server”(中)
  6. c语言用hash方式数组去重,js数组去重的hash方法
  7. 《中国人工智能学会通讯》——11.65 双重代价敏感的属性分类模型
  8. MOCTF-Web-登录就对了
  9. X11硬线接口信号 与Profisafe安全输入输出信号之间的区别与比较
  10. 自动加密企业关键业务数据 赛门铁克推出全新信息保护解决方案
  11. composer-安装插件包
  12. C语言 BMP24位变单色,怎么将24位色BMP图片改为单色或16色?(2)
  13. 2020年短视频及电商直播趋势报告
  14. explain如何查看mysql_MySQL(九)|如何查看执行计划(Explain)
  15. 自适应巡航跟车距离怎么调_2020款奔驰GLS450改装原厂配件 ACC自适应巡航系统 香氛香薰负离子...
  16. 【功能测试】part1
  17. 计算机网络有什么部分组成,计算机网络有哪些组成部分和详细对比
  18. java名片_JavaWeb练习-网上名片管理系统
  19. 在Ubuntu/Linux环境下开放3306端口
  20. Python之列表(学习笔记)

热门文章

  1. 说说我们的工程师文化
  2. 向日葵远程操作软件使用教程
  3. 【网络安全学习】(一)中华人民共和国网络安全法
  4. 四川计算机网络学校,成都计算机网络应用专业如何
  5. 考不上本科都是智商有问题?
  6. 自己动手写网络抓包工具
  7. 固定Excel首行和首列作为标题以及某些行和列
  8. mysql 江西省行政区划数据表
  9. 从底层PLC设备到信息化,究竟有多远?
  10. 编程思想 之「字符串」