《Mysql入門mysql字段類型char與varchar區別》要點:
本文介紹了Mysql入門mysql字段類型char與varchar區別,希望對您有用。如果有疑問,可以聯系我們。
MYSQL入門一,char和varchar類型
char和varchar類型類似,但它們保存和檢索的方式不同.它們的最大長度和是否尾部空格被保留等方面也不同.在存儲或檢索過程中不進行大小寫轉換.
char和varchar類型聲明的長度表示你想要保存的最大字符數.例如,char(30)可以占用30個字符.
char列的長度固定為創建表時聲明的長度.長度可以為從0到255的任何值.當保存char值時,在它們的右邊填充空格以達到指定的長度.當檢索到char值時,尾部的空格被刪除掉.在存儲或檢索過程中不進行大小寫轉換.
MYSQL入門varchar列中的值為可變長字符串.長度可以指定為0到65,535之間的值.(varchar的最大有效長度由最大行大小和使用的字符集確定.整體最大長度是65,532字節).
同char對比,varchar值保存時只保存需要的字符數,另加一個字節來記錄長度(如果列聲明的長度超過255,則使用兩個字節).
varchar值保存時不進行填充.當值保存和檢索時尾部的空格仍保留,符合標準sql.
MYSQL入門如果分配給char或varchar列的值超過列的最大長度,則對值進行裁剪以使其適合.如果被裁掉的字符不是空格,則會產生一條警告.如果裁剪非空格字符,則會造成錯誤(而不是警告)并通過使用嚴格sql模式禁用值的插入.參見5.3.2節,“sql服務器模式”.
MYSQL入門下表顯示了將各種字符串值保存到char(4)和varchar(4)列后的結果,說明了char和varchar之間的差別:
MYSQL入門請注意上表中最后一行的值只適用不使用嚴格模式時;如果mysql運行在嚴格模式,超過列長度不的值不保存,并且會出現錯誤.
從char(4)和varchar(4)列檢索的值并不總是相同,因為檢索時從char列刪除了尾部的空格.通過下面的例子說明該差別:
?
MYSQL入門根據分配給列的字符集校對規則對char和varchar列中的值進行排序和比較.
請注意所有mysql校對規則屬于padspace類.這說明在mysql中的所有char和varchar值比較時不需要考慮任何尾部空格.例如:
?
MYSQL入門請注意所有mysql版本均如此,并且它不受sql服務器模式的影響.
對于尾部填充字符被裁剪掉或比較時將它們忽視掉的情形,如果列的索引需要唯一的值,在列內插入一個只是填充字符數不同的值將會造成復制鍵值錯誤.
char byte是char binary的別名.這是為了保證兼容性.
MYSQL入門ascii屬性為char列分配latin1字符集.unicode屬性分配ucs2字符集.
MYSQL入門以上詳細介紹了mysql數據庫中字段類型char和varchar類型的區別,希望有助于大家掌握char和varchar類型的用法.
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/6200.html