| 導購 | 订阅 | 在线投稿
分享
 
 
 

循序漸進講解DB2數據庫的內置數據類型

來源:互聯網  2008-06-01 03:24:57  評論

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數據庫的內置數據類型主要分成數值型(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。時間戳記值的月、日或小時等幾部分前面的零可以省略,微秒可以截斷或完全省略。如果任何時間戳記值的微秒部分尾零被省略掉了,那麽將假定空缺的數位上爲零。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有