DB2内置基本类型主要分为四大类:数值、字符串、日期时间和XML。除上述外,还支持用户自定义类型,比如数组类型、游标类型、Row、大对象LOB等。
一、数值型
类型分类 | 类型名称 | 范围 |
整型 | smallint | 1、16bit 2、[-32768,32768] |
integer | 1、4bytes,32bit 2、[-2147483648,2147483647] | |
int | 等同于integer | |
bigint | 1、8bytes,64bit 2、[-9223372036854775808,9223372036854775807] | |
小数型 | decimal(p,s) | 1、一个十进制数 2、p为精度,表示十进制数的总位数,p小于32 3、小数型的值压缩的十进制数 4、小数型最大精度p为31位 5、decimal小数位超过自动截断,遵循四舍五入 |
decimal | p默认5,s默认0 | |
dec(p,s) | ||
numeric(p,s) | ||
num(p,s) | ||
十进制浮点数 | decfloat(16) | 1、最大指数384: [-9.999999999999999E+384,9.999999999999999E+384] 2、最小指数-383: [-1.000000000000000E-383,1.000000000000000E-383] 3、最小正值次正规数:1*10的-398次方 4、十进制浮点数特殊值:NAN、-NAN、SNAN、-SNAN、INFINITY和-INFINITY。 5、次正规数:指数小于最小指数的非零数字。 |
decfloat(34) | 1、最大指数6144: [-9.999999999999999999999999999999999E+6144,9.999999999999999999999999999999999E+6144] 2、最小指数-6143: [-1.000000000000000000000000000000000E-6143,1.000000000000000000000000000000000E-61431 3、最小正值次正规数:1*10的6176次方 4、最小正值正规数: | |
单精度浮点数(近似) | real | 1、最大指数38:[-3.402E+38,+3.402E+38] 2、最小指数-37:[-1.175E-37,+1.175E-37] |
双精度浮点数(近似) | double | 1、最大指数308:[-1.79769E+308,+1.79769+308] 2、最小指数-307:[-2.225E-307,+2.225E-307] |
double precision | ||
float |
二、字符串类型
类型分类 | 类型名称 | 是否可变 | 范围 |
字符字符串 | char | 否,定长 | 1、bytes:254 2、codeunits32:63 |
varchar | 是,变长 | 1、bytes:32672 2、codeunits32:8168 3、按页面大小限制,每页开销176bytes (1)4K:3920bytes (2)8K:8016bytes (3)16K:16208bytes (4)32K:32592bytes 4、数据库配置extended_row_sz参数为enable,则varchar最大字节数为1048319 | |
long varchar | --不推荐,未来可能除去 | bytes:32700 | |
clob | 是,变长 | 1、bytes:2147483647 2、codeunits32:536870911 | |
图形字符串 | graphic | 否,定长 | 1、bytes(双字节字符)|codeunits16:127 2、codeunits32:63 |
vargraphic | 否,定长 | 1、bytes(双字节字符)|codeunits16:16336 2、codeunits32:8168 3、按页面大小限制,每页开销176bytes (1)4K:1960bytes (2)8K:4008bytes (3)16K:8104bytes (4)32K:16296bytes 4、数据库配置extended_row_sz参数为enable,则varchar最大字节数为1048319 | |
long vargraphic | -- | bytes(双字节字符):16350 | |
dbclob | 否,定长 | 1、bytes(双字节字符)|codeunits16:1073741823 2、codeunits32:536870911 | |
二进制字符串 | blob | 是,变长 | bytes:2147483647 |
本地字符映射配置 | nchar_mapping | -- | 1、Unicode数据库,根据nchar_mapping的值来定义长度: (1)char_cu32 1)nchar是char(codeunits32)的同义词 2)nvarchar是varchar(codeunits32)的同义词 3)nclob是clob(codeunits32)的同义词 (2)graphic_cu32 1)nchar是graphic(codeunits32)的同义词 2)nvarchar是vargraphic(codeunits32)的同义词 3)nclob是dbclob(codeunits32)的同义词 (3)graphic_cu16 1)nchar是graphic(codeunits16)的同义词 2)nvarchar是vargraphic(codeunits16)的同义词 3)nclob是dbclob(codeunits16)的同义词 2、非Unicode数据库:not applicable |
1、修改本地映射配置步骤:
(1)在DB2命令窗口执行db2 get db cfg for 数据库的名称
(2)查看nchar_maping的值
(3)在DB2命令窗口执行db2 update cfg for 数据库的名称 using nchar_mapping nchar_mapping的值
(4)修改成功后,断开所有应用程序与数据库的连接
2、修改本地字符映射配置应注册以下几点:
(1)因测试,断开连接后重启了DB2服务
(2)修改本地字符映射配置,需要执行refresh table刷新查询,执行set integrity检查并更新表中不满足约束的数据,删除、注册绑定并重新创建所有可能受影响的基于表达的索引,避免索引中的值不正确。
三、日期时间型
类型分类 | 类型名称 | 范围 |
日期类型 | date | [0001-01-01,9999-12-31] |
时间类型 | time | [00:00:00,24:00:00] |
日期时间类型 | timestamp | 1、[0001-01-01 00:00:00.000000000000,9999-12-31 24:00:00.000000000000] 2、[0001-01-01 00:00:00,9999-12-31 24:00:00] |
四、其他类型
类型分类 | 类型名称 | 范围 | 备注 |
可扩展标记语言 | XML | 1、级别,xml文档的最大深度(以级别计):125 2、bytes,xml模式文档的最大大小:31457280 | 可在创建表结构时直接定义xml类型 |
布尔值 | boolean | 创建表结构直接定义布尔型,报错 | 2021.09.30所测试版本DB2 V10 |
大对象 | LOB | 1、指blob、clob或dbclob数据类型 2、在unicode中nclob是dbclob的同义词 | |
特殊类型 | datalink | datalink值可引用数据库外的文件 |