oracle的欄位類型:1、CHAR,固定長度的字串;2、VARCHAR2,可變長度的字串;3、LONG,超長的字串;4、BLOB,二進位資料;5 、FLOAT,浮點型資料;6、REAL,實數類型;7、DATE,日期類型的資料等等。
本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。
#CHAR 固定長度字串最大長度2000 bytes
VARCHAR2 可變長度的字串最大長度4000 bytes 可做索引的最大長度749
NCHAR 根據字元集而定的固定長度字串最大長度2000 bytes
NVARCHAR2 根據字元集而定的可變長度字串最大長度4000 bytes
DATE 日期(日月-年) DD-MM-YY(HH-MI-SS) 經過嚴格測試,無千蟲問題
LONG 超長字符串最大長度2G(231-1) 足夠存儲大部頭著作
RAW 固定長度的二進位資料最大長度2000 bytes 可存放多媒體圖形聲音等
LONG RAW 可變長度的二進位資料最大長度2G 同上
BLOB 二進位資料最大長度4G
CLOB 字元資料最大長度4G
NCLOB 根據字元集而定的字元資料最大長度4G
BFILE 存放在資料庫外的二進位資料最大長度4G
#ROWID 資料表中記錄的唯一行號10 bytes ********.****.****格式,*為0或1
NROWID 二進位資料表中記錄的唯一行號最大長度4000 bytes
#NUMBER(P,S) 數字型別P為整數位,S為小數位
#DECIMAL(P,sans-serif; line-height:23.4px"> INTEGER 整數型別小的整數
FLOAT 浮點數類型NUMBER(38),雙精度
REAL 實數類型NUMBER(63),精度更高
bfile 無 在資料庫外部保存的大型二進位物件文件,最大長度是4GB。
這種外部的LOB類型,透過資料庫記錄變化情況,但是資料的特定保存是在資料庫外部進行的。
Oracle 8i可以讀取、查詢BFILE,但不能寫入。
大小由作業系統決定。
資料型態是列或預存程序中的一個屬性。
Oracle支援的資料類型可以分為三個基本種類:字元資料類型、數字資料類型以及表示其它資料的資料類型。
字元資料型別
CHAR char資料型別儲存固定長度的字元值。一個CHAR資料型別可以包括1到2000個字元。如果對CHAR沒有明確地說明長度,它的預設長度則設定為1。如果對某個CHAR類型變數賦值,其長度小於規定的長度,那麼Oracle就自動用空格填滿。
VARCHAR2 儲存可長度的字串。雖然也必須指定一個VARCHAR2資料變數的長度,但是這個長度是指對該變數賦值的最大長度而非實際賦值長度。不需用空格填充。最多可設定為4000個字元。因為VARCHAR2資料型別只儲存為此列所賦的字元(不加空格),所以VARCHAR2需要的儲存空間比CHAR資料型別小。
Oracle建議使用VARCHAR2
NCHAR和NVARCHAR2 NCHAR和NVARCHAR2資料型別分別儲存固定長度與可變長度的字串,但是它們使用的是和資料庫其他類型不同的字元集。在建立資料庫時,需要指定所使用的字元集,以便對資料中資料進行編碼。也可以指定一個輔助的字元集[即本機語言集]。 NCHAR和NVARCHAR2類型的欄位使用輔助字元集。 NCHAR和NVARCHAR2類型的欄位使用輔助字元集。
在Oracle 9i中,可以以字元而不是位元組為單位表示NCHAR和NVARCHAR2欄位的長度。
LONG long資料型別可以存放2GB的字元數據,它是從早期版本繼承下來的。現在如果儲存大容量的數據,Oracle建議使用CLOB和NCLOB數據類型。在表格和sql語句中使用LONG類型有許多限制。
CLOB和NCLOB CLOB和NCLOB資料類型可以儲存多達4GB的字元資料。 NCLOB資料類型可儲存NLS資料。
數字資料類型
Oracle使用標準、可變長度的內部格式來儲存數字。這個內部格式精度可以高達38位元。
NUMBER資料型別可以有兩個限定符,如:column NUMBER(precision,scale)。 precision表示數字中的有效位元。如果沒有指定precision的話,Oracle將使用38作為精確度。 scale表示小數點右邊的位數,scale預設為0。如果把scale設為負數,Oracle將把該數字取捨到小數點左邊的指定位數。
日期資料類型
Oracle標準日期格式為:DD-MON-YY HH:MI:SS
透過修改實例的參數NLS_DATE_FORMAT,可以改變實例中插入日期的格式。在一個會話期間,可以透過Alter session sql指令來修改日期,或是透過使用sql語句的TO_DATE表達式中的參數來更新一個特定值。
其它的資料類型
RAW和LONG RAW RAW和LONG RAW資料類型主要用於對資料庫進行解釋。指定這兩種類型時,Oracle以位元的形式來儲存資料。 RAW資料類型一般用於儲存有特定格式的對象,如點陣圖。 RAW資料型態可佔用2KB的空間,而LONG RAW資料型別則可佔用2GB大小。
ROWID ROWID是一種特殊的欄位類型,稱為偽列(pseudocolumn)。 ROWID偽列在sql SELECT語句中可以像普通欄位一樣被存取。 Oracle資料庫中每行都有一個偽列。 ROWID表示行的位址,ROWID偽列以ROWID資料類型定義。
ROWID與磁碟機驅動的特定位置有關,因此,ROWID是獲得行的最快方法。但是,行的ROWID會隨著卸載和重載資料庫而變化,因此建議不要在交易中使用ROWID偽列的值。例如,一旦目前應用程式已經使用完記錄,就沒有理由保存行的ROWID。不能透過任何sql語句來設定標準的ROWID偽列的值。
列或變數可以定義成ROWID資料類型,但是Oracle不能保證該列或變數的值是一個有效的ROWID。
LOB(大型物件)資料類型,可以儲存4GB的資訊。 LOB有以下3中類型:
,只能儲存字元資料
,儲存本地語言字元集資料
,以二進位資訊儲存資料
可以指定將一個LOB資料保存在Oracle資料庫內,還是指向一個包含次資料的外部檔案。
LOB可以參與事務。管理LOB中的資料必須透過DBMS_LOB PL/sql內建軟體包或OGI介面。
為了方便將LONG資料型別轉換成LOB,Oracle 9i包含許多同時支援LOB和LONG的函數,喊著包含一個ALTER TABLE語句的新選擇,它允許將LONG資料型別自動轉換成LOB。
BFILE
BFILE資料型別用做指向儲存在Oracle資料庫以外的檔案的指標。
XML Type
作為對XML支援的一部分,Oracle 9i包含了一個新的資料類型XML Type。定義為XMLType的欄位將儲存一個字元LOB列中的XML文件。有許多內建的功能可以讓你從文件中抽取單一節點,也可以在XML Type文件中對任何節點建立索引。
從Oracle 8以後,使用者可以定義自己的複雜資料類型,它們是由Oracle基本資料類型組合而成。
AnyType、AnyData和AnyDataSet
Oracle包含3個新的資料類型,用於定義在現有資料類型之外的資料結構。其中每種資料類型必須以程式單元來定義,以便讓Oracle9i知道如何處理這些類型的特定實作。
型別轉換
Oracle會自動將某些資料型別轉換成其他的資料型別,轉換取決於包含該值的sql語句。
資料轉換也可以透過Oracle的型別轉換函數顯示地進行。
連線與比較
在大多數平台上Oracle sql中的連線運算子以兩條豎線(||)表示。連接是將兩個字元值連接。 Oracle的自動類型轉換功能使得兩個數字值也可以連線。
NULL
NULL值是關聯式資料庫的重要特徵之一。實際上,NULL不代表任何值,它表示沒有值。如果要建立表格的一個列,而這個列必須有值,那麼應將它指定為NOT NULL,這表示該列不能包含NULL值。
任何資料型態都可以賦予NULL值。 NULL值引入了sql運算的三態邏輯。如果比較的一方是NULL值,那麼會出現3種狀態:TURE、FALSE以及兩者都不是。
因為NULL值不等於0或其他任何值,所以測試某個資料是否為NULL值只能透過關係運算子IS NULL來進行。
NULL值特別適合以下情況:當一個欄位還未賦值時。如果選擇不使用NULL值,那麼必須對行的所有欄位都要賦值。這其實也取消了某一列不需要值的可能性,同時對它賦的值也容易產生誤解。這種情況則可能誤導終端用戶,並導致累積操作的錯誤結果。
推薦教學:《Oracle影片教學》
以上是oracle的字段類型有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!