4 回答

TA貢獻1827條經驗 獲得超8個贊
1.varchar2把所有字符都占兩字節處理(一般情況下),varchar只對漢字和全角等字符占兩字節,數字,英文字符等都是一個字節;
2.VARCHAR2把空串等同于null處理,而varchar仍按照空串處理;
3.VARCHAR2字符要用幾個字節存儲,要看數據庫使用的字符集,
大部分情況下建議使用varchar2類型,可以保證更好的兼容性。

TA貢獻1817條經驗 獲得超14個贊
CHAR char數據類型存儲固定長度的字符值。一個CHAR數據類型可以包括1到2000個字符。如果對CHAR沒有明確地說明長度,它的默認長度則設置為1。如果對某個CHAR類型變量賦值,其長度小于規定的長度,那么Oracle自動用空格填充。 VARCHAR2 存儲可變長度的字符串。雖然也必須指定一個VARCHAR2數據變量的長度,但是這個長度是指對該變量賦值的最大長度而非實際賦值長度。不需用空格填充。最多可設置為4000個字符。因為VARCHAR2數據類型只存儲為該列所賦的字符(不加空格),所以VARCHAR2需要的存儲空間比CHAR數據類型要小。

TA貢獻1807條經驗 獲得超9個贊
聯系:
1.varchar/varchar2用于存儲可變長度的字符串
比如varchar(20),存入字符串'abc',則數據庫中該字段只占3個字節,而不是20個字節
2.size 的最大值是 4000,而最小值是 1,其值表示字節數,比如
varchar(20)表示最大可以存放20個字節的內容
區別:
1.varchar2把所有字符都占兩字節處理(一般情況下),varchar只對漢字和全角等字符占兩字節,數字,英文字符等都是一個字節;
2.VARCHAR2把空串等同于null處理,而varchar仍按照空串處理;
3.VARCHAR2字符要用幾個字節存儲,要看數據庫使用的字符集,
比如GBK,漢字就會占兩個字節,英文1個
如果是UTF-8,漢字一般占3個字節,英文還是1個。
但是一般情況下,我們都認為是兩個字節處理,因為oracle安裝時候默認我們都選擇GBK的編碼格式,但是我們在頁面做輸入字符串長度的校驗的時候,還是以數據庫設計字段最大長度除3來作為最大長度-----防止數據庫移植時設置不同編碼格式;
比如:VARCHAR2(10),一般情況下最多存放5個漢字,10個字符
- 4 回答
- 0 關注
- 622 瀏覽
添加回答
舉報