数据库中varchar、nvarchar、char存储字符、数字、汉字的容量区别

例如:nvarchar(10)、char(10)、varchar(10)分别存储数字、汉字、字符时的字节分配。

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。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-31

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。

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。

本回答被网友采纳
第2个回答  2014-03-09
楼上回答有部分错误.varchar,nvarchar,char都可以存储汉字,varchar是动态存储例如声明varchar(10) A 并向A列中插入'你好'那么此时A所占的空间应该是4字节,而char不同声明char(10) B 并向B列中插入'你好' 此时B所占的还是10字节nvarchar与char相同只是nvarchar使用的是Unicode编码,在效率上有所提升,char和nvarchar大多使用在位数固定的数据,列入手机号码使用char,而较长的身份证号码则使用nvarchar.最后补充一点:一个全角的英文字符或数字占两字节例如:'A','B','C','1','2','3'
第3个回答  2014-03-09
nvarchar(10)相当于可以存储字符串类型的数据 括号里面的是字符长度 一个字母占一个字符 汉字占两个!char存储字符类型的数据 varchar和nvarchar的区别是 nvarchar能存储汉字 varchar不行 通俗理解是这样 如果按书上解释 更复杂了 说不清楚 !
第4个回答  2014-03-09
noise说的很对,但是还要补充一点nvarchar(10)当你插入"123456" 这个时候长度是6.但是它规定的是必须是10个字节,所以会自动给你补充4个空格,而varchar(10)就不会补充空格.char和nchar 也如此