为什么需要在表中指定列的长度

时间:2011-03-26 10:35:23

标签: limit

我一直想知道为什么我们应该将数据库表中的列长限制为某个限制,而不是默认值。 例如。我的表中有一个列short_name人员列的默认长度是255个字符,但我将其限制为100个字符。它会有什么不同。

2 个答案:

答案 0 :(得分:0)

字符串将被截断为最大长度(通常以字符为单位)。

答案 1 :(得分:0)

实际实现的方式取决于您使用的数据库引擎。

例如:

  • CHAR(30)将始终在MySQL中使用30个字符,这允许 MySQL加速访问,因为它能够预测值 没有解析任何东西的长度;
  • 当严格模式打开时,VARCHAR(30)会将MySQL中的任何冗长字符串修剪为30个字符,否则您可能会使用更长的字符串并且它们将被完全存储;
  • 在SQLite中,您可以将字符串存储在任何类型的列中,忽略类型。

这些数据库引擎支持SQL的许多功能,尽管它们没有被利用或以不同的方式使用,但是为了保持对SQL模式的合规性。