最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

對(duì)于程序中的一般字符串類(lèi)型的字段,SQL Server中有char、varchar、nchar、nvarchar四種類(lèi)型來(lái)對(duì)應(yīng),那么這四種類(lèi)型有什么區(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,這兩種類(lèi)型使用了Unicode字符集。

3.幾種數(shù)據(jù)類(lèi)型的存儲(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)論

辰溪县| 河西区| 嘉鱼县| 荥经县| 新闻| 池州市| 乃东县| 清远市| 山东省| 抚顺市| 桓台县| 钟祥市| 临高县| 咸阳市| 扎鲁特旗| 河北省| 兴化市| 崇明县| 美姑县| 江口县| 沙湾县| 临海市| 西青区| 富锦市| 新沂市| 乐东| 津南区| 裕民县| 黔江区| 蒙山县| 南京市| 花莲市| 太湖县| 龙游县| 阿图什市| 府谷县| 喀什市| 平南县| 武川县| 苍梧县| 错那县|