char
    char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。
   nvarchar(n)
    包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。       
varchar[(n)]  
    长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。
1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。 

 2、VARCHAR。存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。  
从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。  
3、TEXT。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。  
4、NCHAR、NVARCHAR、NTEXT。这三种从名字上看比前面三种多了个“N”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。  
所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar。

最新文章

  1. [Java入门笔记] Java语言基础(四):流程控制
  2. MongoDB学习笔记(1):MongoDB简介
  3. 使用Spring的Validator接口进行校验
  4. How Tomcat works — 五、tomcat启动(4)
  5. WCF开发框架之插件化应用模式升级
  6. Convert.ChangeType转换泛型的性能损失测试
  7. 【python】 入门 搭建环境
  8. 《C++ primer》--第三章
  9. touch——移动端
  10. maven中tomcat7-maven-plugin插件的使用
  11. 子元素div高度不确定时父div高度如何自适应
  12. JSP简介
  13. 使用Java7提供Fork/Join框架
  14. FS SIP呼叫的消息线程和状态机线程
  15. 测试数据库sql声明效率
  16. Saltstack 服务器基本安装
  17. vuex的一些学习
  18. 如何在EXCEL中找出第一列中不包含的第二列数据
  19. sass重构响应式unofficial‘s博客轻松适应移动端
  20. day82

热门文章

  1. ArcSDE 10.2建立SDE服务
  2. 双网卡绑定-bond0
  3. 解决黑苹果与windows时区不一致
  4. jquery禁用右键、文本选择功能、复制按键的实现
  5. PP常见数据表
  6. android编程之ExpandableListView使用总结
  7. Apache的Order Allow Deny心得
  8. android百度地图开发之自动定位所在位置与固定位置进行驾车,步行,公交路线搜索
  9. [MFC]MFC中OnDraw与OnPaint的区别
  10. unity3d快捷键大全