数值数据类型
序号 |
MySQL数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
BOOL |
不完全兼容 |
MySQL:BOOL/BOOLEAN类型实际映射为TINYINT类型。 GaussDB:支持BOOL,其中:
使用TRUE和FALSE是比较规范的用法(也是SQL兼容的用法)。 |
2 |
BOOLEAN |
不完全兼容 |
|
3 |
TINYINT[(M)] [UNSIGNED] |
支持 |
详细请参见说明。 |
4 |
SMALLINT[(M)] [UNSIGNED] |
支持 |
详细请参见说明。 |
5 |
MEDIUMINT[(M)] [UNSIGNED] |
支持 |
MySQL存储MEDIUMINT数据需要3字节。
GaussDB映射为INT类型,存储需要4字节。
其他差异请参见说明。 |
6 |
INT[(M)] [UNSIGNED] |
支持 |
详细请参见说明。 |
7 |
INTEGER[(M)] [UNSIGNED] |
支持 |
详细请参见说明。 |
8 |
BIGINT[(M)] [UNSIGNED] |
支持 |
详细请参见说明。 |
- 输入格式:
- 操作符:
- 负数显式类型转换:
MySQL:依据其对应的二进制将最高位替换成数值位计算结果,例如(-1)::uint4 = 4294967295。
- 其他差异:
- 聚集函数:
- variance:GaussDB表示样本方差,MySQL表示总体方差。
- stddev:GaussDB表示样本标准差,MySQL表示总体标准差。
- 显示宽度:
- 在为整型数字列指明宽度信息时,如果不同时指定ZEROFILL,则宽度信息在表结构描述中不显示。
- INSERT语句插入字符类型字段,GaussDB统一补齐0后插入。
- JOIN USING语句,涉及类型推导,MySQL默认第一张表列,GaussDB若结果为有符号类型则宽度信息失效,否则为第一张表字段宽度。
- greatest/least、ifnull/if、case when / decode,MySQL不补齐0,GaussDB在类型及宽度信息一致时补齐0。
- 作为函数/存储过程出入参、返回值时,MySQL支持功能、GaussDB语法不报错功能不支持。
序号 |
MySQL数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
DECIMAL[(M[,D])] |
支持 |
|
2 |
NUMERIC[(M[,D])] |
支持 |
|
3 |
DEC[(M[,D])] |
支持 |
|
4 |
FIXED[(M[,D])] |
不支持 |
- |
序号 |
MySQL数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
FLOAT[(M,D)] |
支持 |
|
2 |
FLOAT(p) |
支持 |
|
3 |
DOUBLE[(M,D)] |
支持 |
|
4 |
DOUBLE PRECISION[(M,D)] |
支持 |
|
5 |
REAL[(M,D)] |
支持 |
|
序号 |
MySQL数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
SERIAL |
不完全兼容 |
SERIAL介绍详见GaussDB 开发指南 数值类型章节。
规格上与MySQL的差异如下:
CREATE TABLE test(f1 serial, f2 CHAR(20));
|