2011-05-13 342 views
3

我过去没有使用过多的CHAR,因为我似乎太多地使用VARCHAR;我试图从最新的&中适当地使用CHAR,这是因为当我知道您在某个列中的数据长度相同时(或者用空格填充),您可以使用它。你可以将CHAR设置为NULL还是空字符串?

因为所有的数据应该是相同的长度我想知道可以一个CHAR字段为NULL或空字符串?对于那些特定领域在其他领域没有价值的情况。

回答

5

您的问题的答案是肯定的。

是的,CHAR类型可以是NULLable。我相信每一列的类型都可以允许NULL。

是的,CHAR类型可以是空字符串。数据库不会看到任何与任何其他字符串不同的空字符串。但我不会建议使用空字符串,因为在几乎所有情况下,空字符串(缺少任何字符)都试图表示缺少数据,这就是NULL的作用。

如果您想知道身边的CHAR VARCHAR与MySQL中的具体区别的更多具体细节...其他

MySQL 5.0 Reference - The CHAR and VARCHAR Types

+3

一件好事了解CHAR VS VARCHAR ......“请注意,如果整个记录的大小是固定的,那么使用CHAR只会加快你的访问速度,也就是说,如果你使用任何可变大小的对象,你也可以使它们全部变为可变大小。还包含一个VARCHAR。“ - 朱利安莫里森(从文档中的评论意见链接到答案) – 2011-05-13 19:42:03

+0

谢谢你。有趣的是,如果你在表中有其他的VARCHARS,它没有什么区别。 – Brett 2011-05-13 19:58:48

+0

老实说,我一直都知道CHAR,但在所有情况下都使用VARCHAR。我从来没有遇到性能或空间问题,而这可能是通过使用CHAR来解决的。如果你问我,保持简单并坚持使用VARCHAR。 – 2011-05-13 20:23:11

2

是的,可以使用NULL和空字符串。数据并不是与列中的长度相同,正如您所指出的那样,任何更小的值都只填充空格以填充列。

相关问题