char:固定长度,例如:char(6),你输入的字符小于6时,它会在后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。
存储字符:ANSI
数字英文存储:最多能存储8000个。
汉字存储:4000个汉字
-----------------------------分割---------------------------
varchar(n):可变长度,(n为某一整数,不同数据库,最大长度n不同)
存储字符:ANSI
n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。
数字英文存储:最多能存储8000个。
汉字存储:4000个汉字
-----------------------------分割-----------------------------
nvarchar:可变长度,
存储字符:Unicode
Unicode所有的字符(汉字和英文)都用两个字节表示。
数字英文存储:最多能存储4000个。
汉字存储:4000个汉字
一般来说如果含有中文字符,用nvarchar,如果纯英文和数字,用char/varchar。
数据库char,varchar,nchar,nvarchar类型区别为:长度不同、字节不同、空格不同。
一、长度不同
1、char类型:char类型的长度固定,占用更多的存储空间。
2、varchar类型:varchar类型的长度不固定,占用更少的存储空间。
3、nchar类型:nchar类型的长度固定,占用更多的存储空间。
4、nvarchar类型:nvarchar类型的长度不固定,占用更少的存储空间。
二、字节不同
1、char类型:char类型所有的字符使用一个字节表示。
2、varchar类型:varchar类型所有的字符使用一个字节表示。
3、nchar类型:nchar类型所有的字符使用两个字节表示。
4、nvarchar类型:nvarchar类型所有的字符使用两个字节表示。
三、空格不同
1、char类型:char类型保存的时候会去掉字符串末尾的空格。
2、varchar类型:varchar类型保存的时候不会去掉字符串末尾的空格。
3、nchar类型:nchar类型保存的时候会去掉字符串末尾的空格。
4、nvarchar类型:nvarchar类型保存的时候不会去掉字符串末尾的空格。
1、 CHAR 的长度是不可变的,而 VARCHAR 的长度是可变的,也就是说,定义一个CHAR[10]和VARCHAR[10],如果存进去的是‘ABCD’, 那么CHAR所占的长度依然为10,除了字符‘ABCD’外,后面跟六个空格,而VARCHAR的长度变为4了,取数据的时候,CHAR类型的要用trim()去掉多余的空格,而VARCHAR类型是不需要的。
2、 CHAR 的存取速度要比 VARCHAR 快得多,因为其长度固定,方便程序的存储与查找;但是CHAR为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可以说是以空间换取时间效率,而VARCHAR则是以空间效率为首位的。
3、 CHAR 的存储方式是,一个英文字符(ASCII)占用1个字节,一个汉字占用两个字节;而 VARCHAR 的存储方式是,一个英文字符占用2个字节,一个汉字也占用2个字节。
4、两者的存储数据都是非unicode的字符数据。
以上就是关于数据库中varchar、nvarchar、char存储字符、数字、汉字的容量区别全部的内容,包括:数据库中varchar、nvarchar、char存储字符、数字、汉字的容量区别、数据库char,varchar,nchar,nvarchar类型分别有什么区别。、数据库基础——CHAR与VARCHAR的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)