MySQL、PostgreSQL和DB2之间的数据类型对比
SQL ANSI标准规定了关系数据库系统中使用的数据类型的规则。但是,并非每种数据库平台都支持标准委员会定义的每个数据类型。而且,特定数据类型的厂商实现可能与标准的规定不同,甚至在所有数据库厂商之间互不相同。因此,尽管许多PostgreSQL和DB2数据类型在名称和/或含义方面是相似的,但是也有许多需要注意的差异。
表2列出最常用的DB2数据类型。我们在后面的小节中提供MySQL和PostgreSQL数据类型与DB2最接近的匹配。
尽管DB2对SQL有一些限制(比如对约束名的长度限制、数据类型限制等等),但是各个新版本正在系统化地消除这些限制。
表2. DB2数据类型
数据类型
说明
BIGINT
存储有符号或无符号整数,使用8字节的存储空间。
BLOB
BLOB(n)
存储长度可变的二进制数据,长度最大为2 GB。超过1 GB的长度不进行日志记录。
CHAR(n)
CHARACTER(n)
存储固定长度的字符数据,长度最大为254字节。使用 ‘n’字节的存储空间。
CHAR(n) FOR BIT DATA
存储固定长度的二进制值。
CLOB
CLOB(n)
存储长度可变的字符数据,长度最大为2 GB。超过1 GB的长度不进行日志记录。
DATE
存储日历日期,不包含天内的时间。使用4字节的存储空间。
DEC(p,s)
DECIMAL(p,s)
NUM(p,s)
NUMERIC(p,s)
采用精度(p)1到31和刻度(s)0到31来存储数值。使用(p/2) +1字节的存储空间。
DOUBLE
DOUBLE PRECISION
FLOAT
存储浮点数,使用8字节的存储空间。
FLOAT(p)
采用精度(p)1到53来存储数值。如果p <= 24,那么相当于REAL。如果p >= 25,那么相当于DOUBLE PRECISION。
GRAPHIC(n)
用于National Language Support(NLS)和长度固定的字符串(常常是DBCS),长度最大为127字