免责声明:我是很新的SQL和数据库一般


我需要创建一个最大的文本数据的32个字符将存储的字段。难道“VARCHAR(32)”的意思是,我有正好32 作为我的数据字符?我是否需要保留一个额外的字符空终止?

我进行一个简单的测试,似乎这是一个WYSIWYG缓冲器。不过,我想从人具体的答案究竟是谁知道他们在做什么。


我有一个C [++]的背景,所以这个问题是在我的头抬起警钟。

有帮助吗?

解决方案

是的,你有32个字符,在您的处置。 SQL不涉及自己与NUL结尾的字符串像一些编程语言做的。

其他提示

您VARCHAR规格大小是数据的最大大小,因此,在这种情况下,32个字符。然而,VARCHAR处理是动态字段,如此使用的实际物理存储仅是数据的大小,加上一个或两个字节。

如果你把一个10个字符的字符串转换成VARCHAR(32),物理存储将是11或12个字节(该手册将告诉你确切的公式)。

然而,当MySQL是处理的结果集(即,后一个SELECT),32个字节将被在存储器分配给该字段的每个记录。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top