- 企業官網怎麼(me)就(jiù)成(chéng)了企業的擺設? (62203)
- 企業網站建設最常見誤區分析 (60391)
- 關于網站關鍵詞選擇的一些技巧 (60234)
- 論網站頁面(miàn)靜态化和僞靜态的區别 (58287)
- 熱烈祝賀香港保險網制作完成(chéng)并交付上線 (57765)
MySQL的VARCHAR類型的變化與詳解
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。