MySQL基礎教程:字符串類型
最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!
我要咨詢MySQL基礎教程:字符串類型,MySQL提供的字符串類型包括CHAR、VARCHAR、BLOB、TEXT、ENUM和SET。對這些類型作一個簡要的敘述如下:
CHAR(M) [BINARY]
一個定長字符串,當存儲時,總是是用空格填滿右邊到指定的長度。在MySQL3.23以前的版本,M的范圍是1 ~ 255個字符,在MySQL3.23版中,M值的范圍是0 ~ 255個字符.當值被檢索時,空格尾部被刪除。CHAR類型在排序和比較時不區分大小寫,除非給出BINARY關鍵詞。NATIONAL CHAR(短形式NCHAR)是ANSI SQL的方式來定義CHAR列應該使用缺省字符集。這是MySQL的缺省。CHAR是CHARACTER的一個縮寫。 CHAR(0) 可以用于在希望定義一個列,但由于尚不知道其長度,所以不想給其分配空間的情況下,CHAR(0) 列作為占位符很有用處。以后可以用 ALTER TABLE 來加寬這個列。
存儲需求:M字節
[NATIONAL] VARCHAR(M) [BINARY]
一個變長字符串。注意:當值被存儲時,尾部的空格被刪除(這不同于ANSI SQL規范)。M的范圍是1 ~ 255個字符。 VARCHAR類型在排序和比較時不區分大小寫,除非給出BINARY關鍵詞。VARCHAR是CHARACTER VARYING一個縮寫。
存儲需求:L+1字節(L是存儲實際值需要的長度,1為存儲該值實際長度)
TINYBLOB、TINYTEXT
一個BLOB或TEXT列,最大長度為255(2^8-1)個字符。
存儲需求:L+1字節
BLOB、TEXT
一個BLOB或TEXT列,最大長度為65535(2^16-1)個字符。
存儲需求:L+2字節
MEDIUMBLOB、MEDIUMTEXT
一個BLOB或TEXT列,最大長度為16777215(2^24-1)個字符。
存儲需求:L+3字節
LONGBLOB、LONGTEXT
一個BLOB或TEXT列,最大長度為4294967295(2^32-1)個字符。
存儲需求:L+4字節
ENUM('value1','value2',...)
枚舉。一個僅有一個值的字符串對象,這個值式選自與值列表'value1'、'value2', ...,或NULL。一個ENUM最多能有65535不同的值。
存儲需求:1或2字節
SET('value1','value2',...)
一個集合。能有零個或多個值的一個字符串對象,其中每一個必須從值列表'value1', 'value2', ...選出。一個SET最多能有64個成員。
存儲需求:1、2、3、4或8字節
在某種意義上,串實際是一種非!巴ㄓ谩鳖愋,因為可用它們來表示任意值,不僅僅是字符串。例如,可用串類型來存儲二進制數據,如圖像、視頻或音頻。
對于所有串類型,都要剪裁過長的值使其適合于相應的串類型。但是串類型的取值范圍很不同,有的取值范圍很小,有的則很大。取值大的串類型能夠存儲近 4GB 的數據。因此,應該使串足夠長以免您的信息被切斷(由于受客戶機/服務器通信協議的最大塊尺寸限制,列值的最大限額為 24MB)。
另外,對于串類型,在比較時是忽略大小寫的,使用BINARY關鍵字,則比較時采用ASCII碼的方式,即不再忽略大小寫?梢允褂肂INARY的串類型為CHAR和VARCHAR。