當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


MySQL CHAR and VARCHAR用法及代碼示例


MySQL中的CHARVARCHAR類型都用於存儲字符串(即文本),但它們的存儲方式不同。

它們都接受一個整數作為輸入,特別是從 0255 。存儲一個字符需要一個字節。

因此,CHAR(10) 意味著每個列條目的長度不能超過 10 個字符。

CHAR

存儲CHAR格式數據所需的內存空間是固定的。繼續我們的例子,假設我們使用CHAR(10)作為我們的數據類型:

CHAR(10)

現在,假設我們添加“bob” 作為條目,該條目隻有 3 個字符長。有趣的是,這條數據實際上在我們的數據庫中存儲為“bob “(即7個尾隨空格)。

這意味著即使技術上我們隻存儲 3 個字符,我們仍然使用 10 個字節。但是,當我們檢索此數據時,MySQL 將刪除幕後的尾隨空格,因此您不必擔心!

VARCHAR

VARCHAR和CHAR最大的區別是內存空間不固定。假設我們將數據類型設置為VARCHAR(10)

VARCHAR(10)

CHAR(10) 類似,我們不能存儲超過 10 個字符的字符串。

現在,假設我們存儲字符串 “bob” 。與 CHAR(10) 不同,MySQL 不添加任何尾隨空格,這在我們節省大量內存空間的意義上非常有用。然而,這裏需要注意的是,VARCHAR 每個數據需要 1 字節或 2 字節的額外存儲空間。更具體地說,它們存儲在前麵(即前綴)。

注意

前綴用於指示數據中的字節數。每個字節都可以用來表示 字符。因此,對於 VARCHAR(10) 來說,所需的前綴僅占用 1 個字節,但例如 VARCHAR(400) ,前綴將占用 2 個字節。

字符(4)

需要存儲

VARCHAR(4)

需要存儲

''

''

4字節

''

1字節

'ab'

'ab'

4字節

'ab'

3字節

'abcd'

'abcd'

4字節

'abcd'

5字節

'abcdefgh'

'abcd'

4字節

'abcd'

5字節

相關用法


注:本文由純淨天空篩選整理自Arthur Yanagisawa大神的英文原創作品 MySQL | CHAR and VARCHAR。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。