0

我的问题:在 SQL 中;我只使用 SQL,所以我只问它,数据长度是什么意思?

如果将数据类型 nvarchar 的列设置为长度 50(它是我在 WebMatrix 中创建的每个新列的默认值),这是否意味着第 51 个字符会导致错误?

4

1 回答 1

2

字符串通常使用固定长度格式(char()nchar())或可变长度格式(varchar()nvarchar())存储在 SQL 数据库中。

char()varchar()使用一个字节来存储每个字符。“n”前缀允许存储 unicode 字符(2 字节宽)。在所有情况下,字段的最大长度都在括号之间。 这是以字符而不是字节为单位来衡量的。所以,varchar(2)并且nvarchar(2)都可以存储最多两个字符。后者占用的空间(用于字符存储,不计算长度)是原始空间的两倍。

这是字段的最大长度,因此可以存储达到该长度的任何内容。如果您尝试存储其他字符,则行为可能取决于数据库和操作。您可能会得到截断的值。或者你可能会得到一个错误。

空格算作字符,就像其他所有内容一样。

如果您自己编写 SQL,则不要使用默认长度。始终使用具有明确长度的这些构造,否则您可能会在代码中遇到意外且难以发现的错误。

一般来说,特定数据库的文档很好地解释了这些概念。我建议你从那里开始解释。

于 2013-08-20T14:12:06.403 回答