国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

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

2024-08-31 00:47:33
字體:
來源:轉載
供稿:網友

對于程序中的一般字符串類型的字段,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個字符,無論英文還是漢字

復制代碼 代碼如下:www.CuoXIn.com

--創建表
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

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 响水县| 北辰区| 海阳市| 竹北市| 隆林| 新野县| 富川| 班玛县| 甘德县| 津市市| 莲花县| 朔州市| 南部县| 玉龙| 夏邑县| 尉犁县| 永春县| 临西县| 方城县| 红安县| 马山县| 化州市| 广灵县| 靖安县| 巴南区| 榕江县| 祁连县| 油尖旺区| 临武县| 永仁县| 新田县| 太保市| 崇州市| 罗定市| 山东| 长汀县| 吉木乃县| 玛纳斯县| 漳平市| 修水县| 徐水县|