Oracle 的數據類型

      Oracle的內置數據類型可以分爲3大類,即標量數據類型、幾何數據類型和關係數據類型。下面分別介紹這些數據類型:

 

      1、表量數據類型

       標量數據類型是一般的數據類型,可以返回標量值。標量數據類型可以由字符數據類型、數字數據類型、日期數據類型、RAW數據類型、大對象數據類型和行數據類型組成。

      字符數據類型可以用來存儲各種字符數據,這些字符數據既可以是定長度數據類型,也可以是變長度數據類型。定長度數據類型用來存儲固定長度的字符。如果實際的字符長度小於指定的長度,則不足位數在前面添加空格補齊。例如,char和nchar都是定長數據類型。nchar數據類型可以存儲國際語言。對應變長度的數據類型來說,實際存儲字符長度依據字符數據的長度來定。這些數據類型包括varchar2和nvarchar2.

       數字數據類型總是變長類型的。這些數據類型包括number,他們可以用來存儲各種數字數據類型,日期數據類型是Date,可以用來存儲各種日期。raw數據類型用來存儲字節比較小的二進制數據類型,其存儲的最大字節數是2000.

     在oracle 9i系統中,提供了6中用來存儲大對象(Large OBject ,LOB)的數據類型這些數據類型是:

     (1)CLOB和LONG數據類型用來存儲固定長度的字符數據類型;

     (2)NCLOB用來存儲固定長度的國際數據類型;

     (3)BLOG和LONG RAW數據類型用來存儲非結構化的數據類型;

     (4)BFILE數據類型用來在操作系統中存儲非結構化數據。

   

 對於LONG和LONG RAW數據類型來說,必須遵循下列一些規則:

     (1) 每個表只能有一個這種數據類型的列;

     (2)最大字節數是2GB;

     (3)可以使用select語句返回數據;

     (4)可以聯機存儲數據;

     (5)不支持對象類型;

     (6)串行訪問數據。

 

  對於LOB數據類型,在使用過程中,必須遵循下列一些規則:

     (1)每個表可以有多個這種數據類型的列;

     (2)最大字節數是4GB;

     (3)使用select語句只能返回存儲這種數據的位置;

     (4)既可以聯機存儲,也可以脫機存儲;

     (5)支持對象類型;

     (6)隨機訪問數據。  

 

      行數據類型包括ROWID和UROWID。ROWID和UROWID是一種僞列,它可以與表中的其他列同時被訪問。這種數據類型具有下列一些特徵:

      (1)ROWID和UROWID是表中每一行數據的唯一標示符;

      (2)ROWID和UROWID不能作爲一個列明確地存儲;

      (3)雖然ROWID和UROWID不能作爲某個行的物理位置,但是可以用來定位行的位置;

      (4)ROWID和UROWID提供了訪問表中數據行的最快方式;

      (5)ROWID和UROWID存儲在索引中。

2、集合數據類型

     集合數據類型用來存儲存儲了對象的對象。在oracle系統中,有兩種集合數據類型,即變長數組(VARRAY)數據類型和嵌套表(TABLE)數據類型。

     VARRAY數據類型用來存儲比較小的數組元素,如客戶的電話號碼。這種數據類型具有下面一些特徵:

      (1)數組時有序的數據元素集;

      (2)數組中的所有元素都具有相同的數據類型;

      (3)每一個元素都有一個索引;

      (4)數據元素的數量就是數組的大小;

      (5)允許數組的大小是變長的。

     TABLE數據類型提供了定義表中一列的方式。這樣,這種數據類型的列可以用來存儲大量記錄集。TABLE數據類型具有下列一些特徵:

      (1)嵌套表是無序的記錄集或行集;

      (2)嵌套表中的行具有相同的結構;

      (3)嵌套表中的數據行與父表分開存儲,但是通過指針相對應;

      (4)嵌套表的存儲特性可以由數據庫管理員定義;

      (5)嵌套表沒有預定義的大小

 

3、關係數據類型

     關係數據類型(REF)用作數據庫中的指針。這些數據類型應用要求具有對象類型。例如,訂單表中的沒一項與產品表中的某一項必須對應。這種數據類型體現了oracle的對象關係特徵。  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章