MySQL數(shù)據(jù)庫(kù)中的字符串如何正確應(yīng)用?
此文章主要介紹的是MySQL數(shù)據(jù)庫(kù)的字符(串)的實(shí)際操作步驟,我們大家都知道MySQL數(shù)據(jù)庫(kù)的字符(串)在實(shí)際操作是經(jīng)常被用到了,所以你對(duì)其有更多的了解還是好的,希望會(huì)給你帶來(lái)一些幫助在此方面。
MySQL數(shù)據(jù)庫(kù)的字符(串)類不要以為字符類型就是CHAR,CHAR和VARCHAR的區(qū)別在于CHAR是固定長(zhǎng)度,只要你定義一個(gè)字段是CHAR(10),那么不論你存儲(chǔ)的數(shù)據(jù)是否達(dá)到了10個(gè)字節(jié),它都要占去10個(gè)字節(jié)的空間;而VARCHAR則是可變長(zhǎng)度的,如果一個(gè)字段可能的值是不固定長(zhǎng)度的,我們只知道它不可能超過(guò)10個(gè)字符,把它定義為VARCHAR(10)是最合算的,VARCHAR類型的占用空間是它的值的實(shí)際長(zhǎng)度+1。
為什么要+1呢?這一個(gè)字節(jié)用于保存實(shí)際使用了多大的長(zhǎng)度。從這個(gè)+1中也應(yīng)該看到,如果一個(gè)字段,它的可能值最長(zhǎng)是10個(gè)字符,而多數(shù)情況下也就是用到了10個(gè)字符時(shí),用VARCHAR就不合算了:因?yàn)樵诙鄶?shù)情況下,實(shí)際占用空間是11個(gè)字節(jié),比用CHAR(10)還多占用一個(gè)字節(jié)。
舉個(gè)例子,就是一個(gè)存儲(chǔ)股票名稱和代碼的表,股票名稱絕大部分是四個(gè)字的,即8個(gè)字節(jié);股票代碼,上海的是六位數(shù)字,深圳的是四位數(shù)字。這些都是固定長(zhǎng)度的,股票名稱當(dāng)然要用CHAR(8);股票代碼雖然是不固定長(zhǎng)度,但如果使用VARCHAR(6),一個(gè)深圳的股票代碼實(shí)際占用空間是5個(gè)字節(jié),而一個(gè)上海的股票代碼要占用7個(gè)字節(jié)!考慮到上海的股票數(shù)目比深圳的多,那么用VARCHAR(6)就不如CHAR(6)合算了。
雖然一個(gè)CHAR或VARCHAR的最大長(zhǎng)度可以到255,我認(rèn)為大于20的CHAR是幾乎用不到的――很少有大于20個(gè)字節(jié)長(zhǎng)度的固定長(zhǎng)度的東東吧?不是固定長(zhǎng)度的就用VARCHAR。大于100的VARCHAR也是幾乎用不到的――比這更大的用TEXT就好了。
TINYTEXT,最大長(zhǎng)度為255,占用空間也是實(shí)際長(zhǎng)度+1;TEXT,最大長(zhǎng)度65535,占用空間是實(shí)際長(zhǎng)度+2;MEDIUMTEXT,最大長(zhǎng)度16777215,占用空間是實(shí)際長(zhǎng)度+3;LONGTEXT,最大長(zhǎng)度4294967295,占用空間是實(shí)際長(zhǎng)度+4。為什么+1、+2、+3、+4?你要是還不知道就該打PP了。這些可以用在論壇啊、新聞啊,什么的,用來(lái)保存文章的正文。根據(jù)實(shí)際情況的不同,選擇從小到大的不同類型。
以上的相關(guān)內(nèi)容就是對(duì)MySQL數(shù)據(jù)庫(kù)的字符(串)類型的介紹,望你能有所收獲。
上述的相關(guān)內(nèi)容就是對(duì)MySQL數(shù)據(jù)庫(kù)的字符(串)類型的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。
【編輯推薦】
- C++庫(kù)連接來(lái)對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行正確連接
- MySQL查詢優(yōu)化系列之MySQL查詢優(yōu)化器
- MySQL數(shù)據(jù)庫(kù)在ArchLinux的安裝和啟動(dòng)匯總
- MySQL 5.0在windows安裝的詳細(xì)介紹
- 正確安裝MySQL事務(wù)數(shù)據(jù)庫(kù)不得不看