我们在平常开发过程中,在设计数据的时候,经常碰到数据类型选择的问题,为了更快,更合适地选择正确的数据类型,所以在这里做个总结。

分类 sql server
数据类型
c#
数据类型
描述 应用场景
字符和字符串 char(n) string 固定长度的字符串,最多存储8000个字符  
  nchar(n) string 固定长度的unicode数据,最多4000个字符  
  varchar(n) string 可变长度的字符串,最多存储8000个字符 【常用】,表示字符串,不包含中文。
  nvarchar(n) string 可变长度的unicode数据,最多4000个字符 【常用】,表示字符串,包含中文。
  varchar(max) string 可变长度的字符串,最多1,073,741,824个字符 【常用】,同varchar(n),存储字符更多。
  nvarchar(max) string 可变长度的unicode数据,最多536,870,912个字符 【常用】,同nvarchar(n),存储字符更多。
  text string 可变长度的字符串,最多2GB  
  ntext string 可变长度的unicde数据,最多2GB  
         
整数 bit bool 表示0,1或NULL 【常用】,一般用来表示是或否两种状态的字段。
  tinyint byte 表示0~255范围的整数 【常用】,一般用来表示状态或类型,c#中可以定义枚举来表示。
  smallint short 表示-2^15至2^15-1范围的整数  
  int int 表示-2^31至2^31-1范围的整数 【常用】,表示整数,或自增主键id
  bigint long 表示-2^63至2^63-1范围的整数 【常用】,表示整数,表示范围更大。
         
精确数 float single 表示32位浮点数字,精度7位 【常用】,初始化后缀使用f或F,一般用来表示金额。
  double double 表示64位浮点数字,精度15到16位 【常用】,初始化后缀使用d或D
  decimal decimal 表示128位浮点数字,精度28到29位 初始化后缀使用m或M
         
货币 smallmoney decimal 同上  
  money decimal 同上  
         
日期时间 smalldatetime datetime 表示从 1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度为 1 分钟。  
  datetime datetime 从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 100 纳秒。 【常用】,表示时间。
         
二进制 binary byte[] 表示固定长度的二进制数据,最多存储8000个字符  
  varbinary(n) byte[] 表示可变长度的二进制数据,最多存储8000个字符  
  varbinary(max) byte[] 表示可变长度的二进制数据,最多存储2GB 【常用】,一般用来存储压缩后的数据。
  image byte[] 表示可变长度的二进制数据,最多存储2GB  
         
标记 timestamp N/A 时间戳,该数据类型在每一个表中是唯一的!当表中的一个记录更改时,该记录的timestamp字段会自动更新  
  uniqueidentifier Guid 存储全局标识符 (GUID) 【常用】,一般用来表示主键,唯一标识符。
… …        

参考文章:

http://www.cnblogs.com/mcgrady/p/3840812.html

http://blog.sina.com.cn/s/blog_49998558010009jy.html

http://www.w3school.com.cn/sql/sql_datatypes.asp

http://www.studyofnet.com/news/214.html

为更好地设计数据库,重新整理sql server数据类型的更多相关文章

  1. 整理sql server数据类型

    我们在平常开发过程中,在设计数据的时候,经常碰到数据类型选择的问题,为了更快,更合适地选择正确的数据类型,所以在这里做个总结. 分类 sql server 数据类型 c# 数据类型 描述 应用场景 字 ...

  2. 数据库技术丛书:SQL Server 2016 从入门到实战(视频教学版) PDF

    1:书籍下载方式: SQL Server2016从入门到实战 PDF 下载  链接:https://pan.baidu.com/s/1sWZjdud4RosPyg8sUBaqsQ 密码:8z7w 学习 ...

  3. Access数据库导入到SQL Server 2005 Express中

    安装好SQL Server 2005 Express后,再安装SQL Server Management Studio Express CTP就可以很方便的使用控制台进行数据库的管理.但SQL Ser ...

  4. ActiveMQ 消息持久化到数据库(Mysql、SQL Server、Oracle、DB2等)

    ActiveMQ具体就不介绍了,直接介绍如何讲ActiveMQ持久化到本地数据库,以SQL Server 2008 R2为例1.下载ActiveMQ后直接解压,我下载的是apache-activemq ...

  5. 数据库-如何创建SQL Server身份验证用户

    1.简介 默认安装SQL Server数据库后,SQL Server通过工具SQL Server Management Studio(SSMS)采用“Windows身份验证”方式登录,需要设置相应用户 ...

  6. 【SQL Server高可用性】数据库复制:SQL Server 2008R2中通过数据库复制,把A表的数据复制到B表

    原文:[SQL Server高可用性]数据库复制:SQL Server 2008R2中通过数据库复制,把A表的数据复制到B表 经常在论坛中看到有人问数据同步的技术,如果只是同步少量的表,那么可以考虑使 ...

  7. MySQL数据库导入到SQL Server

    EXEC master.dbo.sp_addlinkedserver @server = N'MYSQL2', @srvproduct=N'mySQL', @provider=N'MSDASQL', ...

  8. [转]oracle设计数据库应选择正确的数据类型

    原文地址:http://blog.sina.com.cn/s/blog_5014663501007n40.html 在设计数据库的时候,选择正确的数据类型,往往可以避免很多的问题,正确理解数据库的类型 ...

  9. 数据库迁移(SQL SERVER导入数据到MySql)

    地址:http://blog.csdn.net/jiaohougenyang/article/details/44937801 背景:项目最开始时使用的是SQL Server数据库,业务需求现要将数据 ...

随机推荐

  1. 微信小程序实例

    看到小程序,那么火,自己也想动手写一个.但是没有很好的api接口.有一天看到一个开发安卓的朋友,写了一个干货集中营的小程序.就搜了一下.看到api是免费开放的.于是自己也动手写了一个. 具体的微信小程 ...

  2. centos6安装svn1.9

    增加svn的源,vi /etc/yum.repos.d/wandisco-svn.repo [WandiscoSVN] name=Wandisco SVN Repo baseurl=http://op ...

  3. xib的UIScrollView自适应高度

    1.首先,我们先把这个size classes关了(需要使用的童鞋无视掉,也无视掉我的工程名,这是我弄高德地图创建的工程) 2.添加一个scrollview上去,设置上下左右约束为0 3.然后搞一个v ...

  4. Android 录音器

    Android自带的mediarecoder录音器不含pause暂停功能,解决方法:录制多个音频片段,最后合成一个文件. 参照 : http://blog.csdn.net/a601445984/ar ...

  5. Bean熟悉替换,只替换部分属性,其他属性值不改变

    Bean熟悉替换,只替换部分属性,其他属性值不改变 需要加入:asm.jar  cglib-2.1.jar,用来map和bean之间的转换(比spring和反射的效率好,因为加入了缓存) packag ...

  6. caffe + ubuntu16.04 (version without GPU)

    This Guide is based on caffe github wiki guide (https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-1 ...

  7. Linux就该这么学

    第三章:Vim编辑器与Shell脚本 Vim文本编辑器 在Linux系统中配置应用服务,实际上就是在修改它的配置文件. 在热门的Linux操作系统中都会默认安装一款超好用的文本编辑器--"v ...

  8. Linux从程序到进程

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在高级语言中,这些内存管理的细节对于用户来说不透明.在编程的时候,我们只需要记住上 ...

  9. Express+mysql的博客(1)

    学了东西一定要自己上手试过才知道是不是真的会了.一直想练练node的使用,本来也没有什么好想法的,经同学提醒了一下,发现其实我可以用node写一个博客.我同学说工作量会非常之大╮(╯_╰)╭那也得先试 ...

  10. ssh 登录

    一.ssh登录过程 在实际开发中,经常使用ssh进行远程登录.ssh 登录到远程主机的过程包括: 版本号协商 密钥和算法协商 认证 交互 1.1 版本号协商阶段 (1) 服务端打开22端口(也可以为了 ...