DB2資料型別

2021-08-31 22:00:19 字數 3475 閱讀 3013

db2 資料型別

2009/07/09 下午 03:23

1、概述

db2 提供了一套豐富且靈活的資料型別。db2 附帶 integer、char 和 date 等基本資料型別。它還提供了建立使用者定義的資料型別(udt)的工具,使使用者能夠建立複雜的非傳統的資料型別,從而適應當今複雜的程式設計環境。

內建的資料型別分為四類:數字、字串、日期時間和 xml。

使用者定義的資料型別分為:單值型別、結構化型別和引用型別。

2、數字資料型別

● 整數:smallint、integer 和 bigint 用來儲存整數。例如,庫存數量可以定義為 integer。smallint 可以在 2 個位元組中儲存從 -32,768 到 32,767 的整數。integer 可以在 4 個位元組中儲存從 -2,147,483,648 到 2,147,483,647 的整數。bigint 可以在 8 個位元組中儲存從 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整數。

● 小數:decimal 用來儲存有小數部分的數字。要定義這個資料型別,需要指定精度 (p,表示總的位數)和小數字 (s,表示小數點右邊的位數)。定義為 decimal(10,2) 的列可以儲存的金額最高可為 99999999.99。資料庫中需要的儲存空間依賴於精度,按照公式 p/2 +1 計算。所以 decimal(10,2) 需要 10/2 + 1 (即 6)位元組。

● 浮點數:real 和 double 用來儲存數字的近似值。例如,非常小或非常大的科學計量值可以定義為 real。real 可以定義為具有 1 到 24 位之間的長度,需要 4 位元組的儲存空間。double 可以定義為具有 25 到 53 位之間的長度,需要 8 位元組的儲存空間。float 可以視為 real 或 double 的同義詞。

3、字串資料型別

下面的資料型別用來儲存單位元組字串:

● char 或 character 用來儲存最多 254 位元組的固定長度的字串。例如,製造商可以給零件分配乙個 8 字元長度的識別符號,因此這些識別符號在資料庫中儲存為 char(8) 型別的列。

● varchar 用來儲存可變長度的字串。例如,製造商用不同長度的識別符號表示大量零件,因此這些識別符號儲存為 varchar(100) 型別的列。varchar 列的最大長度為 32,672 位元組。在資料庫中,varchar 資料只占用恰好所需的空間。

下面的資料型別用來儲存雙位元組字串:

● graphic 用來儲存固定長度的雙位元組字串。graphic 列的最大長度是 127 個字元。

● vargraphic 用來儲存可變長度的雙位元組字串。vargraphic 列的最大長度是 16,336 個字元。

db2 還提供了儲存非常長的字串資料的資料型別。所有長字串資料型別都具有相似的特徵。首先,在資料庫中此資料在物理上並沒有與行資料儲存在一起,這意味著需要進行額外處理才能訪問此資料。長資料型別的長度最大可以定義為 2gb。但是,需要的空間只是實際使用的空間。

長資料型別有:

● long varchar

● clob(字元大物件)

● long vargraphic

● dbclob(雙位元組字元大物件)

● blob(二進位製大物件)

blob(integer)表示具有指定最大長度(以位元組計)的二進位製大物件字串。

4、日期時間資料型別

db2 提供了三種儲存日期和時間的資料型別:

● date   佔4個位元組

● time   佔4個位元組

● timestamp 佔12個位元組

注意!這些資料型別的值在資料庫中儲存為一種內部格式;但是應用程式可以將其作為字串操縱。在檢索這些資料型別之一時,它被表示為字串。在更新這些資料型別時,將值包圍在引號中。

db2 提供了操縱日期時間值的內建函式。例如,可以使用 dayofweek 或 dayname 函式判斷乙個日期值是星期幾。使用 days 函式計算兩個日期之間相差多少天。db2 還提供了特殊暫存器以根據時間-日期時鐘生成當前日期、時間或時間戳。例如,current date 返回乙個表示系統上的當前日期的字串。

日期和時間值的格式取決於在建立資料庫時指定的資料庫國家編碼。有幾種可用的格式:iso、usa、eur 和 jis。例如,如果資料庫使用 usa 格式,那麼日期值的格式是 mm/dd/yyyy。在建立應用程式時,可以使用 bind 命令的 datetime 選項改變格式。

timestamp 資料型別只有一種格式。字串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn。

5、xml 資料型別

db2 提供了 xml 資料型別來儲存格式良好的 xml 文件。

xml 列中的值儲存為與字串資料型別不同的內部表示。要在 xml 資料型別的列中儲存 xml 資料,需要使用 xmlparse 函式對資料進行轉換。可以使用 xmlserialize 函式將 xml 資料型別的值轉換為 xml 文件的序列化字串值。db2 還提供了許多其他的內建函式來操縱 xml 資料型別。

6、使用者定義的資料型別

db2 允許使用者定義適合自己應用程式的資料型別。有三種使用者定義的資料型別:

● 使用者定義的單值型別:基於內建型別定義新的資料型別。這個新型別具有該內建型別相同的功能,但可以使用它確保只比較相同型別的值。

[示例]-[使用者自定義型別]:

--建立 rmb (人民幣)自定義型別

create distinct type rmb as decimal(10,2) with comparisons

--使用該型別

create table sales (id int not null,name varchar(20),salemoney rmb)

--插入資料

insert into sales(id,name,salemoney)

values(007,'彭建軍',rmb(1234.56))

● 使用者定義的結構化型別:建立由幾個內建型別列組成的型別。然後,可以在建立表時使用這個結構化型別。例如,可以建立一種名為address 的結構化型別,它包含表示街道號碼、街道名、城市之類的資料。然後在定義其他表(如職工表或者**商表)時使用這種型別,因為這些表也需要同樣的資料。

● 使用者定義的引用型別:在使用結構化型別時,可以使用引用型別定義對另乙個表中行的引用。這些引用看起來與參照約束相似,然而,它們不強制表間有關係。表中的引用允許用不同的方法指定查詢。

7、db2 擴充套件器

db2 擴充套件器支援複雜的、非傳統的資料型別。它們與 db2 伺服器**分開打包,必須安裝在伺服器上,並必須安裝在使用那些資料型別的每個資料庫中。

db2 擴充套件器是用使用者定義型別和使用者定義函式(udf)的特性實現的。每個擴充套件器提供乙個或多個 udt、用於操作 udt 的 udf 和特定的應用程式程式設計介面(api),或許還提供其他工具。

1、概述

db2 提供了一套豐富且靈活的資料型別。db2 附帶 integer、char 和 date 等基本資料型別。它還提供了建立使用者定義的資料型別(udt)的工具,使使用者能夠建立複雜的非傳統的資料型別,從而適應當今複雜的程式設計環境。

DB2資料型別

char 定長的阿拉伯字元資料 varchar 變化的阿拉伯字元資料 graphic 定長的圖形資料 vargraphic 變長的圖形資料 allint 短整形數 decimal 數值型資料 integer 長整形數 float n float 單精度浮點數 n 21 date 日曆日期型資料 fl...

DB2資料型別

db2資料庫的內建資料型別主要分成數值型 numeric 字串型 character string 圖形字串 graphic string 二進位制字串型 binary string 或日期時間型 datetime 還有一種叫做 datalink 的特殊資料型別。datalink 值包含了對儲存在資...

db2 資料型別

資料型別 字串型別 描述character n n bytes定長字串.n 大於0 不大於255.預設 1.varchar n 變長字串,最大 n bytes.n大於 0 小於表空間的 page size.最大32704.clob n 變長字串,最大2 147 483 647.預設1.graphic...