Oracle欄位類型及儲存(一)

來源:互聯網
上載者:User

標籤:使用   width   height   存在   處理   oracl   填充   預設   瞭解   

 Oracle中2000個byte,並不是2000個字元的意思,1個字元在Oracle中可能是1個byte到4個byte不等,需看資料庫字元集的設定了。

       對GBK字元集而言,ASCII碼中128個字元使用1個位元組進行儲存,其它字元使用雙位元組儲存;對UTF8字元集而言,ASCII碼中128個字元使用1個位元組進行儲存,其它採用兩個或三個位元組進行儲存,四個位元組儲存的是極少使用字元;

       資料庫中有一個參數NLS_LENGTH_SEMANTICS,這個參數有兩個取值CHAR和BYTE。當為CHAR時字元類型的長度是按字元個數來計算,而不是按BYTE來計算,這在使用變長字元集(AL32UTF8)的情況下非常有用,因為一個字元所佔用的位元組數是不定的,就給我們準確估計欄位長度(BYTE)帶來不便。

1、CHAR。

      CHAR儲存定長資料很方便,CHAR欄位上的索引效率級高,比如定義char(10),那麼不論你儲存的資料是否達到了10個位元組,都要佔去10個位元組的空間,不足的自動用空格填充。

2、VARCHAR

      VARCHAR儲存變長資料,但儲存效率沒有CHAR高。如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。為什麼“+1”呢?這一個位元組用於儲存實際使用了多大的長度。從空間上考慮,用varchar合適;從效率上考慮,用char合適,關鍵是根據實際情況找到權衡點。

3、TEXT

      TEXT儲存可變長度的非Unicode資料,最大長度為2^31-1(2,147,483,647)個字元。

4、NCHAR、NVARCHAR、NTEXT

      這三種從名字上看比前面三種多了個“N”。它表示儲存的是Unicode資料類型的字元。我們知道字元中,英文字元只需要一個位元組儲存就足夠了,但漢字眾多,需要兩個位元組儲存,英文與漢字同時存在時容易造成混亂,Unicode字元集就是為瞭解決字元集這種不相容的問題而產生的,它所有的字元都用兩個位元組表示,即英文字元也是用兩個位元組表示。

5、字元集與國家字元集

       1>字元集
             (1)用來儲存CHAR, VARCHAR2, CLOB, LONG等類型資料
             (2)用來標示諸如表名、列名以及PL/SQL變數等
             (3)用來儲存SQL和PL/SQL程式單元等

       2>國家字元集

              (1)用以儲存NCHAR, NVARCHAR2, NCLOB等類型資料
             (2)國家字元集實質上是為oracle選擇的附加字元集,主要作用是為了增強oracle的字    符處理能力,因為NCHAR資料類型可以提供對亞洲使用定長多位元組編碼的支援,而資料 庫字元集則不能。國家字元集在oracle9i中進行了重新定義,只能在unicode編碼中的     AF16UTF16和UTF8中選擇,預設值是AF16UTF16

 

 

欄位類型 中文說明 限制條件 其它說明
CHAR 固定長度字串 最大長度2000bytes  
VARCHAR2 可變長度的字串 最大長度4000bytes 可做索引的最大長度749
NCHAR 根據字元集而定的固定長度字串 最大長度2000bytes  
NVARCHAR2 根據字元集而定的可變長度字串 最大長度4000bytes  
DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 經過嚴格測試,無千蟲問題
LONG 超長字串 最大長度2G(231-1) 足夠儲存大部頭著作
RAW 固定長度的位元據 最大長度2000bytes 可存放多媒體圖象聲音等
LONG RAW 可變長度的位元據 最大長度2G 同上
BLOB 位元據 最大長度4G  
CLOB 字元資料 最大長度4G  
NCLOB 根據字元集而定的字元資料 最大長度4G  
BFILE 存放在資料庫外的位元據 最大長度4G  
ROWID 資料表中記錄的唯一行號 10bytes ********.****.****格式,*為0或1
NROWID 位元據表中記錄的唯一行號 最大長度4000bytes  
NUMBER(P S) 數字類型 P為整數位,S為小數位  
DECIMAL(P S) 數字類型 P為整數位,S為小數位  
INTEGER 整數類型 小的整數  
FLOAT 浮點數類型 NUMBER(38),雙精確度  
REAL 實數類型 NUMBER(63),精度更高  

 

 

Oracle欄位類型及儲存(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.