我的问题:在SQL中;我只使用SQL所以我只询问它,数据长度是什么意思?
如果数据类型nvarchar的列设置为长度50(它是我在WebMatrix中创建的每个新列的默认值),这是否意味着第51个字符会导致错误?
答案 0 :(得分:2)
字符串通常使用固定长度格式(char()
或nchar()
)或可变长度格式(varchar()
或nvarchar()
)存储在SQL数据库中。
char()
和varchar()
使用一个字节来存储每个字符。 “n”前缀允许存储unicode字符(2字节宽)。在所有情况下,字段的最大长度在括号之间。 这是以字符为单位测量的,而不是字节。因此,varchar(2)
和nvarchar(2)
最多可以存储两个字符。后者占用的空间是原始的两倍(对于字符存储,不计算长度)。
这是字段的最大长度,因此可以存储任何长度。如果您尝试存储其他字符,则行为可能取决于数据库和操作。您可能会得到截断值。或者你可能会收到错误。
空格计为字符,就像其他一切一样。
如果您自己编写SQL,则不使用默认长度。始终使用具有明确长度的这些构造,否则您可能会意外且难以在代码中找到错误。
通常,特定数据库的文档可以很好地解释这些概念。我建议你从那里开始解释。