DB2的基本数据类型字段类型描述字段长度及其缺省值Char(size)用于保存定长(size)字节的字符串数据。
每行定长(不足部分补为空格);最大长度为254字节,缺省值为每行1字节。
Varchar(size)用于保存变长的字符串数据。
其中最大字节长度由(size)指定。
每行长度可变,最大长度为4000字节。
数据长度缺省为1Long Varchar用于保存变长的字符串数据。
每行长度可变,最大长度为4321700字节。
Graphic(size)双字节字符串。
每行定长(不足部分补为空格)。
最大长度为127字节。
Vargraphic(size)可变长,双字节字符串。
每行变长。
最大长度为127字节。
Long Vargraphic双字节字符串。
最大长度为16350双字节字符串。
Timestamp用于改变管理的二进制值数据,包括年月日时分秒毫秒。
字节数为26Date保存定长的日期数据,范围为0000年到9999。
每行固定为10字节长度。
Time保存定长的时间数据。
每行固定为8字节长度。
Integer保存整型数据,范围为-2147483648到+2147483647。
最大长度为4字节32 - 1字节或4G。
Smallint保存整型数据,范围为-32768到+32767最大长度为2字节32 - 1字节或4G。
Bigint保存整型数据,范围为-9223372036854775808到+9223372036854775807最大长度为2字节64 - 1字节。
Real保存单精度浮点数据类型最大长度为4字节。
指数表示。
Double保存双精度浮点数据类型,范围为-2.23E-308到+2.23E-308。
最大长度为8字节。
指数表示。
Float保存浮点数据类型,范围为-2.23E-308到+2.23E-308。
最大长度为8字节。
指数表示。
Numeric(p,s)保存精确数值数据类型,范围为-10E-38到+10E-38,p是精度,总小数位数(1~38),s是小数位(小数位小于等于p)最大长度为2~17字节。
Decimal(p,s)保存精确数值数据类型,范围为-10E-38到+10E-38,p是精度,总小数位数(1~38),s是小数位(小数位小于等于p)最大长度为2~17字节。
Clob保存2GB长度以内的单字节文本数据最大长度为2G。
DbClob保存1GB长度以内的双字节文本数据。
最大长度为1G字符。
Blob保存2GB长度以内的二进制数据。
最大长度为2G。
支持Not Logged选项和Compact选项我们今天主要向大家讲述的是DB2数据类型,我们大家都知道DB2内置数据类型其一共可以分成数值型(numeric)、字符串型(character string)、图形字符串(graphic string)、二进制字符串型(binary string)或日期时间型(datetime)。
还有一种叫做DATALINK 的特殊数据类型。
DATALINK 值包含了对存储在数据库以外的文件的逻辑引用。
数值型DB2数据类型包括SMALLINT、INTEGER、BIGINT、DECIMAL(p,s)、REAL 和DOUBLE。
所有数值都有符号和精度。
精度是指除符号以外的二进制或十进制的位数。
如果数字的值大于等于零,就认为符号为正。
小整型,SMALLINT:小整型是两个字节的整数,精度为5 位。
小整型的范围从-32,768 到32,767。
大整型,INTEGER 或INT:大整型是四个字节的整数,精度为10 位。
大整型的范围从-2,147,483,648 到2,147,483,647。
巨整型,BIGINT:巨整型是八个字节的整数,精度为19 位。
巨整型的范围从-9,223,372,036,854,775,808 到9,223,372,036,854,775,807。
小数型,DECIMAL(p,s)、DEC(p,s)、NUMERIC(p,s) 或NUM(p,s):小数型的值是一种压缩十进制数,它有一个隐含的小数点。
压缩十进制数将以二-十进制编码(binary-coded decimal,BCD)记数法的变体来存储。
小数点的位置取决于数字的精度(p)和小数位(s)。
小数位是指数字的小数部分的位数,它不可以是负数,也不能大于精度。
最大精度是31 位。
小数型的范围从-1031+1 到1031-1。
单精度浮点数(Single-precision floating-point),REAL:单精度浮点数是实数的32 位近似值。
数字可以为零,或者在从-3.402E+38 到-1.175E-37 或从 1.175E-37 到 3.402E+38 的范围内。
双精度浮点数(Double-precision floating-point),DOUBLE,DOUBLE PRECISION 或FLOAT:双精度浮点数是实数的64 位近似值。
数字可以为零,或者在从-1.79769E+308 到-2.225E-307 或从2.225E-307 到1.79769E+308 的范围内。
字符串是字节序列。
字符串包括CHAR(n) 类型的定长字符串和VARCHAR(n)、LONG VARCHAR 或CLOB(n) 类型的变长字符串。
字符串的长度就是序列中的字节数。
定长字符串,CHARACTER(n) 或CHAR(n):定长字符串的长度介于 1 到254 字节之间。
如果没有指定长度,那么就认为是1 个字节。
变长字符串,VARCHAR(n)、CHARACTER VARYING(n) 或CHAR VARYING(n):VARCHAR(n) 类型的字符串是变长字符串,最长可达32,672 字节。
LONG VARCHAR:LONG VARCHAR 类型的字符串是变长字符串,最长可达32,700 字节。
字符大对象字符串(Character Large Object String),CLOB(n[K|M|G]):CLOB 是变长字符串,最长可以达到2,147,483,647 字节。
如果只指定了n,那么n 的值就是最大长度。
如果指定了nK,那么最大长度就是n1,024(n 的最大值为2,097,152)。
如果指定了nM,那么最大长度就是n1,048,576(n 的最大值为2,048)。
如果指定了nG,那么最大长度就是n1,073,741,824(n 的最大值是2)。
CLOB 用于存储基于大单字节字符集(single-byte character set,SBCS)字符的数据或基于混合(多字节字符集(MBCS)和SBCS)字符的数据。
图形字符串是表示双字节字符数据的字节序列。
图形字符串包括类型为GRAPHIC(n) 的定长图形字符串和类型为VARGRAPHIC(n)、LONG VARGRAPHIC 和DBCLOB(n) 的变长图形字符串。
字符串的长度就是序列中双字节字符的数目。
定长图形字符串,GRAPHIC(n):定长图形字符串的长度介于 1 到127 个双字节字符之间。
如果没有指定长度,就认为是1 个双字节字符。
变长图形字符串,VARGRAPHIC(n):VARGRAPHIC(n) 类型的字符串是变长图形字符串,最大长度可达16,336 个双字节字符。
LONG VARGRAPHIC:LONG VARGRAPHIC 类型的字符串是变长图形字符串,最大长度可达16,350 个双字节字符。
双字节字符大对象字符串,DBCLOB(n[K|M|G]):双字节字符大对象是变长双字节字符图形字符串,最长可达1,073,741,823 个字符。
如果只指定了n,那么n 就是最大长度。
如果指定了nK,那么最大长度就是n1,024(n 的最大值为1,048,576)。
如果指定了nM,那么最大长度就是n1,048,576(n 的最大值为1,024)。
如果指定了nG,那么最大长度就是n1,073,741,824(n 的最大值是1)。
DBCLOB 用于存储基于大DBCS(双字节字符集,double-byte character set)字符的数据。
二进制字符串是字节序列。
二进制字符串包括BLOB(n) 类型的变长字符串,它用于容纳非传统型的数据,诸如图片、语音或混合媒体等,还可以容纳用户定义的类型及用户定义的函数的结构化数据。
二进制大对象,BLOB(n[K|M|G]):二进制大对象是变长字符串,最长可达2,147,483,647 字节。
如果只指定了n,那么n 就是最大长度。
如果指定了nK,那么最大长度就是n1,024(n 的最大值为2,097,152)。
如果指定了nM,那么最大长度就是n1,048,576(n 的最大值为2,048)。
如果指定了nG,那么最大长度就是n1,073,741,824(n 的最大值是2)。
日期时间型DB2数据类型包括DATE、TIME 和TIMESTAMP。
日期时间值可在某些算术和字符串操作中使用,而且兼容某些字符串,但它们既不是字符串,也不是数字。
DATE:DATE 是一个由三部分组成的值(年、月和日)。
年份部分的范围是从0001 到9999。
月份部分的范围是从1 到12。
日部分的范围是从 1 到n,其中n 的值取决于月份。
DATE 列长10 个字节。
TIME:TIME 是一个由三部分组成的值(小时、分钟和秒)。
小时部分的范围是从0 到24。
分钟和秒部分的范围都是从0 到59。
如果小时为24,分钟和秒的值都是0。
TIME 列长8 个字节。
TIMESTAMP:TIMESTAMP 是一个由七部分组成的值(年、月、日、小时、分钟、秒和微秒)。
年份部分的范围是从0001 到9999。
月份部分的范围是从1 到12。
日部分的范围是从1 到n,其中n 的值取决于月份。
小时部分的范围是从0 到24。
分钟和秒部分的范围都是从0 到59。
微秒部分的范围是从000000 到999999。
如果小时是24,那么分钟值、秒的值和微秒的值都是0。
TIMESTAMP 列长26 个字节。
日期时间值的字符串表示:尽管DATE、TIME 和TIMESTAMP 的值的内部表示对用户是透明的,日期、时间和时间戳记也可以用字符串来表示,CHAR 标量函数(请参阅SQL 的"词类(parts of speech)")可以用于创建日期时间值的字符串表示。
日期值的字符串表示是一个以数字开始,长度不少于8 个字符的字符串。
日期值的月份和日部分中前面的零可以省略。
时间值的字符串表示是以数字开头,长度不少于4 个字符的字符串。
时间值的小时部分前面的零可以省略,秒部分可以完全省略。
如果秒的值没有指定,那么就认为是0。
时间戳记值的字符串表示是以数字开头,长度不少于16 个字符的字符串。