基於SQL Server中char,nchar,varchar,nvarchar的使用區別

來源:互聯網
上載者:User

對於程式中的一般字串類型的欄位,SQL Server中有char、varchar、nchar、nvarchar四種類型來對應,那麼這四種類型有什麼區別呢,這裡做一下對比。

1.定長或變長

所謂定長就是長度固定,當要儲存的資料長度不夠時將自動在其後面填充英文空格,使長度達到相應的長度;有var首碼的,表示是實際儲存空間是動態變化的,比如varchar,nvarchar變長字元資料則不會以空格填充。

2.Unicode或非Unicode

資料庫中,英文字元只需要一個位元組儲存就足夠了,但漢字和其他眾多非英文字元,則需要兩個位元組儲存。如果英文與漢字同時存在,由於佔用空間數不同,容易造成混亂,導致讀取出來的字串是亂碼。Unicode字元集就是為瞭解決字元集這種不相容的問題而產生的,它所有的字元都用兩個位元組表示,即英文字元也是用兩個位元組表示。而首碼n就表示Unicode字元,比如nchar,nvarchar,這兩種類型使用了Unicode字元集。

3.幾種資料類型的儲存的最大容量

char,varchar 最多8000個英文,4000個漢字

nchar,nvarchar 最多可儲存4000個字元,無論英文還是漢字

複製代碼 代碼如下:--建立表
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,'無風聽海','無風聽海','無風聽海')
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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.