1. 程式人生 > >知識點:SQL中char、varchar、text區別

知識點:SQL中char、varchar、text區別

超過 ID 指定 一個 最大 只知道 我們 ber pan

Char為定長,varchar,text為變長、

  • 1、CHAR。CHAR存儲定長數據很方便,CHAR字段上的索引效率級高,比如定義char(10),那麽不論你存儲的數據是否達到了10個字節,都要占去10個字節的空間。

  • 2、VARCHAR。存儲變長數據,但存儲效率沒有CHAR高。如果一個字段可能的值是不固定長度的,我們只知道它不可能超過10個字符,把它定義為 VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。為什麽“+1”呢?這一個字節用於保存實際使用了多大的長度。

從空間上考慮,用varchar合適;從效率上考慮,用char合適,關鍵是根據實際情況找到權衡點。

  • 3、TEXT。text存儲可變長度的非Unicode數據,最大長度為2^31-1(2,147,483,647)個字符。

註意

Char,Varchar不像數值類型,有系統默認長度,所以必須在括號裏定義長度,可以有默認值

text不可以寫默認值,後面如果指定長度,不會報錯誤,但是這個長度是不起作用的,意思就是你插入數據的時候,超過你指定的長度還是可以正常插入(嚴格模式下沒有測試)

總結:char會造成空間浪費,但是有速度優勢;而varchar節省了空間,但是速度就不如char。

(1)經常變化的字段用varchar

 (2)知道固定長度的用char

 (3)盡量用varchar

 (4)超過255字節的只能用varchar或者text

 (5)能用varchar的地方不用text

知識點:SQL中char、varchar、text區別