各主流关系式数据库的数据类型对比


 

MySQL

Oracle

SQLServer

PostgreSQL

SQLite

DB2

有符号32位整数

INTEGER/INT

见“高精度小数”

INT

INTEGER

INTEGER

INTEGER/INT

无符号32位整数

INT UNSIGNED

无

无

无

无

无

有符号64位整数

BIGINT

见“高精度小数”

BIGINT

BIGINT

INTEGER

BIGINT

无符号64位整数

BIGINT UNSIGNED

无

无

无

无

无

有符号16位整数

SMALLINT

见“高精度小数”

SMALINT

SMALINT

INTEGER

SMALINT

无符号16位整数

SMALLINT UNSIGNED

无

无

无

无

无

有符号8位整数

TINYINT

见“高精度小数”

无

无

INTEGER

无

无符号8位整数

TINYINT UNSIGNED

无

TINYINT

无

无

无

高精度小数

DECIMAL(precision, scale)

precision范围1至65,scale范围0至30(不大于precision)

NUMBER(precision, scale)

precision范围1至38,scale范围-84至127

DECIMAL(precision, scale)

precision范围1至38,scale范围0至precision

NUMERIC(precision, scale)

precision范围1至1000,scale范围0至precision

NUMERIC

DECIMAL(precision, scale)

precision范围1至31,scale范围0至precision

32位浮点数

FLOAT

BINARY_FLOAT

REAL

REAL

无

REAL

64位浮点数

DOUBLE

BINARY_DOUBLE

DOUBLE PRECISION

DOUBLE PRECISION

REAL

DOUBLE

布尔值

无

无

无

BOOLEAN

无

无

定长字符串

CHAR(size)

size最多255

CHAR(size)

最多2000字节/字符

CHAR(size)

size最多8000

CHAR(size)

见“长字符串”

CHAR(size)

最多255字节

Unicode
定长字符串

见“定长字符串”

NCHAR

最多2000字节

NCHAR(size)

size最多4000

见“定长字符串”

见“长字符串”

见“定长字符串”

变长字符串

VARCHAR(size)

size最多65535

VARCHAR2(size)

最多4000字节/字符

VARCHAR(size)

size最多8000

VARCHAR(size)

见“长字符串”

VARCHAR(size)

最多32704字节

Unicode
变长字符串

见“变长字符串”

NVARCHAR2(size)

最多4000字节

NVARCHAR(size)

size最多4000

见“变长字符串”

见“长字符串”

见“变长字符串”

时间戳

TIMESTAMP(fractional_seconds)

范围:'1970-01-01 00:00:01.000000'至 '2038-01-19 03:14:07.999999'

TIMESTAMP(fractional_seconds)

范围:'-4712-01-01'至'9999-12-31'

见“日期时间”

TIMESTAMP(fractional_seconds)

范围:4713 BC至294276 AD,最大精度1ms

无

TIMESTAMP

范围:0001-01-01 00:00:00.000000000至9999-12-31 24:00:00.000000000

日期时间

DATETIME(fractional_seconds)

范围:'1000-01-01 00:00:00.000000'至'9999-12-31 23:59:59.999999'

DATE

范围:'-4712-01-01'至'9999-12-31'

DATETIME

范围:1753-01-01 00:00:00至9999-12-31 23:59:59.997

DATETIME2(fractional_seconds)

范围:0001-01-01 00:00:00至9999-12-31 23:59:59.9999999

见“时间戳”

无

见“时间戳”

日期

DATE

范围:'1000-01-01'至'9999-12-31'

见“日期时间”

DATE

范围:0001-01-01至9999-12-31

DATE

范围:4713 BC至5874897 AD

无

DATE

范围:0001-01-01至9999-12-31

时间

TIME(fractional_seconds)

范围:'-838:59:59.000000' to '838:59:59.999999'

无

TIME(fractional_seconds)

范围:00:00:00.0000000至23:59:59.9999999

TIME(fractional_seconds)

范围:00:00:00至24:00:00,最大精度1ms

无

TIME

范围:00:00:00至24:00:00

长字符串

TEXT

最多65533字节

MEDIUMTEXT

最多16MB - 3字节

LONGTEXT

最多约4GB - 4字节

CLOB

TEXT

TEXT

TEXT

CLOB

Unicode
长字符串

见“长字符串”

NCLOB

NTEXT

见“长字符串”

见“长字符串”

见“长字符串”

二进制

BLOB

最多65533字节

MEDIUMTEXT

最多约16MB - 3字节

LONGBLOB

最多约4GB - 4字节

BLOB

VARBINARY

BYTEA

BLOB

BLOB

JSON

JSON

无

无

JSON

无

无