sqlserver数据库varchar(40)能存放多少汉字?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver数据库varchar(40)能存放多少汉字?相关的知识,希望对你有一定的参考价值。
sqlserver数据库varchar(40)能存放20个汉字。
sqlserver数据库中,英文字符需占用一个字节存储,汉字和其他非英文字符,需占用两个字节存储。向一个长度为40个字符的varchar型字段中输入汉字,最多可输入20个汉字。当从这个字段中取出数据时,数据其长度为20个汉字,40个字符。
扩展资料:
VARCHAR(M)比CHAR更加的灵活,同样用于表示字符数据,但是VARCHAR可以保存可变长度的字符串。其中M代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。
使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段时,不需要为剪掉数据中多余的空格而操心。它可以比CHAR型字段占用更少的内存和硬盘空间。当数据库很大时,这种内存和磁盘空间的节省会变得非常重要。
参考资料来源:
百度百科——varchar
百度百科——字长
参考技术A 数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则需要两个字节存储,如果英文与汉字同时存在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码。Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。
而前缀n就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Unicode字符集。
基于以上两点来看看字段容量
char,varchar 最多8000个英文,4000个汉字
nchar,nvarchar 可存储4000个字符,无论英文还是汉字.追问
如果放汉字,是不是能放20个???
追答是的。
本回答被提问者和网友采纳SQLSERVER中nvarchar和varchar类型的区别是啥?
参考技术A 1.varchar:非unicode
的字符数据
nvarchar:
unicode
数据
2.
varchar(n):
长度为
n
个字节的可变长度且非
unicode
的字符数据。n
必须是一个介于
1
和
8,000
之间的数值。存储大小为输入数据的字节的实际长度,而不是
n
个字节。所输入的数据字符长度可以为零。varchar
在
sql-92
中的同义词为
char
varying
或
character
varying。
nvarchar(n):
含
n
个字符的可变长度
unicode
字符数据。n
的值必须介于
1
与
4,000
之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar
在
sql-92
中的同义词为
national
char
varying
和
national
character
varying。
3.
一个汉字占varchar(2),只占nvarchar(1),而字母只占varchar(1),那么在数据库字段求长度的时候,用varchar你就不一定知道它确切的知道它到底有几个字,如果用nvarchar,那么汉字也是nvarchar(1),字母也是nvarchar(1),那么已经很明显了.
4.
在性能上varchar的检索快于nvarchar
另外varchar与char归纳几点区别如下
varchar
的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"
而char
不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian
"(qian后共有96个空格,就是把它填满为100个字节)。 参考技术B varchar(n):变长型字符数据类型,存储最长长度为8,000
个字符
nvarchar(n):可变长度
Unicode
数据,其最大长度为
4,000
字符.字节的存储大小是所输入字符个数的两倍,就是说它是双字节来存储数据的。如果存储数据如果存在单字节时,它也是以双字节来占用存储空间的。
varchar一般适用于英文和数字。
以上是关于sqlserver数据库varchar(40)能存放多少汉字?的主要内容,如果未能解决你的问题,请参考以下文章