各主流关系式数据库的数据类型对比
|
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 |
无 |
无 |