varchar(n)中的n代表最多能存储多少个字节,超过会报错
比如varchar(10)代表最多能存储10个字节,1个汉字要占2个字节,1个英文字母是一个字节。因此varchar(10)最多能存10个英文字母或者5个汉字。
create table test1(id int primary key, vname varchar(10), nvname nvarchar(10))
--会报错,因为'中国中国人a'有11个字节,5 * 2 + 1 = 11
insert into test1(id, vname, nvname) values(1, '中国中国人a', 'a')
nvarchar(n)中的n代表最多能存储多少个字符(不分汉字和英文字母),一个汉字和一个英文字母一样,都只算一个字符。一个字符是2个字节存储。
比如nvarchar(10)最多能存储10个汉字或者10个英文字母,占据20个字节的空间
create table test1(id int primary key, vname varchar(10), nvname nvarchar(10))
--不会报错,因为nvarchar(10)能存10个字符(汉字和英文一样,都只算一个字符)
insert into test1(id, vname, nvname) values(2, 'a', '中国中国中国中国中国')