Oracle数据库的数据类型
常用的數據類型有:
一.數值類型
number:
? ? 在Oracle中取消了在mysql中的int類型,使用number代替,如果你在創建
數據庫表的時候使用了int類型會自動轉換成number類型,并且Oracle沒有
這個”auto_increment”屬性,所以它沒法像MySQL般在表內定義自增主鍵。
但是,Oracle里的序列(SEQUENCE),可間接實現自增主鍵的作用;
number有兩個參數:
number(m,n):m用來表示有幾位有效數字最大是38位,n表示小數點以后可以
有幾位,多出來的位數要四舍五入。
二:字符類型
char:
? ? 用于存儲固定長度的字符串,一個空間占用1個字節,最多存儲2000個字節,
并且在存數據的時候,給的數據占不滿給定的空間也會自動用空格補滿空間,如果長
度超出了就會報錯;
varchar2:
? ? 是Oracle特有的數據類型,Oracle中不提倡使用varchar; varchar2用于存儲可
變長度的字符串。最大長度是char的兩倍,也就是4000個字節,在存數據的時候,
給的數據占不滿給定的空間會自動截斷,省空間,如果長度超出了會補長,不會報
錯;并且它將原本varchar可以存儲空字符串的特性轉換成了可以存儲null值,提供
了向后兼容的能力;
但是為什么不直接全部使用varchar2呢?
? ? 1.VARCHAR2雖然比CHAR節省空間,但是假如一個VARCHAR2列經常被修改,而且每次
被修改的數據的長度不同,這會引起‘行遷移’(RowMigration)現象,而這會造成多
余的I/O,是數據庫設計和調整中要盡力避免的,在這種情況下用CHAR代替VARCHAR2會
更好一些;
? ? 2.還有就是當我們存儲已知固定長度的數據時,比如:手機號(11位)、身
份證號碼(18位)等,可以考慮使用 char。因為,在查詢數據時,對于 char 類型
字段,是全字符整體匹配;而 varchar2 是一個字符一個字符的進行匹配;
? ? 3.并且char的效率要比varchar2高一些,為了提高效率就必須犧牲一些空間。
nchar:
? ? 用于存儲固定長度的字符串,一個空間占用2個字節,最多存儲2000個字節,并且
在nchar中存儲字符,數字和文字都是占用兩個字節;
nvarchar2:
? ? 用于存儲可變長度的字符串,一個空間占用2個字節,最大長度是 NCHAR 的兩倍,
也就是4000個字節。
三:日期類型
Oracle日期類型主要使用 date 和 timestamp 數據類型。
date:
? ?用于存儲日期和時間類型,date 類型的默認格式為:DD-MM-YYYY。
timestamp:
? ?時間戳類型,與 date相比較,timestamp類型具有小數位毫秒數,比 DATE 的精
度更高。
四:大數據類型與二進制類型
long:
?用于存儲可變長度的超長字符串,最大長度為2G,通常用于存儲備注字段,或者?
varchar2 和 nvarchar2 不夠存儲時。
lob:
lob又分為三個:
clob :是一種字符型大型對象(Character Large Object),最大長度為4G,
存儲與字符集相關。
nclob:根據字符集而定的字符數據,最大長度為4G。
blog:是一種二進制大型對象(Binary Large Object),最大長度為4G,適用于
存儲非文本的字節流數據,如:視頻、音頻等。
raw:固定長度的二進制數據,最大長度 2000個字節,可存儲多媒體視頻、音頻格式等。
long raw:可變長度的二進制數據,最大長度2G,與 RAW 類似。
bfile:存儲在數據庫之外的二進制數據,最大長度4G。
rowid:
? ? 行地址,十六進制串,表示行在所在的表中唯一的行地址,該數據類型主要用于返回
ROWID偽列,常用在可以將表中的每一條記錄都加以唯一標識的場合。數據表中記錄的
唯一行號,占10個字節。
nrowid:
? ? 二進制數據表中記錄的唯一行號,最大長度4000個字節。
總結
以上是生活随笔為你收集整理的Oracle数据库的数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络安全资料汇总!
- 下一篇: 前端学习(1425):同步异步概述