mysql中同一表中的所有char字段是否必须用char类型或varchar类型

来源:百度知道 编辑:UC知道 时间:2024/05/14 19:59:57
我在做库的时候参考一些著名程序的数据库
发现这些库中所有char有关的字段都统一用char类型或者varchar类型
有一些明明可以用char的定长字段也用varchar
是只为统一还是令有讲究呢?
如果在一个表中混用varchar和char是否可以?

应该没什么问题吧

其实你只要了解char和varchar的区别就行了 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。

mysql的表类型分为静态表,动态表和压缩表。压缩表为只读表,这里先不提。
行格式都是定长的表(比如字符串都是用char)是静态表,而只要有一个用了varchar,那就变成了动态表了。

所以你看到的著名程序中的表,用char的都用char,用varchar之后就都用varchar了(因为用了char,mysql也是会自动转成varchar,但是这并不会影响使用)。