Oracle中的基礎資料型別

2021-10-24 14:07:11 字數 2232 閱讀 7786

一,字元型

char- 定長字元型別,單位可以使用位元組數或字元數。例如:

char(2 byte) -- 長度為2個位元組

char(2 char) -- 長度為2個字元,具體佔幾個位元組還要看編碼。比如儲存雙位元組的漢字,則實際長度是4個位元組。

char(2) -- 不指定則表示長度為2個位元組

varchar/varchar2

varchar和varchar2在oracle裡是同義詞,但是oracle建議使用varchar2。變長字元型別,和char類似,其單位可以使用位元組數或字元數。

varchar2(25 byte) -- 最大可儲存字元長度為25位元組

varchar2(25 char) -- 最大可儲存字元長度為25字元,具體長度看編碼

varchar2(25) -- 不指定則表示最大長度為25個位元組。

nchar/nvarchar2- 儲存定長的unicode字元,注意其單位預設是字元數。因此如果儲存的是utf-16,則nvarchar(100)實際的最大儲存長度是400個位元組。

rowid- 每個oracle都有乙個名為rowid的偽列,用來存放每一行資料的儲存位址的二進位制值,由18個字元組合表示。

二,數字型別

注意資料庫中的數字型別和iso標準略有不同。

number

number是oracle中的數字型別,可以用來儲存浮點數或整數:

number(精度,刻度)

精度 – 表示所允許的值的總長度,也就是數值中所有數字位的個數。最大精度是38,也就是說最多儲存38個數字。如果不指定精度,則預設為38。

刻度 – 小數點右邊的數字位的個數。

例如:

number(4,3) -- 可用於儲存3.142這樣的數值,如果賦值超出了變數的精度,則自動四捨五入。例如將3.1415926賦值給number(4,3) ,則儲存的是3.142

number(3) -- 可用於儲存3這樣的整數,相當於number(3,0)

而我們常見的int,smallint,decimal,float等型別,其實是number的子型別,用於和ansi相容。包括decimal,int,smallint,float等等,這裡介紹float和decimal。

float

float(n) – float是浮點數(floating-point number)型別,因此它不是精確值,不能精確表達所有小數。在oracle中n表達的是二進位制的精度,範圍最大到126,等同於十進位制的38。

real等同於float(63),而double precision等同於float(126)。

decimal和numeric

decimal和numeric是同義詞,它們是定點數(fixed-point numbers)型別,因此可以表達精確值。

decimal(精度,刻度) – 精度和刻度的意義和上文number型別相同。

decimal可以和整數直接運算,但是不能和float直接運算。因為decimal是精確的,而float是不精確的。

三,時間型別

與mssql以及mysql不同,oracle儲存時間不是從2023年開始到現在的整數。

date

用於儲存日期和時間資訊,包含世紀,年,月,日,小時,分鐘和秒,但是不包含秒的小數部分,也就是不能表達毫秒微秒。

2011-08-01 06:08:05

select sysdate-2 from dual; -- 返回兩天前同一時間。該型別與整數的加減運算,實際上是對天數的加減。

用to_date()和to_char()做date和字串之間的型別轉換。

timestamp

timestamp與date相同,只是包含的時間資訊是年,月,日,小時,分鐘,秒以及秒的小數部分。因此需要儲存精確到毫秒微秒的時間資訊時,需要使用timestamp,預設精確到微秒。

2011-08-01 06:08:05.000
四,布林型

boolean

可能的值為true,false和null。很簡單,不詳述了。

oracle 基礎 資料型別

1 適用於字元數字資料型別 varchar2 可變長度資料字元資料 從1b 到4kb 資料儲存在資料庫字符集中。nvarchar2 可變長度,儲存在國家語言字符集 unicode 字符集之一 char 固定長度字元資料 從1b 到2kb 儲存在資料庫字符集中。2 適用於數字型別資料,都為可變長度資料...

Oracle基礎資料型別

一 資料型別 oracle支援的資料型別可以分為三個基本種類 字元資料型別 數字資料型別以及表示其它資料的資料型別。1.字元資料型別 char char資料型別儲存固定長度的子符值。乙個char資料型別可以包括1到2000個字元。如果對char沒有明確地說明長度,它的預設長度則設定為1.如果對某個c...

oracle中的資料型別

字段型別 中文說明 限制條件 其它說明 char 固定長度字串 最大長度2000 bytes varchar2 可變長度的字串 最大長度4000 bytes 可做索引的最大長度749 nchar 根據字符集而定的固定長度字串 最大長度2000 bytes nvarchar2 根據字符集而定的可變長度...