天天看點

char varchar nvarchar 的差別

        學習就是不斷總結的過程,還記得總結char,varchar和nachar差別是看耿建玲視訊的時候,但是,敲完機房的時候就忘記的差不多了,這次在來一次總結。

      一、首先讓我們看看char和varchar的差別:

       1.char的長度是固 定的,而varchar的長度是可以變化的, 比如,存儲字元串“abc",對于char (20),表示你存儲的字元将占20個位元組(包括17個空字元),而同樣的varchar (20)則隻占用3個位元組的長度,20隻是最大值,當你存儲的字元小于20時,按實際長度存儲。由于char是以固定長度的,是以它的速度會比 varchar快得多!但程式處理起來要麻煩一點,要用trim之類的函數把兩邊的空格去掉!

  2.char的效率比varchar2的效率稍高。

     讓我們能看看在資料庫中的差別吧

      (1)、首先建立了一個具有一個Char字段和一個VarChar字段的表。它們都設定為大小最大為50.

char varchar nvarchar 的差別

        (2)、給每一個輸入相同的測試資料。

char varchar nvarchar 的差別

       (3)、用T-SQL語句找到兩個字段的長度

char varchar nvarchar 的差別

       ( 4)、檢視兩種資料類型的差別

char varchar nvarchar 的差別
char varchar nvarchar 的差別

         這樣一看兩者的差別就顯而易見了。

    二、vachar和nvarchar 

    nvarchar(n)

    包含 n 個字元的可變長度 Unicode 字元資料。n 的值必須介于 1 與 4,000 之間。位元組的存儲大小是所輸入字元個數的兩倍。所輸入的資料字元長度可以為零。

    它表示存儲的是Unicode資料類型的字元。我們知道字元中,英文字元隻需要一個位元組存儲就足夠了,但漢字衆多,需要兩個位元組存儲,英文與漢字同時存在時容易造成混亂,Unicode字元集就是為了解決字元集這種不相容的問題而産生的,它所有的字元都用兩個位元組表示,即英文字元也是用兩個位元組表示。nchar、nvarchar的長度是在1到4000之間。和char、varchar比較起來,nchar、nvarchar則最多存儲4000個字元,不論是英文還是漢字;而char、varchar最多能存儲8000個英文,4000個漢字。可以看出使用nchar、nvarchar資料類型時不用擔心輸入的字元是英文還是漢字,較為友善,但在存儲英文時數量上有些損失。  

是以一般來說,如果含有中文字元,用nchar/nvarchar,如果純英文和數字,用char/varchar        

     varchar[(n)]  

    長度為 n 個位元組的可變長度且非 Unicode 的字元資料。n 必須是一個介于 1 和 8,000 之間的數值。存儲大小為輸入資料的位元組的實際長度,而不是 n 個位元組。所輸入的資料字元長度可以為零。

        這次的總結到這裡吧。。

繼續閱讀