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

问题描述 投票:4回答:2

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

limit
2个回答
0
投票

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


0
投票

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

例如:

  • CHAR(30)在MySQL中总是会占用30个字符,这样MySQL就可以加快访问速度,因为它能够在不解析任何内容的情况下预测值的长度。
  • 当严格模式打开时,VARCHAR(30)将在MySQL中将任何冗长的字符串修剪为30个字符,否则您可能会使用更长的字符串并且它们将被完全存储;
  • 在SQLite中,您可以将字符串存储在任何类型的列中,忽略该类型。

之所以在这些数据库引擎中支持SQL的许多功能,尽管它们未被利用或以不同方式使用,是为了保持对SQL模式的遵从性。

© www.soinside.com 2019 - 2024. All rights reserved.