當你在數據庫中創(chuàng )建數據表的時(shí)候,你需要定義表中所有字段的類(lèi)型。ORACLE有許多種數據類(lèi)型以滿(mǎn)足你的需要。數據類(lèi)型大約分為:character, number, date, LOB, 和RAW等類(lèi)型。雖然ORACLE8i也允許你自定義數據類(lèi)型,但是它們是最基本的數據類(lèi)型。
在下面的文章中你將了解到他們在oracle 中的用法、限制以及允許值。
Character 數據類(lèi)型
Character 數據類(lèi)型用來(lái)存儲字母數字型數據。當你在oracle 中定義一個(gè)character 數據時(shí),通常需要制定字段的長(cháng)度,它是該字段的最大長(cháng)度。ORACLE提供以下幾種character 數據類(lèi)型:
CHAR() CHAR數據類(lèi)型是一種有固定長(cháng)度和最大長(cháng)度的字符串。存儲在數據類(lèi)型為CHAR字段中的數據將以空格的形式補到最大長(cháng)度。長(cháng)度定義在1——2000字節之間。
當你創(chuàng )建一個(gè)CHAR型字段,數據庫將保證在這個(gè)字段中的所有數據是定義長(cháng)度,如果某個(gè)數據比定義長(cháng)度短,那么將用空格在數據的右邊補到定義長(cháng)度。如果長(cháng)度大于定義長(cháng)度將會(huì )觸發(fā)錯誤信息。
VARCHAR() varchar型數據是varchar2型數據的快照。
VARCHAR2() varchar2數據類(lèi)型是一種可變長(cháng)度的、有最大長(cháng)度的字母數字型數據。Varchar2類(lèi)型的字段長(cháng)度可以達到4000字節,Varchar2類(lèi)型的變量長(cháng)度可以達到32676字節。
一個(gè)空的varchar2(2000)字段和一個(gè)空的varchar2(2)字段所占用的空間是一樣的。
NCHAR() 和 NVARCHAR2() NCHAR() 和 NVARCHAR2()數據類(lèi)型分別與CHAR() 和 VARCHAR2()類(lèi)型是相同的,只不過(guò)它們用來(lái)存儲NLS(National Language Support)數據。
LONG LONG 數據類(lèi)型是一個(gè)遺留下來(lái)的而且在將來(lái)不會(huì )被支持的數據類(lèi)型。它將被LOB(Large Object)數據類(lèi)型所代替。
比較規則 Varchar2和char數據類(lèi)型根據尾部的空格有不同的比較規則。對Char型數據,尾部的空格將被忽略掉,對于Varchar2型數據尾部帶空格的數據排序比沒(méi)有空格的要大些。比如:
Char 型數據: ‘YO’=‘YO ’
Varchar2型數據: ‘YO’<’YO ’
Numberic 數據類(lèi)型
Numberic 數據類(lèi)型用來(lái)存儲負的和正的整數、分數和浮點(diǎn)型數據,范圍在-1*10-103 和9.999…99*10125之間,有38位的精確度。標識一個(gè)數據超出這個(gè)范圍時(shí)就會(huì )出錯。
Number( ,) Number數據類(lèi)型存儲一個(gè)有p位精確度的s位等級的數據。
DATE 數據類(lèi)型
DATE 數據類(lèi)型用來(lái)存儲日期和時(shí)間格式的數據。這種格式可以轉換為其他格式的數據去瀏覽,而且它有專(zhuān)門(mén)的函數和屬性用來(lái)控制和計算。以下的幾種信息都包含在DATE數據類(lèi)型中:
Century
Year
Month
Day
Hour
Minute
Second
LOB 數據類(lèi)型
LOB(Large Object) 數據類(lèi)型存儲非結構化數據,比如二進(jìn)制文件,圖形文件,或其他外部文件。LOB 可以存儲到4G字節大小。數據可以存儲到數據庫中也可以存儲到外部數據文件中。LOB數據的控制通過(guò)DBMS_LOB 包實(shí)現。BLOB, NCLOB, 和CLOB 數據可以存儲到不同的表空間中,BFILE存儲在服務(wù)器上的外部文件中。LOB數據類(lèi)型有以下幾種:
BLOB: 二進(jìn)制數據
CLOB: 字符型數據
BFILE: 二進(jìn)制文件
其他數據類(lèi)型
ROWID ROWID 數據類(lèi)型是ORACLE數據表中的一個(gè)偽列,它是數據表中每行數據內在的唯一的標識。