MySQL的VARCHAR類型的變化與詳解

Time:2021/07/12 11:00:31   Click:

MySQL的字段類型VARCHAR應該是我們最常用的數據類型,但由于MySQL不斷升級與變化,導緻Varchar也跟著(zhe)變化。變化也許讓我們對(duì)VarChar這(zhè)個字段産生了很多誤解,但VarChar越來越好(hǎo)用是一個不争的事(shì)實。隻要我們能(néng)夠完全的理解,下面(miàn)簡介一下MySQL的Varchar。


一、Varchar類型的變化

MySQL4.1版本(以前版本)

1、varchar類型在4.1以下的版本中的最大長(cháng)度限制爲255,其數據範圍可以是0~255或1~255。

2、varchar: 存儲漢字是2個字節,其他字符存爲1個字節 ,varchar适合輸入英文和數字。

3、,nvarchar(存儲的是Unicode數據類型的字符)不管是一個字符還(hái)是一個漢字,都(dōu)存爲2個字節用作中文或者其他語言輸入,這(zhè)樣(yàng)不容易亂碼。

4、varchar(20),指的是20字節,如果存放UTF8漢字時(shí),隻能(néng)存6個(每個漢字3字節)。


MySQL5.0版本(以後(hòu)版本)

1、varchar數據類型的長(cháng)度支持到了65535,    也就(jiù)是說(shuō)可以存放65532個字節的數據,起(qǐ)始位和結束位占去了3個字 節。

2、varchar(20),指的是20字符,無論存放的是數字、字母還(hái)是UTF8漢字(每個漢字3字節)


二、 存儲限制

varchar 字段是將(jiāng)實際内容單獨存儲在聚簇索引之外,内容開(kāi)頭用1到2個字節表示實際長(cháng)度(長(cháng)度超過(guò)255時(shí)需要2個字節),因此最大長(cháng)度不能(néng)超過(guò)65535。


三、 編碼長(cháng)度限制

字符類型若爲gbk,每個字符最多占2個字節,最大長(cháng)度不能(néng)超過(guò)32766;字符類型若爲utf8,每個字符最多占3個字節,最大長(cháng)度不能(néng)超過(guò)21845。若定義的時(shí)候超過(guò)上述限制,則varchar字段會(huì)被(bèi)強行轉爲text類型,并産生warning。


四、 行長(cháng)度限制

導緻實際應用中varchar長(cháng)度限制的是一個行定義的長(cháng)度。 MySQL要求一個行的定義長(cháng)度不能(néng)超過(guò)65535。若定義的表長(cháng)度超過(guò)這(zhè)個值,則提示

ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs。


TOP

錦江區聚格樂享網絡工作室@2012 版權所有
蜀ICP備12016524号-2

立即咨詢
成(chéng)都(dōu)網站建設,成(chéng)都(dōu)做網站,錦江區聚格樂享網絡工作室
40f13d50b73e104f832ed1b719ae6935