亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于SQL Server中char,nchar,varchar,nvarchar的使用區(qū)別

 更新時(shí)間:2013年05月03日 08:55:09   作者:  
對(duì)于程序中的一般字符串類型的字段,SQL Server中有char、varchar、nchar、nvarchar四種類型來(lái)對(duì)應(yīng),那么這四種類型有什么區(qū)別呢,這里做一下對(duì)比

對(duì)于程序中的一般字符串類型的字段,SQL Server中有char、varchar、nchar、nvarchar四種類型來(lái)對(duì)應(yīng),那么這四種類型有什么區(qū)別呢,這里做一下對(duì)比。

1.定長(zhǎng)或變長(zhǎng)

所謂定長(zhǎng)就是長(zhǎng)度固定,當(dāng)要保存的數(shù)據(jù)長(zhǎng)度不夠時(shí)將自動(dòng)在其后面填充英文空格,使長(zhǎng)度達(dá)到相應(yīng)的長(zhǎng)度;有var前綴的,表示是實(shí)際存儲(chǔ)空間是動(dòng)態(tài)變化的,比如varchar,nvarchar變長(zhǎng)字符數(shù)據(jù)則不會(huì)以空格填充。

2.Unicode或非Unicode

數(shù)據(jù)庫(kù)中,英文字符只需要一個(gè)字節(jié)存儲(chǔ)就足夠了,但漢字和其他眾多非英文字符,則需要兩個(gè)字節(jié)存儲(chǔ)。如果英文與漢字同時(shí)存在,由于占用空間數(shù)不同,容易造成混亂,導(dǎo)致讀取出來(lái)的字符串是亂碼。Unicode字符集就是為了解決字符集這種不兼容的問(wèn)題而產(chǎn)生的,它所有的字符都用兩個(gè)字節(jié)表示,即英文字符也是用兩個(gè)字節(jié)表示。而前綴n就表示Unicode字符,比如nchar,nvarchar,這兩種類型使用了Unicode字符集。

3.幾種數(shù)據(jù)類型的存儲(chǔ)的最大容量

char,varchar 最多8000個(gè)英文,4000個(gè)漢字

nchar,nvarchar  最多可存儲(chǔ)4000個(gè)字符,無(wú)論英文還是漢字

復(fù)制代碼 代碼如下:

--創(chuàng)建表
CREATE TABLE TempTable(
    id INT PRIMARY KEY,
    charField CHAR(10),
    varcharField VARCHAR(10),
    nvarcharField NVARCHAR(10)
)

INSERT INTO TempTable VALUES(1,'WFTH','WFTH','WFTH') 
INSERT INTO TempTable VALUES(2,'無(wú)風(fēng)聽(tīng)海','無(wú)風(fēng)聽(tīng)海','無(wú)風(fēng)聽(tīng)海')
INSERT INTO TempTable VALUES(3,'','','')
INSERT INTO TempTable(id) VALUES(4)
INSERT INTO TempTable VALUES(5,'1234567890','1234567890','12345')

SELECT DATALENGTH(charField) AS charFieldLen,
       DATALENGTH(varcharField) AS varcharFieldLen,
       DATALENGTH(nvarcharField) AS nvarcharFieldLen
FROM temptable WHERE id =1

SELECT DATALENGTH(charField) AS charFieldLen,
       DATALENGTH(varcharField) AS varcharFieldLen,
       DATALENGTH(nvarcharField) AS nvarcharFieldLen
FROM temptable WHERE id =2

SELECT DATALENGTH(charField) AS charFieldLen,
       DATALENGTH(varcharField) AS varcharFieldLen,
       DATALENGTH(nvarcharField) AS nvarcharFieldLen
FROM temptable WHERE id =3

SELECT DATALENGTH(charField) AS charFieldLen,
       DATALENGTH(varcharField) AS varcharFieldLen,
       DATALENGTH(nvarcharField) AS nvarcharFieldLen
FROM temptable WHERE id =4

SELECT DATALENGTH(charField) AS charFieldLen,charField,
       DATALENGTH(varcharField) AS varcharFieldLen,varcharField,
       DATALENGTH(nvarcharField) AS nvarcharFieldLen,nvarcharField
FROM temptable WHERE id =5

相關(guān)文章

最新評(píng)論