主頁 > 知識(shí)庫 > 基于SQL Server中char,nchar,varchar,nvarchar的使用區(qū)別

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

熱門標(biāo)簽:北京400電話辦理多少錢 浙江穩(wěn)定外呼系統(tǒng)供應(yīng)商 怎么給高德做地圖標(biāo)注 慶陽地圖標(biāo)注 承德地圖標(biāo)注公司名需要花錢嗎 美團(tuán)地圖標(biāo)注商戶認(rèn)證注冊(cè) 榕城市地圖標(biāo)注 電銷外呼系統(tǒng)軟件功能 咸陽電腦外呼系統(tǒng)運(yùn)營商

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

1.定長或變長

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

2.Unicode或非Unicode

數(shù)據(jù)庫中,英文字符只需要一個(gè)字節(jié)存儲(chǔ)就足夠了,但漢字和其他眾多非英文字符,則需要兩個(gè)字節(jié)存儲(chǔ)。如果英文與漢字同時(shí)存在,由于占用空間數(shù)不同,容易造成混亂,導(dǎo)致讀取出來的字符串是亂碼。Unicode字符集就是為了解決字符集這種不兼容的問題而產(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è)字符,無論英文還是漢字

復(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,'無風(fēng)聽海','無風(fēng)聽海','無風(fē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

您可能感興趣的文章:
  • sql中varchar和nvarchar的區(qū)別與使用方法
  • 過程需要參數(shù) ''@statement'' 為 ''ntext/nchar/nvarchar'' 類型
  • Sqlserver中char,nchar,varchar與Nvarchar的區(qū)別分析
  • 深入char、varchar、text和nchar、nvarchar、ntext的區(qū)別詳解
  • SQL2005中char nchar varchar nvarchar數(shù)據(jù)類型的區(qū)別和使用環(huán)境講解
  • SQL Server數(shù)據(jù)類型char、nchar、varchar、nvarchar的區(qū)別淺析
  • SQL中varchar和nvarchar的基本介紹及其區(qū)別
  • mysql如何處理varchar與nvarchar類型中的特殊字符

標(biāo)簽:新鄉(xiāng) 江蘇 拉薩 貴州 呼和浩特 昭通 上海 重慶

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于SQL Server中char,nchar,varchar,nvarchar的使用區(qū)別》,本文關(guān)鍵詞  基于,SQL,Server,中,char,nchar,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《基于SQL Server中char,nchar,varchar,nvarchar的使用區(qū)別》相關(guān)的同類信息!
  • 本頁收集關(guān)于基于SQL Server中char,nchar,varchar,nvarchar的使用區(qū)別的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章