更新时间:2024-06-29 GMT+08:00

数字类型

概述

数据类型是数据的一个基本属性,用于区分不同类型的数据。不同的数据类型所占的存储空间不同,能够进行的操作也不相同。数据库中的数据存储在数据表中。数据表中的每一列都定义了数据类型,用户存储数据时,须遵从这些数据类型的属性,否则可能会出错。下表列出了MySQL数字类型到GaussDB(DWS)的转换示例。

类型对照

表1 数字类型对照表

MySQL数字类型

MySQL INPUT

GaussDB(DWS) OUTPUT

DEC

DEC

DEC[(M[,D])] [UNSIGNED] [ZEROFILL]

DECIMAL

DECIMAL[(M[,D])]

DECIMAL

DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]

DECIMAL[(M[,D])]

DOUBLE PRECISION

DOUBLE PRECISION

DOUBLE PRECISION [(M[,D])] [UNSIGNED] [ZEROFILL]

DOUBLE PRECISION

DOUBLE PRECISION

DOUBLE

DOUBLE[(M[,D])] [UNSIGNED] [ZEROFILL]

DOUBLE PRECISION

FIXED

FIXED

FIXED[(M[,D])] [UNSIGNED] [ZEROFILL]

DECIMAL

DECIMAL[(M[,D])]

FLOAT

FLOAT

FLOAT [(M[,D])] [UNSIGNED] [ZEROFILL]

FLOAT(p) [UNSIGNED] [ZEROFILL]

REAL

REAL

REAL

INT

INT

INT(p) [UNSIGNED] [ZEROFILL]

INTEGER

INTEGER(p)

INTEGER

INTEGER

INTEGER(p) [UNSIGNED] [ZEROFILL]

INTEGER

INTEGER(p)

MEDIUMINT

MEDIUMINT

MEDIUMINT(p) [UNSIGNED] [ZEROFILL]

INTEGER

INTEGER(p)

NUMERIC

NUMERIC

NUMERIC [(M[,D])] [UNSIGNED] [ZEROFILL]

DECIMAL

DECIMAL[(M[,D])]

REAL

REAL[(M[,D])]

REAL/DOUBLE PRECISION

SMALLINT

SMALLINT

SMALLINT(p) [UNSIGNED] [ZEROFILL]

SMALLINT

TINYINT

TINYINT

TINYINT(n)

TINYINT(n) ZEROFILL

TINYINT(n) UNSIGNED ZEROFILL

SMALLINT

SMALLINT

SMALLINT

TINYINT

  • TINYINT类型做转换时,如果存在无符号类型(UNSIGNED)修饰则转换为TINYINT,否则转换为SMALLINT。
  • REAL类型做转换时,默认转换为DOUBLE PRECISION,如果配置文件(features-mysql.properties)中table.database.realAsFlag标志为true时(默认false),转换为REAL

输入示例TINYINT

1
2
3
4
5
6
7
CREATE TABLE IF NOT EXISTS `runoob_dataType_test`(
    `dataType_1` TINYINT,
    `dataType_2` TINYINT(0),
    `dataType_3` TINYINT(255),
    `dataType_4` TINYINT(255) UNSIGNED ZEROFILL,
    `dataType_5` TINYINT(255) ZEROFILL
);

输出示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
CREATE TABLE IF NOT EXISTS "public"."runoob_datatype_test"
(
  "datatype_1" SMALLINT,
  "datatype_2" SMALLINT,
  "datatype_3" SMALLINT,
  "datatype_4" TINYINT,
  "datatype_5" SMALLINT
)
  WITH ( ORIENTATION = ROW, COMPRESSION = NO )
  NOCOMPRESS
  DISTRIBUTE BY HASH ("datatype_1");