db2內建資料型別可以分成數值型(numeric)、字串型(character string)、圖形字串(graphic string)、二進位制字串型(binary string)或日期時間型(datetime)。還有一種叫做 datalink 的特殊資料型別。datalink 值包含了對儲存在資料庫以外的檔案的邏輯引用。
數值型資料型別包括 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 位。小數型的範圍從 -10**31+1 到 10**31-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,那麼最大長度就是 n*1,024(n 的最大值為 2,097,152)。如果指定了 nm,那麼最大長度就是 n*1,048,576(n 的最大值為 2,048)。如果指定了 ng,那麼最大長度就是 n*1,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,那麼最大長度就是 n*1,024(n 的最大值為 1,048,576)。如果指定了 nm,那麼最大長度就是 n*1,048,576(n 的最大值為 1,024)。如果指定了 ng,那麼最大長度就是 n*1,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,那麼最大長度就是 n*1,024(n 的最大值為 2,097,152)。如果指定了 nm,那麼最大長度就是 n*1,048,576(n 的最大值為 2,048)。如果指定了 ng,那麼最大長度就是 n*1,073,741,824(n 的最大值是 2)。
日期時間型資料型別包括 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 個字元的字串。完整的時間戳記字串表示形式為 yyyy-mm-dd-hh.mm.ss.nnnnnn。時間戳記值的月、日或小時等幾部分前面的零可以省略,微秒可以截斷或完全省略。如果任何時間戳記值的微秒部分尾零被省略掉了,那麼將假定空缺的數字上是零。
DB2資料庫資料型別
db2資料庫的內建資料型別主要分成數值型 numeric 字串型 character string 圖形字串 graphic string 二進位制字串型 binary string 或日期時間型 datetime 還有一種叫做 datalink 的特殊資料型別。datalink 值包含了對儲存在資...
DB2中的資料型別
db2內建資料型別 可以分成數值型 numeric 字串型 character string 圖形字串 graphic string 二進位制字串型 binary string 或日期時間型 datetime 還有一種叫做 datalink 的特殊資料型別。datalink 值包含了對儲存在資料庫以...
DB2資料型別
char 定長的阿拉伯字元資料 varchar 變化的阿拉伯字元資料 graphic 定長的圖形資料 vargraphic 變長的圖形資料 allint 短整形數 decimal 數值型資料 integer 長整形數 float n float 單精度浮點數 n 21 date 日曆日期型資料 fl...