日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

char* 大小_SQL Server中char, nchar, varchar和nvarchar数据类型有何区别

發布時間:2025/3/19 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 char* 大小_SQL Server中char, nchar, varchar和nvarchar数据类型有何区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當問及CHAR,VARCHAR,NCHAR和NVARCHAR這些數據類型之間的差異時,這個看似很簡單,但有時您也會感到困惑。

要在數據庫存儲字符、數值和特殊字符可以使用這4種數據類型,那么這4種數據類型有什么不同呢?

  • CHAR vs VARCHAR
  • NCHAR vs NVARCHAR

通過例子,我們將逐一研究它們。

DECLARE @string CHAR(20) SET @string = 'Robin' SELECT @string AS 'String', DATALENGTH(@string) AS 'Datalength' , LEN(@string) AS 'Len'

注意:LEN()方法計算的長度不包括字符串尾隨空格的字符長度,而DATALENGTH()方法它是計算字符串表達式中字符占用的字節空間數。

如您所知,我們用單引號表示字符值,例如'Robin'。但是您知道我們也可以用雙引號來表示這些相同的字符,就像編程語言中表示字符串一樣,例如“Robin”,這可以通過以下設定來實現:

SET QUOTED_IDENTIFIER OFF

默認情況下,它被設置為ON。

CHAR vs VARCHAR

關于CHAR數據類型:

  • 它是一種固定長度的數據類型
  • 用于存儲非unicode字符
  • 每個字符占用1個字節的空間
  • 如果提供給CHAR數據類型的變量的字符長度值比聲明變量要短,那么該值將被右填充空格以匹配列長度的大小。

    DECLARE @string CHAR(20) SET @string = 'Robin' SELECT @string AS 'String', DATALENGTH(@string) AS 'Datalength' , LEN(@string) AS 'Len'

    正如您在上面看到的,盡管字符的長度為5,但變量所占用的字節數為20,這意味著不管該變量中存儲的字符是什么,它都將占用預先定義的字節來存儲值。

    關于VARCHAR數據類型:

  • 它是可變長度的數據類型
  • 用于存儲非unicode字符
  • 每個字符占用1字節空間
  • DECLARE @string VARCHAR(20) SET @string = 'Robin' SELECT @string AS 'String', DATALENGTH(@string) AS 'Datalength' , LEN(@string) AS 'Len'

    正如您在上面看到的,它的長度顯示為5,這意味著它只是占用實際變量長度的字節數,這樣可避免浪費數據庫空間。

    注意:如果在執行CREATE TABLE或ALTER TABLE時,設定ANSI_PADDING為OFF,則定義為NULL的CHAR列將被視為VARCHAR。

    那我們該什么時候使用什么?

    如果您預先能知道要使用的列它就是固定長度,那么就使用CHAR數據類型,如果數據可能發生變化,則使用VARCHAR。

    NCHAR vs NVARCHAR

    關于NCHAR數據類型:

  • 它是一種固定長度的數據類型
  • 用于存儲Unicode字符(例如阿拉伯語、德語等語言)
  • 每個字符占用2字節空間
  • DECLARE @string NCHAR(20) SET @string = 'Robin' SELECT @string AS 'String', DATALENGTH(@string) AS 'Datalength' , LEN(@string) AS 'Len'

    正如您在上面看到的,數據長度列顯示40字節,盡管聲明的大小是20,這是因為NCHAR為每個字符保留2字節的空間。

    關于NVARCHAR數據類型:

  • 它是可變長度的數據類型
  • 用于存儲Unicode字符
  • 每個字符占用2字節空間
  • DECLARE @string NVARCHAR(20) SET @string = 'Robin' SELECT @string AS 'String', DATALENGTH(@string) AS 'Datalength' , LEN(@string) AS 'Len'

    在上圖的輸出結果中,您可以看到DATALENGTH列長度是10,這是因為它為每個字符占用2字節的空間,而數據長度只有5個字符,因此它將在數據庫中占用10字節的空間。

    那我們該什么時候使用什么?

    如果您的列將存儲固定長度的Unicode字符,如法語、阿拉伯語等字符,那么使用NCHAR,如果存儲列數據是Unicode,并且長度可以變化,那么使用NVARCHAR。

    總結

    下圖已完整了列出了這4種類型的區別。

    查詢NCHAR或NVARCHAR要比查詢CHAR或VARCHAR慢一些,所以不要用NCHAR或NVARCHAR來存儲非unicode字符,即使這種數據類型支持這一點。

    這篇文章只是為了讓您了解CHAR、VARCHAR、NCHAR和NVARCHAR數據類型之間的差異,因為它們都用于存儲字符、數字或特殊字符。

    感謝您的閱讀,碼字不易,如果覺得對您有幫助,記得給我點個贊和關注哦!

    總結

    以上是生活随笔為你收集整理的char* 大小_SQL Server中char, nchar, varchar和nvarchar数据类型有何区别的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 影音先锋成人资源网站 | 一个人免费在线观看视频 | 肮脏的交易在线观看 | 依人成人综合网 | 男女激情视频网站 | 短篇山村男同肉耽h | 成人午夜免费网站 | 久久新网址 | 亚洲欧美激情另类 | 久久日本视频 | 欧美一区二区不卡视频 | 国产精品网站在线 | 亚洲精品成av人片天堂无码 | 久操视频网 | 69av在线视频 | 强迫凌虐淫辱の牝奴在线观看 | aaa人片在线 | 亚洲综合二区 | 尤果网福利视频在线观看 | av新天堂| 一级全黄男女免费大片 | 久久国产视频精品 | 国产夫妻露脸 | 成人啪啪网站 | h部分肌肉警猛淫文 | 久久黄色一级片 | 一本色道久久综合亚洲精品小说 | 成人在线综合网 | 野花视频在线观看免费 | 免费激情视频网站 | 欧洲色播| 天干夜天干天天天爽视频 | 国产又黄又猛的视频 | 91精品国产高清一区二区三蜜臀 | 95香蕉视频 | 青青在线观看视频 | 免费看美女被靠到爽的视频 | 亚洲图片综合网 | 在线视频一区二区三区 | 国产视频日本 | 看片网站在线观看 | 亚洲 另类 春色 国产 | 西西4444www大胆无视频 | 绿帽视频 | 国产免费av片在线观看 | 成人在线视频观看 | 男女激情av | 日本激情视频一区二区三区 | 91丨九色 | 欧美精品欧美极品欧美激情 | 国产精选一区 | 国产无| 在线免费看av网站 | av天堂一区二区 | 强行糟蹋人妻hd中文字幕 | 欧美成人三级在线播放 | 欧美激情成人在线 | 99久久精品国产毛片 | 日韩免费三级 | 精品中文字幕在线播放 | 亚洲高清视频一区 | 91av福利视频 | 久久久久久久国产精品美女 | 丰满大爆乳波霸奶 | 一区二区三区四区亚洲 | 精品国产成人亚洲午夜福利 | 一起操17c| 舌奴调教日记 | 91色噜噜 | 善良的老师伦理bd中字 | 久久精品99国产精品日本 | 欧美激情黑白配 | 国产亚洲自拍一区 | 国产成人无码av | 精品香蕉99久久久久网站 | 亚洲av无码一区二区三区人妖 | 精品免费视频一区二区 | 亚洲爱视频| 亚洲av无码电影在线播放 | 国产91在线看 | 劲爆欧美第一页 | av看片网站 | 极品三级 | 秋霞二区 | 欧美黑人狂野猛交老妇 | 青青草狠狠操 | 91精品久久久久久久久久久 | 黄色免费在线网址 | 亚洲美免无码中文字幕在线 | 一二三不卡 | 欧美视频一二三 | 精品欧美一区二区在线观看 | 污视频网站入口 | 精品蜜桃av | 国产精品欧美一区喷水 | 少妇的性事hd | 国产福利一区二区视频 | 国产无套在线观看 | 免费看国产黄色片 |