数据库的varchar和nvarchar的区别
电脑版发表于:2019/8/16 12:34
搞了一个上午,自己测试看懂的一点点小东西,现在记录下来....
数据库的varchar和nvarchar的区别
首先内存上:1--8000 1--4000
中文以及韩文日文等一个字符为两个字节,英文以及数字等一个字符为一个字节
varchar内存的解析:是所输入的数据的实际长度(字节数)
例如:
create table UserInfo ( userID int not null primary key identity(1,1), userName varchar(5) ) insert into UserInfo values('请问');--4个字节 insert into UserInfo values('请问e');--5个字节 insert into UserInfo values('wesdg');--5个字节
nvarchar:是varchar所输入的字节的两倍,相当于varchar(2)只能存‘我’,而nvarchar(2)可以存放‘我是’
意思就是把文字当作长度来处理,虚拟的直接把两个字节的字节变成一个字节计算
直接上代码
create table UserInfo ( userID int not null primary key identity(1,1), userName nvarchar(5) ) insert into UserInfo values('请问撒旦个');--10个字节 insert into UserInfo values('abcde');--5个字节
所以为了节省空间一般如果是存放中文,建议使用nvarchar比较提高效率,给数据库减少内存空间
另外,char和nchar也是与上面的varchar和nvarchar一模一样,但是该类型不会收回剩余的空间,对于的内存空间会以空格字符串的形式填充
char:
nchar:
所以建议不是很多的字符串可以考虑用char,nchar,例如性别等。