1. 程式人生 > >char、varchar和nvarchar的區別

char、varchar和nvarchar的區別

前言

   今天驗專案師傅問道char、varchar、nvarchar三者有什麼區別,說實話我之前對這個問題去百度過,時間太久了也沒留意就忘掉了,知識還是要總結的,不然全部都得還回去。既然說到這個問題,就好好來說說它們三個之間的區別吧!

char

   之前在敲學生或者機房的時候,從資料庫裡面那出來的值後面會有好多空格,我們需要用Trim()函式來消除沒用的空格,真正造成這個情況的原因是什麼呢?

  • char是定長的,這個怎麼說呢,比如你用char(10),當你輸入6個字元時,它會用英文的空格給補全。當你輸入的15個字元時,它會自動擷取前10個字元。取值範圍1-8000
  • 優點:適合儲存定長的資料,儲存效率快
  • 缺點:使用不當會造成儲存空間的浪費

varchar

  • varchar可變長度的,儲存的大小為輸入資料的位元組的實際長度,所輸入的資料字元長度可以為0。取值範圍0-8000
  • 優點:適合儲存不固定長度的資料,它可以識別出位元組用於儲存實際使用多大的長度。合理的利用的儲存空間。
  • 缺點:儲存效率低

nvarchar

  • 我們都知道英文字母佔一個位元組,漢字佔兩個位元組,如果我們的資料中又有英文,又有漢字,這時nvarchar就該上場了,nvarchar無論是英文還是漢字都是用兩個位元組來表示。
  • 優點:適合儲存既有英文和漢字的資料
  • 缺點:它最多能儲存4000個字元,對英文儲存上有些損失

總結

   這樣一分析,這三個型別很清晰的擺在眼前,這樣在設計資料庫時就可以巧妙的運用了。