
# 数值数据类型
除特别说明外，MySQL兼容性M-Compatibility模式中的数据类型精度、标度、位数大小等默认不支持用浮点型数值定义，建议使用合法的整型数值定义。
表1整数类型 
| MySQL数据库                                   | GaussDB数据库 | 差异                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|
| BOOL                                       | 支持，存在差异    | 输出格式：GaussDB中SELECT TRUE/FALSE输出结果为t/f，MySQL为1/0。 MySQL：BOOL/BOOLEAN类型实际映射为TINYINT类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| BOOLEAN                                    | 支持，存在差异    | 输出格式：GaussDB中SELECT TRUE/FALSE输出结果为t/f，MySQL为1/0。 MySQL：BOOL/BOOLEAN类型实际映射为TINYINT类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| TINYINT\[(M)\] \[UNSIGNED\] \[ZEROFILL\]   | 支持，存在差异    | 输入格式： - MySQL： 整型类型对于类似"1.2.3.4.5"有多个小数点的字符串形式输入，在宽松模式下MySQL会发生错误解析，抛出WARNING并插表成功，例如将"1.2.3.4.5"插入表后值为12。   - GaussDB： 整型类型对于类似"1.2.3.4.5"有多个小数点的的字符串形式输入，在宽松模式下，会将第二个小数点后的字符当作非法字符全部截断，抛出WARNING并插表成功，例如将"1.2.3.4.5"插入表后值为1，"1.6.3.4.5"插入表后值为2。                                                                                                                             |
| SMALLINT\[(M)\] \[UNSIGNED\] \[ZEROFILL\]  | 支持，存在差异    | 输入格式： - MySQL： 整型类型对于类似"1.2.3.4.5"有多个小数点的字符串形式输入，在宽松模式下MySQL会发生错误解析，抛出WARNING并插表成功，例如将"1.2.3.4.5"插入表后值为12。   - GaussDB： 整型类型对于类似"1.2.3.4.5"有多个小数点的的字符串形式输入，在宽松模式下，会将第二个小数点后的字符当作非法字符全部截断，抛出WARNING并插表成功，例如将"1.2.3.4.5"插入表后值为1，"1.6.3.4.5"插入表后值为2。                                                                                                                             |
| MEDIUMINT\[(M)\] \[UNSIGNED\] \[ZEROFILL\] | 支持，存在差异    | MySQL存储MEDIUMINT数据需要3字节。 - 带符号的范围是-8,388,608 \~ +8,388,607。  - 无符号的范围是0 \~ +16,777,215。   GaussDB映射为INT类型，存储需要4字节，通过边界值判断限制取值范围。 - 带符号的范围是-8,388,608 \~ +8,388,607。  - 无符号的范围是0 \~ +16,777,215。   其他差异请参见表格下方说明中的内容。 |
| INT\[(M)\] \[UNSIGNED\] \[ZEROFILL\]       | 支持，存在差异    | 输入格式： - MySQL： 整型类型对于类似"1.2.3.4.5"有多个小数点的字符串形式输入，在宽松模式下MySQL会发生错误解析，抛出WARNING并插表成功，例如将"1.2.3.4.5"插入表后值为12。   - GaussDB： 整型类型对于类似"1.2.3.4.5"有多个小数点的的字符串形式输入，在宽松模式下，会将第二个小数点后的字符当作非法字符全部截断，抛出WARNING并插表成功，例如将"1.2.3.4.5"插入表后值为1，"1.6.3.4.5"插入表后值为2。                                                                                                                  |
| INTEGER\[(M)\] \[UNSIGNED\] \[ZEROFILL\]   | 支持，存在差异    | 输入格式： - MySQL： 整型类型对于类似"1.2.3.4.5"有多个小数点的字符串形式输入，在宽松模式下MySQL会发生错误解析，抛出WARNING并插表成功，例如将"1.2.3.4.5"插入表后值为12。   - GaussDB： 整型类型对于类似"1.2.3.4.5"有多个小数点的的字符串形式输入，在宽松模式下，会将第二个小数点后的字符当作非法字符全部截断，抛出WARNING并插表成功，例如将"1.2.3.4.5"插入表后值为1，"1.6.3.4.5"插入表后值为2。                                                                                                                  |
| BIGINT\[(M)\] \[UNSIGNED\] \[ZEROFILL\]    | 支持，存在差异    | 输入格式： - MySQL： 整型类型对于类似"1.2.3.4.5"有多个小数点的字符串形式输入，在宽松模式下MySQL会发生错误解析，抛出WARNING并插表成功，例如将"1.2.3.4.5"插入表后值为12。   - GaussDB： 整型类型对于类似"1.2.3.4.5"有多个小数点的的字符串形式输入，在宽松模式下，会将第二个小数点后的字符当作非法字符全部截断，抛出WARNING并插表成功，例如将"1.2.3.4.5"插入表后值为1，"1.6.3.4.5"插入表后值为2。                                                                                                                  |
   
表2任意精度类型 
| MySQL数据库                          | GaussDB数据库 | 差异                                                                              |
|:---|:---|:---|
| DECIMAL\[(M\[,D\])\] \[ZEROFILL\] | 支持，存在差异    | MySQL DECIMAL用一个9\*9的数组存储数值，整数部分和小数部分分开存储，超过该长度时优先截小数部分。GaussDB只会在整数位数超过81位时截断。 |
| NUMERIC\[(M\[,D\])\] \[ZEROFILL\] | 支持，存在差异    | MySQL DECIMAL用一个9\*9的数组存储数值，整数部分和小数部分分开存储，超过该长度时优先截小数部分。GaussDB只会在整数位数超过81位时截断。 |
| DEC\[(M\[,D\])\] \[ZEROFILL\]     | 支持，存在差异    | MySQL DECIMAL用一个9\*9的数组存储数值，整数部分和小数部分分开存储，超过该长度时优先截小数部分。GaussDB只会在整数位数超过81位时截断。 |
| FIXED\[(M\[,D\])\] \[ZEROFILL\]   | 支持，存在差异    | MySQL DECIMAL用一个9\*9的数组存储数值，整数部分和小数部分分开存储，超过该长度时优先截小数部分。GaussDB只会在整数位数超过81位时截断。 |
   
表3浮点类型 
| MySQL数据库                               | GaussDB数据库 | 差异                                   |
|:---|:---|:---|
| FLOAT\[(M,D)\] \[ZEROFILL\]            | 支持，存在差异    | FLOAT数据类型不支持KEY键值分区策略分区表。            |
| FLOAT(p) \[ZEROFILL\]                  | 支持，存在差异    | FLOAT数据类型不支持KEY键值分区策略分区表。            |
| DOUBLE\[(M,D)\] \[ZEROFILL\]           | 支持，存在差异    | DOUBLE数据类型不支持KEY键值分区策略分区表。           |
| DOUBLE PRECISION\[(M,D)\] \[ZEROFILL\] | 支持，存在差异    | DOUBLE PRECISION数据类型不支持KEY键值分区策略分区表。 |
| REAL\[(M,D)\] \[ZEROFILL\]             | 支持，存在差异    | REAL数据类型不支持KEY值分区策略分区表。              |
   
