char、varchar和nvarchar的区别

前言

   今天验项目师傅问道char、varchar、nvarchar三者有什么区别,说实话我之前对这个问题去百度过,时间太久了也没留意就忘掉了,知识还是要总结的,不然全部都得还回去。既然说到这个问题,就好好来说说它们三个之间的区别吧!

char

   之前在敲学生或者机房的时候,从数据库里面那出来的值后面会有好多空格,我们需要用Trim()函数来消除没用的空格,真正造成这个情况的原因是什么呢?

  • char是定长的,这个怎么说呢,比如你用char(10),当你输入6个字符时,它会用英文的空格给补全。当你输入的15个字符时,它会自动截取前10个字符。取值范围1-8000
  • 优点:适合存储定长的数据,存储效率快
  • 缺点:使用不当会造成存储空间的浪费

varchar

  • varchar可变长度的,存储的大小为输入数据的字节的实际长度,所输入的数据字符长度可以为0。取值范围0-8000
  • 优点:适合存储不固定长度的数据,它可以识别出字节用于保存实际使用多大的长度。合理的利用的存储空间。
  • 缺点:存储效率低

nvarchar

  • 我们都知道英文字母占一个字节,汉字占两个字节,如果我们的数据中又有英文,又有汉字,这时nvarchar就该上场了,nvarchar无论是英文还是汉字都是用两个字节来表示。
  • 优点:适合存储既有英文和汉字的数据
  • 缺点:它最多能存储4000个字符,对英文存储上有些损失

总结

   这样一分析,这三个类型很清晰的摆在眼前,这样在设计数据库时就可以巧妙的运用了。

猜你喜欢

转载自blog.csdn.net/ywq1016243402/article/details/83310366