我一直在使用MySQL,并且非常模糊地理解VARCHAR(This Number Here)
部分。该数字是列可以存储的字符总数吗?
例如,假设我有VARCHAR(400) latin1_general_ci
,400表示字符串是400字节限制,还是字符串可以有400个字符?我可以在该列变量中存储多大的字符串?
答案 0 :(得分:1)
这是字段的最大字符串长度(请参阅here)(非字节):
声明
CHAR
和VARCHAR
类型的长度表示您要存储的最大字符数。例如,CHAR(30)
最多可包含30个字符。
无论编码如何,都将允许30个字符。
VARCHAR
列中的值是可变长度字符串。长度可以指定为0到65,535之间的值。VARCHAR
的有效最大长度取决于最大行大小(65,535字节,在所有列之间共享)和使用的字符集。与
CHAR
相反,VARCHAR
值存储为1字节或2字节长度前缀加数据。长度前缀表示值中的字节数。如果值不超过255个字节,则列使用一个长度字节;如果值可能需要超过255个字节,则列使用两个长度字节。