一、字符类型:char、nchar、varchar和nvarchar

1.定义:

char:    固定长度,存储ANSI字符,不足的补英文半角空格。

nchar:   固定长度,存储Unicode字符,不足的补英文半角空格

varchar:  可变长度,存储ANSI字符,根据数据长度自动变化。

nvarchar: 可变长度,存储Unicode字符,根据数据长度自动变化。

nvarchar(n) :包含 n个字符的可变长度 Unicode 字符数据。n 的值必须介于 1  与  4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。

varchar(n):长度为 n 个字节的可变长度且非 Unicode的字符数据。n 必须是一个介于   1 和 8,000之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。

注意:ANSI主要是以单字节来存储数据,一般适合英文。而我们常用的汉字需要用两个字节来存储,所以就要使用unicode的数据类型,不然读取出来的数据可能会乱码。

2.区别:

  • 从存储方式上,nvarchar是按字符存储的,而 varchar是按字节存储的;
  • 从存储量上考虑, varchar比较节省空间,因为存储大小为字节的实际长度,而 nvarchar是双字节存储;
  • 在使用上,如果存储内容都是英文字符而没有汉字等其他语言符号,建议使用varchar;含有汉字的使用nvarchar,因为  nvarchar是使用Unicode编码,即统一的字符编码标准,会减少乱码的出现几率;
  • 如果你做的项目可能涉及不同语言之间的转换,建议尽量使用nvarchar。

3.nvarchar优点:判断字符串的时候可以不需要考虑中英文两种字符的差别,可以避免程序中乱码的问题。缺点:存储英文字符会增大一倍的存储空间.但是在存储代价已经很低廉的情况下,优先考虑兼容性会给你带来更多好处的,效率没有varchar高。

4.字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。

5.tips:

如果可以确定存储的数据长度,而且不包中文的,可以选择char类型;

如果可以确定存储的数据长度,但可能包括中文,可以选择nchar类型;

如果不确定存储的数据长度,存储只有英文、数字的最好用varchar;

如果不确定存储的数据长度,也有可能有中文,可以选择nvarchar类型。

二、整型:int与bigint

int 普通大小的整数,带符号的范围是-2147483648到2147483647。

bigint 带符号的范围是-9223372036854775808到bai9223372036854775807。

由此可以看出,假如我要在数据库里存一个11位的手机号,用int是不可以的,存数据时会溢出。另外存手机号的话,最好的还是用char,为什么呢?因为手机号的本质是字符串而不是数字,它只是恰巧长得像数字而已;而且字符串可以通过LINK去匹配,查询很方便,同时字符串可以去匹配尾号或者首号。

三、金钱类型:decimal(6,0)

它的含义是:可储存的最大十进位数总数为6,小数位数为0,也就是说最后的金钱数会精确到整数,例如:元。

四、日期类型:datatime与smalldatatime

这两个都是表示日期类型的数据,但是又有些小小的不同:

数据类型 范围 精确度

datetime

1753 年 1 月 1 日到 9999 年 12 月 31 日

3.33 毫秒

smalldatetime

1900 年 1 月 1 日到 2079 年 6 月 6 日

1 分钟

机房合作--那些数据类型相关推荐

  1. 机房合作(一):我怎样做组长(敢于承担责任)

    导读:小组合作开始了,不怕死的我,揽下了组长的活儿.然后开始了我的漫漫长征路.不过,不怕猪一样的组长,咱有神一样的组员.机房合作到现在,真的感激组员的配合以及对我这个猪组长的指点.接下来,说说我这个阶 ...

  2. 【机房合作】——数风流人物,还看今朝

    机房收费系统合作版已经过去很长时间了,一直想着写篇合作,却总是觉得词穷,因为在合作中,相对于自己开发真的收获好多,总感觉言语不能表达,只能意会.不过,不管怎样,还是得给自己留下一点记录. 先介绍下我们 ...

  3. 让我们并肩作战—机房合作

    一.心里路程  机房合作这个项目是我们成长的必经之路,我们组在这次合作的路上走得还算顺利,在这次验收中,我得到了很大的收获,刚开始的时候,不知道怎么开始,还有点手足无措,后来慢慢摸索的时候才走上正轨, ...

  4. 【机房合作】机房收费系统合作版总结

    经历了为期一个半月的机房合作开发过程,自己的沟通表达,写作开发以及业务能力方面都有了很大程度的提升,在此来总结一下这个开发的过程. 一.前期准备的重要性 在我以前的认知里,写代码,做项目就是直接开干, ...

  5. 【机房合作】UML图之包图再学习

    在合作中对包图验收没有通过,对包图的理解不深刻,整幅图中,在包与包之间,只用了两种关系:实现和import.因此需要重新修改,可是修改起来比较费劲儿,于是查资料,跟霍亚静师傅和连江伟师傅交流,对包图有 ...

  6. 机房合作--gitee的使用

    前言 此码云非彼马云,码云是开源中国推出的基于 Git 的.免费的代码托管服务,功能非常强大. 1.gitee注册账号 这是gitee网址,可以直接到达.注册时是用邮箱注册,昵称最好是英文的,密码就不 ...

  7. 机房合作--驼峰命名法

    其实之前一直都是只听说过驼峰命名法,今天就详细的了解下驼峰命名法: 驼峰式命名法(Camel-Case)是电脑程序编写时的一套命名规则. 小驼峰法 变量一般用小驼峰法标识.驼峰法的意思是:除第一个单词 ...

  8. 【机房合作】策略+职责链在下机中的应用

    一.刚开始使用职责链模式来实现下机时计算消费金额. 1.父类:CountCashManagerBLL abstract class CountCashManagerBLL{protected stri ...

  9. 【机房合作】Datagridview汉字表头的设置

    Datagridview绑定数据源的方式,师哥的博客写的很清晰.详情请戳:[http://blog.csdn.net/u010164936/article/details/38583563] 可是我在 ...

最新文章

  1. mongodb php linux,mongodb 及PHP的MongoDB 扩展安装
  2. 程序人生:外链建设流程与细节都有哪些
  3. C#之windows桌面软件第九课:汉字串口助手
  4. Shoutem旨在成为React Native移动应用领域的WordPress
  5. setitimer 创建两个定时器_UE4 Timer(定时器)相关源码分析
  6. 【抽象代数】因子分解与域的扩展
  7. 自用的获取时间 传值是获取剩余时间 不传是获取当前时间
  8. 2 追踪光线=》2.2 前向光线追踪和逆向光线追踪
  9. 记一次生产环境脚本入侵检测与报警案例(检测特定目录被改动,自动报警)
  10. Java学习之路 之 注意篇
  11. 幸福之路---罗素,2017-12-6 周三
  12. 订阅发布延时_Redis实时队列和延时队列的php实现
  13. 黄金矿工~java小游戏【内含源码】
  14. 使用阿里云ECS搭建Nextcloud私有云服务器
  15. 巧妙去除Word文档修订和批注帮助
  16. SSL/TLS(4): TLS连接握手过程详细分析
  17. 计算机专业重大和吉大,中国“计算机专业”高校排名,中科大不敌吉大,电子科技无缘前10...
  18. value在php中怎么使用方法,valueOf方法怎么使用
  19. 数据治理建设管理方案(参考)(二)
  20. windows安装Apache,注册服务出现“(OS 5)拒绝访问。 : AH00369: Failed to open the WinNT service manager...错误

热门文章

  1. Stanford UFLDL教程 卷积特征提取
  2. 开发中经常使用到的20个正则表达式
  3. python with关键字学习
  4. 如何为你的回归问题选择最合适的机器学习算法?
  5. WEBSERVICE之JDK开发webservice
  6. JNI编程基础(二)——Android Studio NDK开发
  7. Attention To, Convert To Capped Collection
  8. 问题 “cell 出栈 selectBox 已选的图标,被释放掉,再次进入屏幕时,没有了已选图标 ” 解决方案...
  9. 准爸爸日记——20120311
  10. linux文件目录分析之/etc目录