varchar與char的轉(zhuǎn)換 數(shù)據(jù)庫(kù)char,varchar,nchar,nvarchar類型分別有什么區(qū)別?各自在什么情況下使用比較好?
數(shù)據(jù)庫(kù)char,varchar,nchar,nvarchar類型分別有什么區(qū)別?各自在什么情況下使用比較好?簡(jiǎn)而言之,char和nchar只能存儲(chǔ)單字節(jié)字符,如a、a、1、3等,存儲(chǔ)字符的長(zhǎng)度是不可變
數(shù)據(jù)庫(kù)char,varchar,nchar,nvarchar類型分別有什么區(qū)別?各自在什么情況下使用比較好?
簡(jiǎn)而言之,char和nchar只能存儲(chǔ)單字節(jié)字符,如a、a、1、3等,存儲(chǔ)字符的長(zhǎng)度是不可變的。例如char(5),如果輸入字符AA,則存儲(chǔ)空間將用空格填充其他三個(gè)空位,而物理存儲(chǔ)的長(zhǎng)度仍然是5個(gè)字符。
Varchar和nvarchar可以存儲(chǔ)長(zhǎng)度可變的單字節(jié)和雙字節(jié)字符。區(qū)別同上。Char和nchar很少使用。Varchar和nvarchar更常用。因?yàn)閚varchar會(huì)浪費(fèi)存儲(chǔ)空間,所以它通常被更頻繁地使用。Nvarchar確保定義的長(zhǎng)度為100。無(wú)論輸入的是單字節(jié)字符還是雙字節(jié)字符,都不能超過(guò)100。如果varchar的大小為100,則單字節(jié)字符輸入不能超過(guò)100,而雙字節(jié)字符輸入不能超過(guò)50
char type是一個(gè)字節(jié),char(8)只能存儲(chǔ)8個(gè)字母,nchar type是雙字節(jié),nchar(8)可以存儲(chǔ)8個(gè)漢字,varchar type是可變的,即,如果varchar(8)只存儲(chǔ)一個(gè)字母并且只占用內(nèi)存中的一個(gè)字節(jié),那么char type如果char(8)只存儲(chǔ)一個(gè)字母并且只占用內(nèi)存中的8個(gè)字節(jié)