1. 程式人生 > >數據庫中char與varchar類型的區別

數據庫中char與varchar類型的區別

nbsp code string類型 空格 數據庫 字符 不可變 個數 str

在建立數據庫表結構的時候,為了給一個String類型的數據定義一個數據庫的數據庫類型,一般參考的都是char或者varchar,總結一下它們兩者的區別,明確一下兩者的區別。

1.char的長度是不可變的,而varchar的長度是可變的。
也就是說,定義一個char[10]和varchar[10],如果存進去的是‘abcd’,那麽char所占的長度依然為10,除了字符‘abcd’外,後面跟六個空格,而varchar就立馬把長度變為4了;取數據的時候,char類型的要用trim()去掉多余的空格,而varchar是不需要的。

2.char的存取數度還是要比varchar要快得多,因為其長度固定,方便程序的存儲與查找;但是char也為此付出的是空間的代價,因為其長度固定,所以難免會有多余的空格占位符占據空間,可謂是以空間換取時間效率,而varchar是以空間效率為首位的。

3.char的存儲方式是:對英文字符(ASCII)占用1個字節,對一個漢字占用2個字節;
而varchar的存儲方式是:對每個英文字符占用2個字節,漢字也占用2個字節。

4.兩者的存儲數據都非unicode的字符數據。

數據庫中char與varchar類型的區別