| 差异父类 | 差异子类 | 详情(MySQL) | 详情(Vastbase G100) | 是否可以兼容 | 实现方式 |
| 字符集和排序规则 | 字符集 | utf8mb4,UTF8 等 | utf8mb4,UTF8等 | 部分兼容 | utf8mb4,UTF8等 |
| 排序规则 | utf8_general_ci
不区分大小写, 这个你在注册用户名和邮箱的时候就要使用。 utf8_general_cs 区分大小写, 如果用户名和邮箱用这个 就会照成不良后果 utf8_bin: 字符串每个字符串用二进制数据编译存储。 区分大小写, 而且可以存二进制的内容 utf8_general_ci 校对速度快, 但准确度稍差。 utf8_unicode_ci 准确度高, 但校对速度稍慢 |
LOCALE,Chinese(Simplified)_China.936 Chinese(Simplified),China |
部分兼容 | LOCALE | |
| 数据类型 | 数字类型 | MEDIUMINT | 不兼容 | 用其他类型比如int | |
| INT | integer | 兼容 | |||
| FLOAT | real | 兼容 | |||
| DOUBLE | double precision | 兼容 | |||
| BIT | bytea | 兼容 | |||
| AUTO_INCREMENT | smallserial、AUTO_INCREMENT | 兼容 | |||
| 日期和时间类型 | TIME | time [ (p) ] [ without time zone ] | 兼容 | ||
| DATETIME | datetime、timestamp [ (p) ] [ without time zone ] | 兼容 | |||
| TIMESTAMP | timestamp [ (p) ] with time zone | 兼容 | |||
| YEAR | 不兼容 | 存储为datetime,格式化显示 | |||
| 字符串类型 | BINARY | bit、binary | 兼容 | ||
| VARBINARY | bit varying | 兼容 | |||
| 函数类型 | 时间函数 | SYSDATE() | Sysdate、now() | 兼容 | |
| DATE_ADD(DATE,INTERVAL 2 MONTH) | add_months(date,n) | 兼容 | |||
| DATEDIFF(DATE,DATE) | (date-date)*unit | 兼容 | |||
| DATE_ADD(DATE,INTERVAL -1 DAY) | last_day(date) | 兼容 | |||
| DATE_ADD(DATE, INTERVAL 1 DAY) | date_add((date, interval 1 day)、next_day(date,'weekday') | 兼容 | |||
| CURDATE() | curdate() | 兼容 | |||
| TO_DAYS(DATE) | to_days(date) | 兼容 | |||
| TIMESTAMPDIFF(MONTH, DATE, DATE); | months_between(date,date) | 兼容 | |||
| DATE_FORMAT(date,format tex) | date_format(date timestamp with time zone,format text)、 | 兼容 | |||
| date_format(date timestamp without time zone,format text) | 兼容 | ||||
| YEARWEEK(DATE,MODE) | yearweek(date,mode) | 兼容 | |||
| YEAR(date) | year(date) | 兼容 | |||
| MONTH(DATE) | month(date) | 兼容 | |||
| 字符串函数 | CHAR(NUMBER,...) | chr(integer) | 兼容 | ||
| REPLACE(STR,FROM_STR,TO_STR) | replace(string text, from text, to text) | 兼容 | |||
| INSTR(STR,SUB_STR) | instr(string,substring[,position,occurrence]) | 兼容 | |||
| SUBSTR(STR,POS,LEN) | substr(string,from,count) | 兼容 | |||
| LOCATE(SUB_STR, STR) | instr(string,substring[,position,occurrence]) | 兼容 | |||
| CHAR_LENGTH(STR) | length(string) | 兼容 | |||
| LPAD(STR,LEN,C) | lpad(string varchar, length int[, repeat_string varchar]) | 兼容 | |||
| LOWER(STR) | low(string) | 兼容 | |||
| FIND_IN_SET(STR,STRLIST) | find_in_set(str,strlist) | 兼容 | |||
| null值处理函数 | IFNULL(EXPR1,EXPR2) | nvl( expr1 , expr2 ) | 兼容 | ||
| ISNULL(EXPR1) | 不兼容 | nvl( expr1 , expr2 )代替 | |||
| SQL对比 | 分页查询 | limit | rownum,limit | 兼容 | |
| 数据导入导出 | SELECT...INTO OUTFILE | copy | 兼容 | ||
| 窗口函数 | //CUME_DIST()
over_clause 返回一个值在一组值中的累积分布;即分区值小于或等于当前行值的百分比。这表示在窗口分区的窗口排序中在当前行之前或与当前行对等的行数除以窗口分区中的总行数。返回值范围从 0 到 1。 CUME_DIST() OVER ( PARTITION BY expr, ... ORDER BY expr [ASC | DESC], ... ) //PERCENT_RANK() 百分比排名值 PERCENT_RANK() OVER ( PARTITION BY expr,... ORDER BY expr [ASC|DESC],... ) //ROW_NUMBER() 其分区内的当前行数 ROW_NUMBER() OVER (<partition_definition><order_definition>) //窗口框架第一行的参数值 FIRST_VALUE(expression) OVER ( [partition_clause] [order_clause] [frame_clause] ) |
RANK() ROW_NUMBER() DENSE_RANK() PERCENT_RANK() CUME_DIST() NTILE(num_buckets integer) LAG(value any [, offset integer [, default any ]]) LEAD(value any [, offset integer [, default any ]]) FIRST_VALUE(value any) LAST_VALUE(value any) NTH_VALUE(value any, nth integer) |
兼容 | ||
| 其他差异 | 注释 | # | '--' | ||
| 大小写 | MySQL 大小写敏感 可以通过配置修改 | Vastbase
G100 大小写不敏感, SQL语句中所有 的大写均转换为小写来解释;双引号可引用到 大写的定义 |
部分兼容 | 小写没关系, 双引号可引用到 大写的定义 |
|
| 分区 | 不支持指定默认分区,最多只支持2级 分区,不支持表达式分区。 |
pg中可以通过default分区名的方式指定默认分区,并且支持多级别的分区,且支持不同种类分区的任意组。pg还支持表达式分区,不过必须得是immutable类型表达式。 | 兼容 | ||
| replace into | 支持 | 不支持 | INSERT INTO table_name VALUES() ON conflict (唯一索引字段) DO UPDATE ... | ||
| 表关联多字段更新 | 不支持 | UPDATE
table SET (COLUMN_name1,COLUMN_name2) = (SELECT COLUMN_name1,COLUMN_name2 FROM table WHERE COLUMN_name = COLUMN_name); |
不兼容 | 改写为多个单字段更新SQL | |
| auto_increment | 支持 | 支持 | 兼容 | ||
| 插入并返回 insert | 不支持 | 支持 | 不兼容 | INSERT INTO table_name (did,dname) VALUES (DEFAULT,’XYZ’) RETURNING did; | |
| if not exist | 支持 | 支持 | 兼容 | ||
| 在创建、修改对象等语句中指定COMMENT选项 | 支持 | 支持 | 兼容 | ||
| 支持字符处理函数sha/sha1/sha2 | 支持 | 支持 | 兼容 | ||
| DELETE支持从指定分区(或子分区)删除数据 | 支持 | 支持 | 兼容 | ||
| UPDATE支持ORDER BY和LIMIT | 支持 | 支持 | 兼容 | ||
| DELETE支持ORDER BY | 支持 | 支持 | 兼容 | ||
| DELETE支持从多个表中删除数据 | 支持 | 支持 | 兼容 | ||
| 支持set全局变量增强 | 支持 | 支持 | 兼容 | ||
| 支持在会话中set用户自定义变量 | 支持 | 支持 | 兼容 | ||
| 支持group_concat函数 | 支持 | 支持 | 兼容 | ||
| 支持安全函数aes_decrypt/aes_encrypt | 支持 | 支持 | 兼容 | ||
| 支持SET数据类型 | 支持 | 支持 | 兼容 | ||
| ''和null | 不等价 | 等价 | 兼容 | ||
| 不可见的索引 | 支持 | 不支持 | 不兼容 | 可以通过测试获得同样的效果 | |
| 密钥分区 | 支持 | 不支持 | 不兼容 | 用的极少 |
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




