一、Oracle中的數據類型
Oracle中提供了豐富的數據類型,用來存儲數據,主要包括:
1、字符類型:主要用來存儲字符串類型的數據。
數據類型
長度
說明
CHAR(n BYTE/CHAR)
默認1字節,n值最大為2000
末尾填充空格以達到指定長度,超過最大長度報錯。默認指定長度為字節數,字符長度可以從1字節到四字節。
NCHAR(n)
默認1字符,最大存儲內容2000字節
末尾填充空格以達到指定長度,n為Unicode字符數。默認為1字節。
NVARCHAR2(n)
最大長度必須指定,最大存儲內容4000字節
變長類型。n為Unicode字符數
VARCHAR2(n BYTE/CHAR)
最大長度必須指定,至少為1字節或者1字符,n值最大為4000
變長類型。超過最大長度報錯。默認存儲的是長度為0的字符串。
VARCHAR
同VARCHAR2
不建議使用
char、nchar、varchar類型的區別
1、char CHAR的長度是固定的,最長2000個字符,長度根據聲明來決定;varchar是可變長度的字符串,長度根據保存的值來決定。
2、varchar是最大長度為2000的可變字符串,而varchar2最大長度為4000。
2、數字類型: 存儲整數、小數格式的數據
數據類型
長度
說明
NUMBER(p[,s])
1-22字節。
P取值范圍1到38
S取值范圍-84到127
存儲定點數,值的絕對值范圍為1.0 x 10 -130至1.0 x 10 126。值大於等於1.0 x 10 126時報錯。p為有意義的10進制位數,正值s為小數位數,負值s表示四捨五入到小數點左部多少位。
BINARY_FLOAT
5字節,其中有一長度字節。
32位單精度浮點數類型。
符號位1位,指數位8位,尾數位23位。
BINARY_DOUBLE
9字節,其中有一長度字節。
64位雙精度浮點數類型。
3、日期時間類型:存儲日期格式類型,包括日期和時間間隔
數據類型
長度
說明
DATE
7字節
默認值為SYSDATE的年、月,日為01。包含一個時間字段,若插入值沒有時間字段,則默認值為:00:00:00 or 12:00:00 for 24-hour and 12-hour clock time。沒有分秒和時間區。
TIMESTAMP [(fractional_seconds_precision)]
7至11字節
fractional_seconds_precision為Oracle存儲秒值小數部分位數,默認為6,可選值為0到9。沒有時間區。
TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE
13字節
使用UTC,包含字段YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, TIMEZONE_
HOUR, TIMEZONE_MINUTE
TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE
7至11字節
存時使用數據庫時區,取時使用回話的時區。
INTERVAL YEAR [(year_precision)] TO MONTH
5字節
包含年、月的時間間隔類型。year_precision是年字段的數字位數,默認為2,可取0至9。
INTERVAL DAY [(day_precision)]
TO SECOND [(fractional_seconds_precision)]
11字節
day_precision是月份字段的數字位數,默認為2,可取0至9。
4、大對象類型:存儲大數據對象,比如音頻,視頻等格式。
數據類型
長度
說明
BLOB
最大為(4GB-1)*數據庫塊大小
存儲非結構化二進制文件。支持事務處理。
CLOB
最大為(4GB-1)*數據庫塊大小
存儲單字節或者多字節字符數據。支持事務處理。
NCLOB
最大為(4GB-1)*數據庫塊大小
存儲Unicode數據。支持事務處理。
BFILE
最大為2 32-1字節
LOB地址指向文件系統上的一個二進制文件,維護目錄和文件名。不參與事務處理。只支持只讀操作。
5、其他類型:
數據類型
長度
說明
LONG
最大為2GB
變長類型,存儲字符串。創建表時不要使用該類型。
RAW(n)
最大2000字節,n為字節數,必須指定n
變長類型,字符集發生變化時不會改變值。
LONG RAW
最大為2GB
變長類型,不建議使用,建議轉化為BLOB類型,字符集發生變化時不會改變值。
ROWID
10字節
代表記錄的地址。顯示為18位的字符串。用於定位數據庫中一條記錄的一個相對唯一地址值。通常情況下,該值在該行數據插入到數據庫表時即被確定且唯一。