天天看點

oracle中varchar 和 nvarchar2的差別,Oracle資料庫中的varchar,varchar2,nvarchar,nvarchar2差別及用...

【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中文網,轉載請注明出處,感謝您的尊重!