sqlserver中65535_sqlserver中 varchar 最大长度是多少?
MySQL 數(shù)據(jù)庫(kù)的varchar類型在4.1以下的版本中的最大長(zhǎng)度限制為255,其數(shù)據(jù)范圍可以是0~255或1~255(根據(jù)不同版本數(shù)據(jù)庫(kù)來(lái)定)。在 MySQL5.0以上的版本中,varchar數(shù)據(jù)類型的長(zhǎng)度支持到了65535,也就是說(shuō)可以存放65532個(gè)字節(jié)的數(shù)據(jù),起始位和結(jié)束位占去了3個(gè)字 節(jié),也就是說(shuō),在4.1或以下版本中需要使用固定的TEXT或BLOB格式存放的數(shù)據(jù)可以使用可變長(zhǎng)的varchar來(lái)存放,這樣就能有效的減少數(shù)據(jù)庫(kù)文件的大小。
VARCHAR值保存時(shí)只保存需要的字符數(shù),另加一個(gè)字節(jié)來(lái)記錄長(zhǎng)度(如果列聲明的長(zhǎng)度超過(guò)255,則使用兩個(gè)字節(jié))。VARCHAR值保存時(shí)不進(jìn)行填充。當(dāng)值保存和檢索時(shí)尾部的空格仍保留,符合標(biāo)準(zhǔn)SQL。VARCHAR類型的實(shí)際長(zhǎng)度是它的值的實(shí)際長(zhǎng)度+1
VARCHAR是變長(zhǎng)類型,對(duì)于其存儲(chǔ)需求取決于列值的實(shí)際長(zhǎng)度(在前面的表格中用L表示),而不是取決于類型的最大可能尺寸。例如,一個(gè)VARCHAR(10)列能保存最大長(zhǎng)度為10個(gè)字符的一個(gè)字符串,實(shí)際的存儲(chǔ)需要是字符串的長(zhǎng)度 ,加上1個(gè)字節(jié)以記錄字符串的長(zhǎng)度。對(duì)于字符串'abcd',L是4而存儲(chǔ)要求是5個(gè)字節(jié)。
Mysql5根據(jù)編碼不同,存儲(chǔ)大小也不同,具體有以下規(guī)則:
編碼長(zhǎng)度限制
字符類型若為gbk,每個(gè)字符最多占2個(gè)字節(jié),最大長(zhǎng)度不能超過(guò)32766;
字符類型若為utf8,每個(gè)字符最多占3個(gè)字節(jié),最大長(zhǎng)度不能超過(guò)21845。
若定義的時(shí)候超過(guò)上述限制,則varchar字段會(huì)被強(qiáng)行轉(zhuǎn)為text類型,并產(chǎn)生warning。
c) 行長(zhǎng)度限制
導(dǎo)致實(shí)際應(yīng)用中varchar長(zhǎng)度限制的是一個(gè)行定義的長(zhǎng)度。 MySQL要求一個(gè)行的定義長(zhǎng)度不能超過(guò)65535。若定義的表長(zhǎng)度超過(guò)這個(gè)值,則提示
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。
總之,mysql的vachar字段的類型雖然最大長(zhǎng)度是65535,但是并不是能存這么多數(shù)據(jù),最大可以到65533(不允許非空字段的時(shí)候),當(dāng)允許非空字段的時(shí)候只能到65532。
總結(jié)
以上是生活随笔為你收集整理的sqlserver中65535_sqlserver中 varchar 最大长度是多少?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 多帧点云数据拼接合并_多工作簿数据合并,
- 下一篇: 为什么vs数据库中文显示问号_第005期