Py学习  »  DATABASE

MySQL的数据类型(2):字符串(文本)类型

纤指弄 • 3 年前 • 193 次点击  

3.2.4 字符串(文本)类型

MySQL支持的字符串类型主要有:CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT等6种,它们在外观上通常表现为单引号定界的若干个字符,不同的字符串类型允许的最多字符个数不一样、占用存储空间也不一样,详见下表:


说明:

1、上面几种字符串类型中,CHAR(M)为定长字符串类型,其余均为变长字符串类型。定长字符串类型和变长字符串类型区别主要有以下两点:

1). 定长字符串类型CHAR(M)的数据不管其中字符数有没有达到它允许的M个字符都要占用M个字符的空间;变长字符串类型的数据,其所需存储空间主要取决于该串中实际包含的字符数(此字符数在上表中用L来表示),再附加一个额外的结束字符占用字节数。

2). 定长字符串类型CHAR(M)中保存字符超过其允许的M个时会对所保存的字符串进行截短处理,而不足M个时会用空格进行补足;变长的VARCHAR(M)中保存字符超过其允许的M个时同样会对所保存的字符串进行截短处理,而不足M个时则不会用空格进行补足。

2、从上表中我们还可看出:CHAR(M)允许的字符数少于VARCHAR(M)允许的字符数,TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT允许的字符数也是逐渐增多的,并且在使用字符集相同时CHAR(M)和TINYTEXT允许的字符数、VARCHAR(M)和TEXT允许的字符数对应相等。

实际选用时,在满足使用要求(允许的最多字符数)的前提下,我们应尽量使用“短”的数据类型,以减少存储空间的占用、提高查询运算的效率。一般优先选用CHAR(M)、VARCHAR(M),需要保存更多的字符时,再考虑选用MEDIUMTEXT、LONGTEXT等。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/105686
 
193 次点击