Oracle資料庫型別總結

2022-01-31 18:16:06 字數 3768 閱讀 3884

racle基本資料型別(亦叫內建資料型別 built-in datatypes)可以按型別分為:字串型別、數字型別、日期型別、lob型別、long raw& raw型別、rowid & urowid型別。

一 字串型別

char型別 char(size [byte | char])

char型別,定長字串,會用空格填充來達到其最大長度。非null的char(12)總是包含12位元組資訊。char欄位最多可以儲存2,000位元組的資訊。如果建立表時,不指定char長度,則預設為1。另外你可以指定它儲存位元組或字元,例如 char(12 bytye) char(12 char).一般來說預設是儲存位元組,你可以檢視資料庫引數

1.2: nchar型別

這是乙個包含unicode格式資料的定長字串。nchar欄位最多可以儲存2,000位元組的資訊。它的最大長度取決於國家字符集。另外查詢時,如果欄位是nchar型別,則需要如下書寫

select translated_description from product_descriptions

where translated_name = n'lcd monitor 11/pm';

1.3 varchar型別

不要使用varchar資料型別。使用varchar2資料型別。雖然varchar資料型別目前是varchar2的同義詞,varchar資料型別將計畫被重新定義為乙個單獨的資料型別用於可變長度的字串相比,具有不同的比較語義。

1.4: varchar2型別

變長字串,與char型別不同,它不會使用空格填充至最大長度。varchar2最多可以儲存4,000位元組的資訊。

1.5: nvarchar2型別

這是乙個包含unicode格式資料的變長字串。 nvarchar2最多可以儲存4,000位元組的資訊。

二. 數字型別

2.1 number型別

number(p,s)是最常見的數字型別,可以存放資料範圍為10^130~10^126(不包含此值),需要1~22位元組(byte)不等的儲存空間。

p 是precison的英文縮寫,即精度縮寫,表示有效數字的位數,最多不能超過38個有效數字

s是scale的英文縮寫,可以使用的範圍為-84~127。scale為正數時,表示從小數點到最低有效數字的位數,它為負數時,表示從最大有效數字到小數點的位數

下面是官方文件的示例

2.2 integer型別

integer是number的子型別,它等同於number(38,0),用來儲存整數。若插入、更新的數值有小數,則會被四捨五入

2.3 浮點數

浮點數可以有乙個十進位制數點任何地方從第乙個到最後乙個數字,或者可以在所有有沒有小數點。指數可能(可選) 用於以下數量增加的範圍 (例如, 1.777e-20)。刻度值不適用於浮點數字,因為可以顯示在小數點後的位數的數量不受限制。binary_float

binary_float 是 32 位、 單精度浮點數字資料型別。可以支援至少6位精度,每個 binary_float 的值需要 5 個位元組,包括長度位元組。

binary_double

binary_double 是為 64 位,雙精度浮點數字資料型別。每個 binary_double 的值需要 9 個位元組,包括長度位元組。

在數字的列中,浮點數有小數精度。在 binary_float 或 binary_double 的列中,浮點數有二進位制的精度。二進位制浮點數支援的特殊值無窮大和 nan (不是數字)。

您可以指定列在表 2-4 範圍內的浮點數。"數字文字"中定義了用於指定浮點數的格式。

2.5 float型別

float型別也是number的子型別。

float(n),數 n 指示位的精度,可以儲存的值的數目。n 值的範圍可以從 1 到 126。若要從二進位制轉換為十進位制的精度,請將 n 乘以 0.30103。要從十進位制轉換為二進位制的精度,請用 3.32193 乘小數精度。126 位二進位制精度的最大值是大約相當於 38 位小數精度。

三. 日期型別

日期型別用於儲存日期資料,但是並不是使用一般的格式(2012-08-08)直接儲存到資料庫的。

3.1 date型別

date是最常用的資料型別,日期資料型別儲存日期和時間資訊。雖然可以用字元或數字型別表示日期和時間資訊,但是日期資料型別具有特殊關聯的屬性。為每個日期值,oracle 儲存以下資訊: 世紀、 年、 月、 日期、 小時、 分鐘和秒。一般占用7個位元組的儲存空間。

3.2 timestamp型別

這是乙個7位元組或12位元組的定寬日期/時間資料型別。它與date資料型別不同,因為timestamp可以包含小數秒,帶小數秒的timestamp在小數點右邊最多可以保留9位

3.3 timestamp with time zone型別

這是timestamp型別的變種,它包含了時區偏移量的值

3.4 timestamp with local time zone型別

3.5 interval year to moth

3.6 interval day to second

四. lob型別

內建的lob資料型別包括blob、clob、nclob、bfile(外部儲存)的大型化和非結構化資料,如文字、影象、視屏、空間資料儲存。blob、clob、nclob型別

4.1 clob 資料型別

它儲存單位元組和多位元組字元資料。支援固定寬度和可變寬度的字符集。clob物件可以儲存最多 (4 gigabytes-1) * (database block size) 大小的字元

4.2 nclob 資料型別

它儲存unicode型別的資料,支援固定寬度和可變寬度的字符集,nclob物件可以儲存最多(4 gigabytes-1) * (database block size)大小的文字資料。

4.3 blob 資料型別

4.4 bfile 資料型別

二進位制檔案,儲存在資料庫外的系統檔案,唯讀的,資料庫會將該檔案當二進位制檔案處理

五. raw & long raw型別

5.1 long型別

它儲存變長字串,最多達2g的字元資料(2gb是指2千兆位元組, 而不是2千兆字元),與varchar2 或char 型別一樣,儲存在long 型別中的文字要進行字符集轉換。oracle建議開發中使用clob替代long型別。支援long 列只是為了保證向後相容性。clob型別比long型別的限制要少得多。 long型別的限制如下:

1.乙個表中只有一列可以為long型。(why?有些不明白)

2.long列不能定義為主鍵或唯一約束,

3.不能建立索引

4.long資料不能指定正規表示式。

5.函式或儲存過程不能接受long資料型別的引數。

6.long列不能出現在where子句或完整性約束(除了可能會出現null和not null約束)

六. rowid & urowid型別

在資料庫中的每一行都有乙個位址。然而,一些錶行的位址不是物理或永久的,或者不是oracle資料庫生成的。

例如,索引組織錶行位址儲存在索引的葉子,可以移動。

例如,外部表的rowid(如通過閘道器訪問db2表)不是​​標準的oracle的rowid。

oracle使用通用的rowid(urowids)的儲存位址的索引組織表和外表。索引組織表有邏輯urowids的,和國外表的外urowids,。urowid這兩種型別的儲存在rowid偽(堆組織的表的物理行id)。

建立基於邏輯的rowid在表中的主鍵。邏輯的rowid不會改變,只要主鍵不改變。索引組織表的rowid偽urowid資料型別。你可以訪問這個偽列,你會堆組織表的rowid偽(即使用乙個select ...rowid語句)。如果你想儲存的rowid索引組織表,那麼你就可以定義一列的表型urowid到列檢索值的rowid偽。

oracle資料庫中long型別使用總結

1 long 資料型別中儲存的是可變長字串,最大長度限制是2gb。2 對於超出一定長度的文字,基本只能用long型別來儲存,資料字典中很多物件的定義就是用long來儲存的。3 long型別主要用於不需要作字串搜尋的長串資料,如果要進行字元搜尋就要用varchar2型別。4 很多任務具,包括sql p...

oracle資料庫常用型別

資料庫型別 orcale大事記 1977年成立,83年改名為oracle,2002年進入中國市場,註冊商標 甲骨文 2003年發布10g,進入網格時代,在這之前有網路時代8i 9i,到現在的12c,雲時代 i是internete g是grid c是cloud 常用的varchar2 括號中定義大小,...

Oracle 資料庫型別區別

char varchar text和nchar nvarchar ntext的區別 date和timestamp資料型別的比較 下面是oracle中的資料型別 varchar2 size 可變長度的字元資料 char size 固定長度的字元資料 number p,s 可變長度的數字資料 date ...