char和nchar區(qū)別 數(shù)據(jù)庫中char, nchar,varchar, nvarchar的差異?
數(shù)據(jù)庫中char, nchar,varchar, nvarchar的差異?1. Char:Char存儲定長數(shù)據(jù)非常方便,Char字段的索引效率高。例如,define char(10),因此無論您存儲的
數(shù)據(jù)庫中char, nchar,varchar, nvarchar的差異?
1. Char:Char存儲定長數(shù)據(jù)非常方便,Char字段的索引效率高。例如,define char(10),因此無論您存儲的數(shù)據(jù)是否達(dá)到10字節(jié),它都將占用10字節(jié)的空間。
2. Varchar:存儲可變長度的數(shù)據(jù),但是存儲效率沒有char高。如果一個字段的可能值不是固定長度,我們只知道它不能超過10個字符。將其定義為varchar(10)是最劃算的。
3. Nchar和nvarchar的名字比前三個多。這意味著存儲Unicode數(shù)據(jù)類型的字符。我們知道英文字符只需要一個字節(jié)來存儲,但是有許多中文字符需要兩個字節(jié)來存儲。當(dāng)英文和漢字同時(shí)存在時(shí),很容易造成混淆。Unicode字符集的產(chǎn)生是為了解決字符集的不兼容問題。它的所有字符都用兩個字節(jié)來表示,也就是說,英文字符也用兩個字節(jié)來表示。
4. 用n可以存儲4000個字符,英文字母存在于n型中,也是按兩個字節(jié)計(jì)算的。不需要n就可以存儲8000個字符,英文字符按一個字節(jié),中文字符按兩個字節(jié)。一般來說,nchar/nvarchar用于漢字,char/varchar用于英文和數(shù)字。
數(shù)據(jù)庫char,varchar,nchar,nvarchar類型分別有什么區(qū)別?各自在什么情況下使用比較好?
簡而言之,char和nchar只能存儲單字節(jié)字符,如a、a、1、3等,存儲字符的長度是不可變的。例如char(5),如果輸入字符AA,則存儲空間將用空格填充其他三個空位,而物理存儲的長度仍然是5個字符。
Varchar和nvarchar可以存儲長度可變的單字節(jié)和雙字節(jié)字符。區(qū)別同上。Char和nchar很少使用。Varchar和nvarchar更常用。因?yàn)閚varchar會浪費(fèi)存儲空間,所以它通常被更頻繁地使用。Nvarchar確保定義的長度為100。無論輸入的是單字節(jié)字符還是雙字節(jié)字符,都不能超過100。如果varchar的大小為100,則單字節(jié)字符輸入不能超過100,而雙字節(jié)字符輸入不能最多只有50
char type是一個字節(jié),char(8)只能存儲8個字母;
nchar type是雙字節(jié),nchar(8)可以存儲8個漢字;
varchar type是可變的,即如果varchar(8) 只存儲一個字母并且只占用內(nèi)存中的一個字節(jié);
char type if char(8)只存儲一個字母并且占用內(nèi)存中的8個字節(jié)。
問個數(shù)據(jù)庫字段nchar和nvarchar的區(qū)別?
Nchar存儲固定長度的Unicode字符串,nvarchar存儲可變長度的Unicode字符串。
十進(jìn)制和數(shù)字是等價(jià)的。