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