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