




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、DB2的基本數據類型字段類型描述字段長度及其缺省值 Char(size) 用于保存定長(size)字節的字符串數據。 每行定長(不足部分補為空格);最大長度為254字節,缺省值為每行1字節。Varchar(size) 用于保存變長的字符串數據。其中最大字節長度由(size)指定。每行長度可變,最大長度為4000字節。數據長度缺省為1Long Varchar 用于保存變長的字符串數據。每行長度可變,最大長度為4321700字節。Graphic(size) 雙字節字符串。每行定長(不足部分補為空格)。最大長度為127字節。
2、Vargraphic(size) 可變長,雙字節字符串。每行變長。最大長度為127字節。 Long Vargraphic 雙字節字符串。最大長度為16350雙字節字符串。 Timestamp 用于改變管理的二進制值數據,包括年月日時分秒毫秒。字節數為26Date 保存定長的日期數據,范圍為0000年到9999。每行固定為10字節長度。Time 保存定長的時間數據。每行固定為8字節長度。Integer保存整型數據,范圍為-2147483648到+2147483647。最大長度為4字節32 - 1字節或4G。Smallint
3、160;保存整型數據,范圍為-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) 保存精確數值數據類
4、型,范圍為-10E-38到+10E-38,p是精度,總小數位數(138),s是小數位(小數位小于等于p)最大長度為217字節。Decimal(p,s) 保存精確數值數據類型,范圍為-10E-38到+10E-38,p是精度,總小數位數(138),s是小數位(小數位小于等于p)最大長度為217字節。Clob 保存2GB長度以內的單字節文本數據最大長度為2G。DbClob 保存1GB長度以內的雙字節文本數據。最大長度為1G字符。Blob 保存2GB長度以內的二進制數據。最大長度為2G。支持Not Logged選項和Compact選項我們今天主要向大家講述的
5、是DB2數據類型,我們大家都知道DB2內置數據類型其一共可以分成數值型(numeric)、字符串型(character string)、圖形字符串(graphic string)、二進制字符串型(binary string)或日期時間型(datetime)。還有一種叫做 DATALINK 的特殊數據類型。DATALINK 值包含了對存儲在數據庫以外的文件的邏輯引用。數值型DB2數據類型包括 SMALLINT、INTEGER、BIGINT、DECIMAL(p,s)、REAL 和 DOUBLE。所有數值都有符號和精度。精度是指除符號以外的二進制或十進制的位數。如果數字的值大于等于零,就認為符號為正
6、。小整型,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):小數型的值是一種壓縮十進制數,它有一
7、個隱含的小數點。壓縮十進制數將以二-十進制編碼(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-prec
8、ision 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 字節之間。如果沒有指定長度
9、,那么就認為是 1 個字節。變長字符串,VARCHAR(n)、CHARACTER VARYING(n) 或 CHAR VARYING(n):VARCHAR(n) 類型的字符串是變長字符串,最長可達 32,672 字節。LONG VARCHAR:LONG VARCHAR 類型的字符串是變長字符串,最長可達 32,700 字節。字符大對象字符串(Character Large Object String),CLOB(nK|M|G):CLOB 是變長字符串,最長可以達到 2,147,483,647 字節。如果只指定了 n,那么 n 的值就是最大長度。如果指定了 nK,那么最大長度就是 n1,024(
10、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) 的變長圖形字符串。
11、字符串的長度就是序列中雙字節字符的數目。定長圖形字符串,GRAPHIC(n):定長圖形字符串的長度介于 1 到 127 個雙字節字符之間。如果沒有指定長度,就認為是 1 個雙字節字符。變長圖形字符串,VARGRAPHIC(n):VARGRAPHIC(n) 類型的字符串是變長圖形字符串,最大長度可達 16,336 個雙字節字符。LONG VARGRAPHIC:LONG VARGRAPHIC 類型的字符串是變長圖形字符串,最大長度可達 16,350 個雙字節字符。雙字節字符大對象字符串,DBCLOB(nK|M|G):雙字節字符大對象是變長雙字節字符圖形字符串,最長可達 1,073,741,823
12、個字符。如果只指定了 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) 類型的變長字符串,它用于容納非傳統型的數據,諸如圖片、語音或混合媒體等,還可以容納用戶定義的類型及用戶定義的函
13、數的結構化數據。二進制大對象,BLOB(nK|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。日期時間值可在某些算術和字符串操作中使用,而且兼容某些字符串,但它們既不是字符串,也不是數字。
14、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 到 1
15、2。日部分的范圍是從 1 到 n,其中 n 的值取決于月份。小時部分的范圍是從 0 到 24。分鐘和秒部分的范圍都是從 0 到 59。微秒部分的范圍是從 000000 到 999999。如果小時是 24,那么分鐘值、秒的值和微秒的值都是 0。TIMESTAMP 列長 26 個字節。日期時間值的字符串表示:盡管 DATE、TIME 和 TIMESTAMP 的值的內部表示對用戶是透明的,日期、時間和時間戳記也可以用字符串來表示,CHAR 標量函數(請參閱 SQL 的“詞類(parts of speech)”)可以用于創建日期時間值的字符串表示。日期值的字符串表示是一個以數字開始,長度不少于 8 個
16、字符的字符串。日期值的月份和日部分中前面的零可以省略。時間值的字符串表示是以數字開頭,長度不少于 4 個字符的字符串。時間值的小時部分前面的零可以省略,秒部分可以完全省略。如果秒的值沒有指定,那么就認為是 0。時間戳記值的字符串表示是以數字開頭,長度不少于 16 個字符的字符串。完整的時間戳記字符串表示形式為 yyyy-mm-dd-hh.mm.ss.nnnnnn。時間戳記值的月、日或小時等幾部分前面的零可以省略,微秒可以截斷或完全省略。如果任何時間戳記值的微秒部分尾零被省略掉了,那么將假定空缺的數位上是零。自增長字段設計會超過最大值嗎?應該不會DB2數據類型,范圍精度10位了!在表中存儲數據時
17、,不同類型的數據占用的空間和存儲的方式都不相同。接下來,我們就簡單認識一下 DB2 中的各種數據類型(Data Type)。DB2 主要分成兩類數據類型:內置的數據類型和用戶自定義的數據類型。本節只介紹內置類型,用戶自定義類型在 3.17.2 節介紹。內置數據類型主要包括數值型、文本型、日期時間型和 XML 四大類。3.11.1 數值型數值型具體劃分如圖 3.19 所示。圖 3.19 數值型數據的種類 SMALLINT 稱為小整型或短整型,是兩個字節的整數,精度為 5 位,其數據表示范圍從 -32,768 到 32,767。INT 稱為整型,也可以寫成 INTEGER,是四個字節的整
18、數,精度為 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。REAL 稱為單精度浮點數,是實數的 32 位近似值。數字可以為零,或者在從 -3.402E+38 到 -1.175E-37 或從 1.175E-37 到 3.402E+38 的范圍內。DOUBLE 稱為雙精度浮點數,是實數的 64 位近似值。數字可以為零,或者在從 -1.79769E+308 到 -
19、2.225E-307 或從 2.225E-307 到 1.79769E+308 的范圍內。DECFLOAT 稱為十進制浮點數,是 V9.5 中引入的新數據類型,適合于處理準確的十進制業務。它具有 DECIMAL 類型的準確性,同時又具有浮點數的性能優勢,特別適合于在處理貨幣值相關的應用程序中使用。DECIMAL 稱為十進制數,是一種可以自己定義小數位數的壓縮型十進制數,也可以寫成 DEC,NUMERIC 或者 NUM,定義這種類型的數據需要指定兩個參數:DECIMAL(p,s)。p 表示數字的總長度(不包括正負號和小數點),s 表示小數長度。DECIMAL 類型的數據可以精確地表示指定精度的小
20、數。它所占用的存儲空間與第一個參數,即數字的總長度有關,計算公式為:tranc(p/2)+1。其中 tranc 表示截取整數部分。3.11.2 字符型字符型具體劃分如 3.20 所示。圖 3.20 字符型數據的種類 CHAR 稱為定長字符串,需要指定長度,如 CHAR(10)。也可以寫成 CHARACTER( 長度 )。定長字符串的長度介于 1 到 254 字節之間。如果沒有指定長度,那么就認為是 1 個字節。VARCHAR 稱為變長字符串,需要指定最大長度,如 VARCHAR(20)。變長字符串長度的最大值是 32672。存儲變長字符串時,需要額外花費 4 個字節來記錄字符串的實際
21、長度。所以,如果指定了 VARCHAR(20),每個這種類型的數據在硬盤上實際要占用 20+4=24 個字節的空間。需要注意的是,對于變長字符串的實際占用存儲空間量還有一個限制:數據必須適合放在單個表空間頁面上。也就是說,對于使用 4K 頁表空間的表,長度不能超過 4 × 1024-4=4092 字節;對于 8K 頁表空間的表,長度不能超過 8 × 1024-4=8188 字節;對于 16K 頁表空間的表,長度不能超過 16 × 1024-4=16380 字節;對于 32K 頁表空間的表,長度不能超過 32 × 1024-4=32764 字節,但是該數超
22、過了 VARCHAR 的最大長度 32672,所以對于 32K 頁表空間的表,最大能夠存放 32672 字節。默認情況下表空間為 4K,所以要使用 VARCHAR 類型來存儲超過 4092 字節的數據,就需要顯式創建更大頁大小的表空間。LONG VARCHAR 稱為大型變長字符串,不需要指定最大長度,其最大可以存儲 32700 個字節。與 VARCHAR 類型不同的是,該數據類型不受表空間頁大小的限制,對于 4K 頁表空間的表,長度可以超過 4092 字節,只要不超過 32700 字節即可。實際在硬盤上占用的存儲空間為 ( 字符串長度 +24),24 個字節用于記錄與該數值相關的信息。CLOB
23、 稱為大對象字符串,需要指定長度,CLOB(n K|M|G),長度可以是字節,也可以是 K,M 或 G 等某一種單位,每個 CLOB 最大可以存儲 2G 字節的數據。CLOB 數據并不是直接存放在表中,而是單獨存放在一個表空間中,表中存放的是一個指針,指向對應的實際數據。GRAPHIC,VARGRAPHIC,LONG GRAPHIC 和 DBCLOB 分別與前面的 CHAR,VARCHAR,LONG VARCHR 和 CLOB 對應,只是都存儲雙字節字符,存儲的長度都減小一半。BLOB 稱為二進制大對象,也需要指定長度,BLOB(n K|M|G),長度可以是字節,也可以是 K,M 或 G 等某一種單位,每個 BLOB 最大可以存儲 2G 字節的二進制數據。與 CLOB 一樣,表中存放的也是指針,指向實際的數據。BLOB 適合于存放圖片、音頻、視頻的容量非常大的內容,DB2 本身不考慮存放的內容是什么,只是按照二進制的方式將數據存放起來,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論