前言
今天验项目师傅问道char、varchar、nvarchar三者有什么区别,说实话我之前对这个问题去百度过,时间太久了也没留意就忘掉了,知识还是要总结的,不然全部都得还回去。既然说到这个问题,就好好来说说它们三个之间的区别吧!
char
之前在敲学生或者机房的时候,从数据库里面那出来的值后面会有好多空格,我们需要用Trim()函数来消除没用的空格,真正造成这个情况的原因是什么呢?
- char是定长的,这个怎么说呢,比如你用char(10),当你输入6个字符时,它会用英文的空格给补全。当你输入的15个字符时,它会自动截取前10个字符。取值范围1-8000
- 优点:适合存储定长的数据,存储效率快
- 缺点:使用不当会造成存储空间的浪费
varchar
- varchar可变长度的,存储的大小为输入数据的字节的实际长度,所输入的数据字符长度可以为0。取值范围0-8000
- 优点:适合存储不固定长度的数据,它可以识别出字节用于保存实际使用多大的长度。合理的利用的存储空间。
- 缺点:存储效率低
nvarchar
- 我们都知道英文字母占一个字节,汉字占两个字节,如果我们的数据中又有英文,又有汉字,这时nvarchar就该上场了,nvarchar无论是英文还是汉字都是用两个字节来表示。
- 优点:适合存储既有英文和汉字的数据
- 缺点:它最多能存储4000个字符,对英文存储上有些损失
总结
这样一分析,这三个类型很清晰的摆在眼前,这样在设计数据库时就可以巧妙的运用了。