欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Sqlserver中char,nchar,varchar與Nvarchar的區(qū)別分析

 更新時(shí)間:2011年08月14日 22:24:44   作者:  
Sqlserver中char,nchar,varchar與Nvarchar的區(qū)別分析,使用sqlserver的朋友可以參考下。
1. char類型

對英文(ASCII)字符占用1個(gè)字節(jié),對一個(gè)漢字占用2個(gè)字節(jié),CHAR存儲定長數(shù)據(jù)很方便,CHAR字段上的索引效率極高,比如定義char(10),那么不論你存儲的數(shù)據(jù)是否達(dá)  到了10個(gè)字節(jié),都要占去10個(gè)字節(jié)的空間。因?yàn)槭枪潭ㄩL度,所以速度效率高。比如定義char(10),那么不論你存儲的數(shù)據(jù)是否達(dá)到了10個(gè)字節(jié),都要占去10個(gè)字節(jié)的空間。因?yàn)槭枪潭ㄩL度,所以速度效率高。

2. VARCHAR存儲變長數(shù)據(jù)

如果一個(gè)字段可能的值是不固定長度的,我們只知道它不可能超過10個(gè)字符,把它定義為 VARCHAR(10)是最合算的。VARCHAR類型的實(shí)際長度是它的值的實(shí)際長度+1。為什么“+1”呢?這一個(gè)字節(jié)用于保存實(shí)際使用了多大的長度。
   Varchar類型:Varchar 的類型不以空格填滿,而Char則會填充滿為止,如varchar(100),但它的值只是"qian",所以它在數(shù)據(jù)庫中存的值就是"qian",而char 不一樣,如char(100),它的  值是"qian",而實(shí)際上它在數(shù)據(jù)庫中是"qian "(qian后共有96個(gè)空格,就是把它填滿為100個(gè)字節(jié))。
注:由于char是以固定長度的,所以它的速度會比varchar快得多!但程序處理起來要麻煩一點(diǎn),要用trim之類的函數(shù)把兩邊的空格去掉!
3. Nchar類型和Nvarchar類型是怎么一回事呢?

為了與其他多種字符的轉(zhuǎn)換,如中文,音標(biāo)等,對每個(gè)英文(ASCII)字符都占用2個(gè)字節(jié),對一個(gè)漢字也占用兩個(gè)字節(jié),所有的字符都占用2個(gè)字節(jié)。

  varchar(n):變長型字符數(shù)據(jù)類型,存儲最長長度為8,000 個(gè)字符
  nvarchar(n):可變長度 Unicode 數(shù)據(jù),其最大長度為 4,000 字符.字節(jié)的存儲大小是所輸入字符個(gè)數(shù)的兩倍,就是說它是雙字節(jié)來存儲數(shù)據(jù)的。如果存儲數(shù)據(jù)如果存在單字節(jié)時(shí),它也是以雙字節(jié)來占用存儲空間的。

  varchar一般適用于英文和數(shù)字,Nvarchar適用中文和其他字符,其中N表示Unicode常量,可以解決多語言字符集之間的轉(zhuǎn)換問題。

以下是補(bǔ)充:

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

1.定長或變長

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

2.Unicode或非Unicode

數(shù)據(jù)庫中,英文字符只需要一個(gè)字節(jié)存儲就足夠了,但漢字和其他眾多非英文字符,則需要兩個(gè)字節(jié)存儲。如果英文與漢字同時(shí)存在,由于占用空間數(shù)不同,容易造成混亂,導(dǎo)致讀取出來的字符串是亂碼。Unicode字符集就是為了解決字符集這種不兼容的問題而產(chǎn)生的,它所有的字符都用兩個(gè)字節(jié)表示,即英文字符也是用兩個(gè)字節(jié)表示。而前綴n就表示Unicode字符,比如nchar,nvarchar,這兩種類型使用了Unicode字符集。

3.幾種數(shù)據(jù)類型的存儲的最大容量

char,varchar 最多8000個(gè)英文,4000個(gè)漢字

nchar,nvarchar  最多可存儲4000個(gè)字符,無論英文還是漢字

相關(guān)文章

  • SQL?SERVER觸發(fā)器詳解

    SQL?SERVER觸發(fā)器詳解

    本文詳細(xì)講解了SQL?SERVER中觸發(fā)器的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • SqlServer給表增加多個(gè)字段的語法

    SqlServer給表增加多個(gè)字段的語法

    這篇文章主要介紹了SqlServer給表增加多個(gè)字段的語法,添加字段的語法非常簡單,需要的朋友參考下本文吧
    2017-09-09
  • SQL語句優(yōu)化方法30例(推薦)

    SQL語句優(yōu)化方法30例(推薦)

    在SQL語句優(yōu)化過程中,我們經(jīng)常會用到hint,現(xiàn)總結(jié)一下在SQL優(yōu)化過程中常見Oracle HINT的用法,提供效率。
    2010-09-09
  • SQL 時(shí)間格式化函數(shù)

    SQL 時(shí)間格式化函數(shù)

    SQL 時(shí)間格式化函數(shù),有時(shí)候因某種需要需要格式化成需要的時(shí)間格式,需要的朋友可以收藏下,以備后用。
    2010-04-04
  • mybatis-plus的sql語句打印問題小結(jié)

    mybatis-plus的sql語句打印問題小結(jié)

    這篇文章主要介紹了mybatis-plus的sql語句打印問題,今天將常用的方式拷貝過來之后,發(fā)現(xiàn)沒有發(fā)生效果(開始的時(shí)候以為是使用配置中心nacos導(dǎo)致問題,最后經(jīng)過仔細(xì)的檢查發(fā)現(xiàn)是單詞拼錯(cuò)了),所以在這里記錄一下
    2022-04-04
  • SQL Server中日期時(shí)間函數(shù)的用法詳解

    SQL Server中日期時(shí)間函數(shù)的用法詳解

    本文詳細(xì)講解了SQL Server中日期時(shí)間函數(shù)的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • 圖文教程mssqlserver數(shù)據(jù)庫導(dǎo)出到另外一個(gè)數(shù)據(jù)庫的方法

    圖文教程mssqlserver數(shù)據(jù)庫導(dǎo)出到另外一個(gè)數(shù)據(jù)庫的方法

    本篇文章通過圖片并茂的方式給大家介紹mssqlserver數(shù)據(jù)庫導(dǎo)出到另外一個(gè)數(shù)據(jù)庫的方法,對mssqlserver數(shù)據(jù)庫導(dǎo)出相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • SQL Server模糊查詢的常見方法總結(jié)

    SQL Server模糊查詢的常見方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于SQL Server模糊查詢的常見方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • sql??server?2012高可用解決方案

    sql??server?2012高可用解決方案

    這篇文章主要介紹了sql??server?2012高可用解決方案,需要的朋友可以參考下
    2023-05-05
  • SQL?Server開發(fā)智能提示插件SQL?Prompt介紹

    SQL?Server開發(fā)智能提示插件SQL?Prompt介紹

    這篇文章介紹了SQL?Server開發(fā)智能提示插件SQL?Prompt,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05

最新評論