值 | CHAR(4) | 存儲需求 | VARCHAR(4) | 存儲需求 |
'' | ' ' | 4個字節 | '' | 1個字節 |
'ab' | 'ab ' | 4個字節 | 'ab ' | 3個字節 |
'abcd' | 'abcd' | 4個字節 | 'abcd' | 5個字節 |
'abcdefgh' | 'abcd' | 4個字節 | 'abcd' | 5個字節 |
char是定長的,也就是當你輸入的字符小于你指定的數目時,char(8),你輸入的字符小于8時,它會再后面補空值。當你輸入的字符大于指定的數時,它會截取超出的字符。varchar[(n)] 長度為 n 個字節的可變長度且非 Unicode 的字符數據。n 必須是一個介于 1 和 8,000 之間的數值。存儲大小為輸入數據的字節的實際長度,而不是 n 個字節。所輸入的數據字符長度可以為零。1、CHAR。CHAR存儲定長數據很方便,CHAR字段上的索引效率級高,比如定義char(10),那么不論你存儲的數據是否達到了10個字節,都要占去10個字節的空間。 2、VARCHAR。存儲變長數據,但存儲效率沒有CHAR高。如果一個字段可能的值是不固定長度的,我們只知道它不可能超過10個字符,把它定義為 VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。為什么“+1”呢?這一個字節用于保存實際使用了多大的長度。
新聞熱點
疑難解答