[我] SQL VARCHAR大小和空终止
-
16-09-2019 - |
题
免责声明:我是很新的SQL和数据库一般
我需要创建一个最大的文本数据的32个字符将存储的字段。难道“VARCHAR(32)
”的意思是,我有正好32 作为我的数据字符?我是否需要保留一个额外的字符空终止?
我进行一个简单的测试,似乎这是一个WYSIWYG缓冲器。不过,我想从人具体的答案究竟是谁知道他们在做什么。
我有一个C [++]的背景,所以这个问题是在我的头抬起警钟。
解决方案
是的,你有32个字符,在您的处置。 SQL不涉及自己与NUL结尾的字符串像一些编程语言做的。
其他提示
您VARCHAR规格大小是数据的最大大小,因此,在这种情况下,32个字符。然而,VARCHAR处理是动态字段,如此使用的实际物理存储仅是数据的大小,加上一个或两个字节。
如果你把一个10个字符的字符串转换成VARCHAR(32),物理存储将是11或12个字节(该手册将告诉你确切的公式)。
然而,当MySQL是处理的结果集(即,后一个SELECT),32个字节将被在存储器分配给该字段的每个记录。
不隶属于 StackOverflow