如何解决SQL VARCHAR长度
我阅读了很多有关该主题的文章和问题,但是他们所做的只是让我更加困惑。
我试图了解VARCHAR可以容纳的最长字符串以及如何定义它。
在某些地方,它说可以创建最大长度为255(即VARCHAR(255))的VARCHAR-我不知道这是否表示255个字节或字符。
在其他地方,它说VARCHAR最多可以容纳8000个字节-然后取决于语言(如果每个字符是1个字节(例如拉丁语或更多),它决定了最长字符串的长度)。
简单来说,VARCHAR(n)中的n代表什么,n的范围是什么? 是字节吗?它是一个数字吗?在0-255之间?在0-8000之间?
如何保存很长的文本?它会分成多列吗?
解决方法
VARCHAR将字符串存储在每个符号1个字节中(与nvarchar相反,每个字符可以使用2个或更多字节)。您可以阅读详细信息here.
一个常见的误解是认为CHAR(n)和VARCHAR(n),n定义了字符数。但是在CHAR(n)和VARCHAR(n)中,n定义了以字节为单位的字符串长度(0-8,000)。 n永远不会定义可以存储的字符数。这类似于NCHAR(n)和NVARCHAR(n)的定义。产生误解的原因是,当使用单字节编码时,CHAR和VARCHAR的存储大小为n个字节,字符数也为n。但是,对于UTF-8等多字节编码,较高的Unicode范围(128-1,114,111)导致一个字符使用两个或更多字节。例如,在定义为CHAR(10)的列中,数据库引擎可以存储使用单字节编码(Unicode范围0-127)的10个字符,但是在使用多字节编码(Unicode范围128-Unicode的情况下,少于10个字符) 1,111)。有关Unicode存储和字符范围的更多信息,请参见UTF-8和UTF-16之间的存储差异。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。