DB2 數(shù)據(jù)類型如何才能輕松接觸?
此文章主要向大家介紹的是輕松接觸DB2 數(shù)據(jù)類型的實(shí)際操作方案,我們大家都知道DB2數(shù)據(jù)庫(kù)的內(nèi)置數(shù)據(jù)類型,其主要分成數(shù)值型(numeric)、字符串型(character string)、圖形字符串(graphic string)、二進(jìn)制字符串型(binary string)或日期時(shí)間型(datetime)。
還有一種叫做 DATALINK 的特殊數(shù)據(jù)類型。DATALINK 值包含了對(duì)存儲(chǔ)在數(shù)據(jù)庫(kù)以外的文件的邏輯引用。
數(shù)值型DB2 數(shù)據(jù)類型包括 SMALLINT、INTEGER、BIGINT、DECIMAL(p,s)、REAL 和 DOUBLE。所有數(shù)值都有符號(hào)和精度。精度是指除符號(hào)以外的二進(jìn)制或十進(jìn)制的位數(shù)。如果數(shù)字的值大于等于零,就認(rèn)為符號(hào)為正。
小整型,SMALLINT:小整型是兩個(gè)字節(jié)的整數(shù),精度為 5 位。小整型的范圍從 -32,768 到 32,767。
大整型,INTEGER 或 INT:大整型是四個(gè)字節(jié)的整數(shù),精度為 10 位。大整型的范圍從 -2,147,483,648 到 2,147,483,647。
巨整型,BIGINT:巨整型是八個(gè)字節(jié)的整數(shù),精度為 19 位。巨整型的范圍從 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
小數(shù)型,DECIMAL(p,s)、DEC(p,s)、NUMERIC(p,s) 或 NUM(p,s):小數(shù)型的值是一種壓縮十進(jìn)制數(shù),它有一個(gè)隱含的小數(shù)點(diǎn)。壓縮十進(jìn)制數(shù)將以二-十進(jìn)制編碼(binary-coded decimal,BCD)記數(shù)法的變體來(lái)存儲(chǔ)。小數(shù)點(diǎn)的位置取決于數(shù)字的精度(p)和小數(shù)位(s)。小數(shù)位是指數(shù)字的小數(shù)部分的位數(shù),它不可以是負(fù)數(shù),也不能大于精度。***精度是 31 位。小數(shù)型的范圍從 -1031+1 到 1031-1。
單精度浮點(diǎn)數(shù)(Single-precision floating-point),REAL:?jiǎn)尉雀↑c(diǎn)數(shù)是實(shí)數(shù)的 32 位近似值。數(shù)字可以為零,或者在從 -3.402E+38 到 -1.175E-37 或從 1.175E-37 到 3.402E+38 的范圍內(nèi)。
雙精度浮點(diǎn)數(shù)(Double-precision floating-point),DOUBLE,DOUBLE PRECISION 或 FLOAT:雙精度浮點(diǎn)數(shù)是實(shí)數(shù)的 64 位近似值。數(shù)字可以為零,或者在從 -1.79769E+308 到 -2.225E-307 或從 2.225E-307 到 1.79769E+308 的范圍內(nèi)。
字符串是字節(jié)序列。字符串包括 CHAR(n) 類型的定長(zhǎng)字符串和 VARCHAR(n)、LONG VARCHAR 或 CLOB(n) 類型的變長(zhǎng)字符串。字符串的長(zhǎng)度就是序列中的字節(jié)數(shù)。
定長(zhǎng)字符串,CHARACTER(n) 或 CHAR(n):定長(zhǎng)字符串的長(zhǎng)度介于 1 到 254 字節(jié)之間。如果沒有指定長(zhǎng)度,那么就認(rèn)為是 1 個(gè)字節(jié)。
變長(zhǎng)字符串,VARCHAR(n)、CHARACTER VARYING(n) 或 CHAR VARYING(n):VARCHAR(n) 類型的字符串是變長(zhǎng)字符串,最長(zhǎng)可達(dá) 32,672 字節(jié)。
LONG VARCHAR:LONG VARCHAR 類型的字符串是變長(zhǎng)字符串,最長(zhǎng)可達(dá) 32,700 字節(jié)。
字符大對(duì)象字符串(Character Large Object String),CLOB(n[K|M|G]):CLOB 是變長(zhǎng)字符串,最長(zhǎng)可以達(dá)到 2,147,483,647 字節(jié)。如果只指定了 n,那么 n 的值就是***長(zhǎng)度。如果指定了 nK,那么***長(zhǎng)度就是 n1,024(n 的***值為 2,097,152)。如果指定了 nM,那么***長(zhǎng)度就是 n1,048,576(n 的***值為 2,048)。
如果指定了 nG,那么***長(zhǎng)度就是 n1,073,741,824(n 的***值是 2)。CLOB 用于存儲(chǔ)基于大單字節(jié)字符集(single-byte character set,SBCS)字符的數(shù)據(jù)或基于混合(多字節(jié)字符集(MBCS)和 SBCS)字符的數(shù)據(jù)。
圖形字符串是表示雙字節(jié)字符數(shù)據(jù)的字節(jié)序列。圖形字符串包括類型為 GRAPHIC(n) 的定長(zhǎng)圖形字符串和類型為 VARGRAPHIC(n)、LONG VARGRAPHIC 和 DBCLOB(n) 的變長(zhǎng)圖形字符串。字符串的長(zhǎng)度就是序列中雙字節(jié)字符的數(shù)目。
定長(zhǎng)圖形字符串,GRAPHIC(n):定長(zhǎng)圖形字符串的長(zhǎng)度介于 1 到 127 個(gè)雙字節(jié)字符之間。如果沒有指定長(zhǎng)度,就認(rèn)為是 1 個(gè)雙字節(jié)字符。
變長(zhǎng)圖形字符串,VARGRAPHIC(n):VARGRAPHIC(n) 類型的字符串是變長(zhǎng)圖形字符串,***長(zhǎng)度可達(dá) 16,336 個(gè)雙字節(jié)字符。
LONG VARGRAPHIC:LONG VARGRAPHIC 類型的字符串是變長(zhǎng)圖形字符串,***長(zhǎng)度可達(dá) 16,350 個(gè)雙字節(jié)字符。
雙字節(jié)字符大對(duì)象字符串,DBCLOB(n[K|M|G]):雙字節(jié)字符大對(duì)象是變長(zhǎng)雙字節(jié)字符圖形字符串,最長(zhǎng)可達(dá) 1,073,741,823 個(gè)字符。如果只指定了 n,那么 n 就是***長(zhǎng)度。如果指定了 nK,那么***長(zhǎng)度就是 n1,024(n 的***值為 1,048,576)。
如果指定了 nM,那么***長(zhǎng)度就是 n1,048,576(n 的***值為 1,024)。如果指定了 nG,那么***長(zhǎng)度就是 n1,073,741,824(n 的***值是 1)。DBCLOB 用于存儲(chǔ)基于大 DBCS(雙字節(jié)字符集,double-byte character set)字符的數(shù)據(jù)。二進(jìn)制字符串是字節(jié)序列。二進(jìn)制字符串包括 BLOB(n) 類型的變長(zhǎng)字符串,它用于容納非傳統(tǒng)型的數(shù)據(jù),諸如圖片、語(yǔ)音或混合媒體等,還可以容納用戶定義的類型及用戶定義的函數(shù)的結(jié)構(gòu)化數(shù)據(jù)。
二進(jìn)制大對(duì)象,BLOB(n[K|M|G]):二進(jìn)制大對(duì)象是變長(zhǎng)字符串,最長(zhǎng)可達(dá) 2,147,483,647 字節(jié)。如果只指定了 n,那么 n 就是***長(zhǎng)度。如果指定了 nK,那么***長(zhǎng)度就是 n1,024(n 的***值為 2,097,152)。如果指定了 nM,那么***長(zhǎng)度就是 n1,048,576(n 的***值為 2,048)。如果指定了 nG,那么***長(zhǎng)度就是 n1,073,741,824(n 的***值是 2)。
日期時(shí)間型DB2 數(shù)據(jù)類型包括 DATE、TIME 和 TIMESTAMP。日期時(shí)間值可在某些算術(shù)和字符串操作中使用,而且兼容某些字符串,但它們既不是字符串,也不是數(shù)字。
DATE:DATE 是一個(gè)由三部分組成的值(年、月和日)。年份部分的范圍是從 0001 到 9999。月份部分的范圍是從 1 到 12。日部分的范圍是從 1 到 n,其中 n 的值取決于月份。DATE 列長(zhǎng) 10 個(gè)字節(jié)。
TIME:TIME 是一個(gè)由三部分組成的值(小時(shí)、分鐘和秒)。小時(shí)部分的范圍是從 0 到 24。分鐘和秒部分的范圍都是從 0 到 59。如果小時(shí)為 24,分鐘和秒的值都是 0。TIME 列長(zhǎng) 8 個(gè)字節(jié)。
TIMESTAMP:TIMESTAMP 是一個(gè)由七部分組成的值(年、月、日、小時(shí)、分鐘、秒和微秒)。年份部分的范圍是從 0001 到 9999。月份部分的范圍是從 1 到 12。日部分的范圍是從 1 到 n,其中 n 的值取決于月份。小時(shí)部分的范圍是從 0 到 24。分鐘和秒部分的范圍都是從 0 到 59。
微秒部分的范圍是從 000000 到 999999。如果小時(shí)是 24,那么分鐘值、秒的值和微秒的值都是 0。TIMESTAMP 列長(zhǎng) 26 個(gè)字節(jié)。日期時(shí)間值的字符串表示:盡管 DATE、TIME 和 TIMESTAMP 的值的內(nèi)部表示對(duì)用戶是透明的,日期、時(shí)間和時(shí)間戳記也可以用字符串來(lái)表示,CHAR 標(biāo)量函數(shù)(請(qǐng)參閱 SQL 的“詞類(parts of speech)”)可以用于創(chuàng)建日期時(shí)間值的字符串表示。
日期值的字符串表示是一個(gè)以數(shù)字開始,長(zhǎng)度不少于 8 個(gè)字符的字符串。日期值的月份和日部分中前面的零可以省略。
時(shí)間值的字符串表示是以數(shù)字開頭,長(zhǎng)度不少于 4 個(gè)字符的字符串。時(shí)間值的小時(shí)部分前面的零可以省略,秒部分可以完全省略。如果秒的值沒有指定,那么就認(rèn)為是 0。
時(shí)間戳記值的字符串表示是以數(shù)字開頭,長(zhǎng)度不少于 16 個(gè)字符的字符串。完整的時(shí)間戳記字符串表示形式為 yyyy-mm-dd-hh.mm.ss.nnnnnn。時(shí)間戳記值的月、日或小時(shí)等幾部分前面的零可以省略,微秒可以截?cái)嗷蛲耆÷?。如果任何時(shí)間戳記值的微秒部分尾零被省略掉了,那么將假定空缺的數(shù)位上為零。
以上的相關(guān)內(nèi)容就是對(duì)帶你輕松接觸DB2 數(shù)據(jù)類型的介紹,望你能有所收獲。
【編輯推薦】