1. 程式人生 > >全面瞭解DB2資料庫中的各資料型別

全面瞭解DB2資料庫中的各資料型別

      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資料庫中的各資料型別,或許還不太全面,以後有機會還會繼續為大家介紹。本文對一些資料庫初學者來說是很好的學習資料,希望大家充分利用學習資源。

原地址:http://soft.chinabyte.com/database/103/12166603.shtml

相關推薦

全面瞭解DB2資料庫資料型別

      DB2資料庫內建資料型別可以分成數值型(numeric)、字串型(character string)、圖形字串(graphic string)、二進位制字串型(binary string)或日期時間型(datetime)。還有一種叫做 DATALINK 的特

Object-C 資料型別轉換 NSData轉NSString,Byte,UIImage

1,NSData 與 NSString   NSData --> NSString   NSString *aString = [[NSString alloc] initWithData:adata encoding:NSUTF8StringEncoding];   NSStri

資料庫的----資料型別

資料型別 資料型別分類 數值型別 tinyint型別 無符號型別 bit型別 小數型別 float型 decimal型 decimal和float區別

資料庫常用資料型別的取值範圍介紹(以mysql、SQL Server為準)

        在資料庫設計時,會對欄位資料型別和欄位長度進行考慮。最終選定的欄位資料型別和欄位長度又會對資料庫的效能和佔用空間大小造成一定影響。欄位的資料型別定了,則欄位在資料庫中佔用的儲存空間大小也已經定了,其與指定的資料型別長度無關。以資料庫開發中最常用的欄位型別in

C語言資料型別和他們對應的最大值和最小值的常量

C中各種型別的最大值最小值常量定義在”limits.h”和”float.h”中。 CHAR_MIN和CHAR_MAX分別表示有符號小整型的最小值和最大值,UCHAR_MAX表示無符號小整型的最大值; SHRT_MIN和SHRT_MAX分別表示有符號短整型的最

cpu字長、作業系統字長和jvm資料型別佔用的位元組數關係

        cpu字長是指cpu同時參與運算的二進位制位數,現在主流的pc的機器字長都是64位的。機器字長直接決定著機器可定址的虛擬空間地址大小。 Java程式碼   The word size of a computer generally indicates the largest int

SQL 讀取資料庫所有資料表的所有約束型別名稱和預設值

--設計初衷:轉換簡體版本的資料表到繁體版本--使用遊標查詢所有使用者資料表Declare @CurrentTableName nvarchar(250)Declare UserTableCursor Cursor For    --宣告遊標Select name From

資料庫SQL資料型別轉換

oracle有三種最基本的資料型別,即字元型、數值型、日期型。 (注意需要起別名的地方要起別名) oracle提供的單行函式中,針對不同的資料型別,提供大量實用的函式,同時提供一系列資料型別轉換函式,如下: sql.append(" select CURVE_NAME,S_

向MySQL資料庫存入json型別資料

0.說明    因為出於個人專案的需要,獲取到的資料都是json型別的,並且都要存入MySQL資料庫中,因為json型別資料不像一般的文字資料,所以在存入MySQL時需要注意的問題很多。    在網上找了很多方法,整理了一下比較實用可靠的,總結下來就是下面的過程:MySQL表

在C語言各種資料型別佔多少位

(一)32位平臺:分為有符號型與無符號型。有符號型:short 在記憶體中佔兩個位元組,範圍為-2^15~(2^15-1)int 在記憶體中佔四個位元組,範圍為-2^31~(2^31-1)long在記憶體中佔四個位元組,範圍為-2^31~2^31-1無符號型:最高位不表示符號位unsigned short 在

如何把資料庫的String型別資料在jsp頁面上轉化為date型別資料

<span style="font-size:18px;">jsp頁面引入:<<a target=_blank href="mailto:%@taglib">%@tagl

Java獲取資料庫資料,獲取下拉列表資料, 獲取省、市、區的資料,根據上一層去控制下一層

$(function() { //validateRule(); getDept(); $("select[name='deptNamee']").change(function() { var deptCode = $("select[name='deptN

python資料型別之元組和字典

一、元組:俗稱不可變的列表,又被稱為只讀列表。元組用小括號括起來,裡面可以放任何資料型別的資料,查詢可以,迴圈也可以,切片也可以,但就是不能修改。 注意:如果元組中只有一個元素,一定要加一個逗號,否則就不是元組。 >>> tu = (1,"Tanxu","A") #建立一個元組,用

VS2013 c++連結資料庫,應用儲存過程,向資料庫寫入資料

// ConsoleApplication1.cpp : 定義控制檯應用程式的入口點。 // #include "stdafx.h" #include "iomanip" using namespace std; #import "c:\Program Files\Common Files\S

解決查詢MySQL資料庫重複資料的問題

今天遇到一個問題,需求是查詢新採集資料中 重複資料 的條數。在採集完資料對資料進行去重查詢時sql結果不正確,因為有一部分sql是在業務程式碼中進行拼接的: “SELECT COUNT(*) FROM (“ + sql + “)_AA;” 之前的sql:SELECT 1 FROM TAB

mybatis 在oracle資料庫插入資料時獲取自增ID sequence序列

在oracle中sequence就是序號,每次取的時候它會自動增加。sequence與表沒有關係。 Create Sequence 首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE許可權。 建立語句如下: CREATE SEQUEN

EasyUI Datagrid 分頁的情況下實現點選表頭的小三角圖示對資料庫所有資料重新排序

說明一下: 當點選 datagrid 表頭某一列的小三角圖示時,easyui 本身是有排序的,但是在當我們對 datagrid 進行了分頁的情況下,點選排序只是對當前頁的資料進行排序,而需求需要我對資料庫裡面的所有資料進行排序,這樣的話只能從後臺先排好序再返回了。 看了一下文件,發

Java語言資料型別

1.Java語言中的資料型別 為什麼要使用資料型別呢,因為我們要編寫程式,要編寫程式就要建立變數,而建立變數就需要資料型別。 建立變數時使用資料型別就可以指定,自己建立的變數在程式執行時所佔用的記憶體空間大小。 2.變數 任何一個程式中都有變數存在。 變數就是程式執行過程中隨時可能會發生變

C#實體類資料型別後面新增問號是什麼意思

C#實體類中在資料型別後面新增問號是什麼意思  public static DateTime? GetTimeStartByType(DataTimeType type, DateTime time)   C#語法中一個個問號(?)的運算子是指:可以為 null

matlab圖片資料型別轉換uint8與double

matlab中處理影象畫素點資料: img1=double(imread('lenna.bmp')); matlab中imshow圖片,要先轉換成uint8: subplot(1,2,1),imshow(uint8(img1)),title('original');subplot(1,2,2),imsh