【varchar,varchar2 】 聯系: 1. varchar/varchar2用于存儲可變長度的字元串 比如 varchar(20),存入字元串'abc', 則資料庫中該字段隻占3個位元組,而不是20個位元組 2. size 的最大是 4000,而最小是 1,其表示位元組數, 比如 varchar(20)表示最大可以存放2
【varchar,varchar2】
聯系:
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個字元
--nvarchar,nvarchar2
聯系:
1. nvarchar/nvarchar2用于存儲可變長度的字元串
2. size 的最大值是 4000,而最小值是 1,其值表示字元的個數,而不是位元組數
3. 這兩種類型更适合存儲中文
差別:
1.nvarchar中字元為中文則一般按2個位元組計算,英文數字等按照一個自己計算
2.nvarchar2中所有字元均按照2個位元組計算;
3.nvarchar2雖然更占空間,但是它有更好的相容性,所有推薦使用;
VARCHAR2(size)
可變長度的字元串,其最大長度為size個位元組;size的最大值是4000,而最小值是1;你必須指定一個VARCHAR2的size;
NVARCHAR2(size)
可變長度的字元串,依據所選的國家字元集,其最大長度為size個字元或位元組;size的最大值取決于儲存每個字元所需的位元組數,其上限為4000;你必須指定一個NVARCHAR2的size;
本文原創釋出php中文網,轉載請注明出處,感謝您的尊重!