mysql和db2 语句的区别

db2和mysql在sql的语法上有很大的不同。本文就针对这些不同进行记录。
【mysql和db2 语句的区别】记录可能不全,会不断进行完善
一、建表语句

DB2 MYSQL
自增 GENERATED ALWAYS AS IDENTITY
AUTO_INCREMENT

默认当前时间
DEFAULT CURRENT TIMESTAMP

DEFAULT CURRENT_TIMESTAMP

二、查询语句
DB2 MYSQL
CONCAT CONCAT(a,CAONCAT(b,c)) CONCAT(a,b,c)
转时间 TI_DATE(a,'yyyy-mm-dd hh24:mi:ss') STR_TO_DATE(a,,'%Y-%m-%d %H:%i:%s')
前a行 FETCH FIRST a ROWS ONLY LIMIT a
coalesce

返回参数中的第一个非空表达式(从左向右依次类推)(a,b,c)
coalesce(null,2,3)// Return 2 coalesce(null,null,3)// Return 3

转字符串
TO_CHAR(a, 'yyyy-mm-dd hh24:mi:ss')

DATE_FORMAT(a,'%Y-%m-%d %H:%i:%s')
三、修改表结构语句

四、索引

附录(一些坑):
1. ||在db2和mysql中存在很大的不同:
substr( START_TIME, 1, 10 ) || ' ' || substr( START_TIME, 12, 8 ) LIKE CONCAT( '%', CONCAT( '2018-11-22', '%' ) )
在db2中|| 是表示拼接,这个语句就是正常的含义
但是mysql中||是OR的意思,所以上面这个判断一定是true



    推荐阅读