1、
varchar
/varchar2
varchar
是長度不固定的,比如說,你定義了
varchar
(20),當你插入abc,則在數據庫中只佔3個字節。
varchar
同樣區分中英文,這點同
char
。
varchar2基本上等同於
varchar
,它是oracle自己定義的一個非工業標準
varchar
,不同在於,varchar2用
null
代替
varchar
的空字符串
varchar
/varchar2適用於長度不固定的,一般不含中文的情況
3.nvarchar/nvarchar2
nvarchar和nvarchar2是長度不固定的
nvarchar不區分中英文,比如說:你定義了nvarchar(20),你可以存入20個英文字母/漢字或中英文組合,這個20定義的是字符數而不是字節數
nvarchar2基本上等同於nvarchar,不同在於nvarchar2中存的英文字母也佔兩個字節
nvarchar/nvarchar2適用於存放中文
char
[ ( n ) ]
固定長度,非 Unicode 字符數據,長度爲 n 個字節。n 的取值範圍爲 1 至 8,000,存儲大小是 n 個字節。
varchar
[ ( n |
max
) ]
可變長度,非 Unicode 字符數據。n 的取值範圍爲 1 至 8,000。
max
指示最大存儲大小是 2^31-1 個字節。存儲大小是輸入數據的實際長度加 2 個字節,用於反映存儲的數據的長度。所輸入數據的長度可以爲 0 個字符。
如果未在數據定義或變量聲明語句中
char
或
varchar
數據類型指定 n,則默認長度爲 1。如果在使用
CAST
和
CONVERT
函數時
char
或
varchar
數據類型未指定 n,則默認長度爲 30。
當執行
CREATE
TABLE
或
ALTER
TABLE
時,如果
SET
ANSI_PADDING 爲
OFF
,則定義爲
NULL
的
char
列將作爲
varchar
處理。
轉自:https://zhidao.baidu.com/question/520194588165577325.html