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

分类 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. 小识Tableau

    关于 Tableau Tableau 帮助人们将数据转化为可以付诸行动的见解.探索无所不能的可视化分析.只需点击几下即可构建仪表板,进行即兴分析. Tableau与R对比: 1.从开发的角度讲,Tab ...

  2. sql-GOTO跳转

    --声明变量 DECLARE @X INT --标记GOTO跳转位置 TEST: PRINT @X --WHILE @X<=3 --GOTO跳转到执行位置 GOTO TEST

  3. centos 6.4 升级python到版本2.7.12

    注意:需要root权限 查看python版本:python --version 1.下载Python-2.7.12wget https://www.python.org/ftp/python/2.7. ...

  4. SQL-Server使用点滴(三)

    除了基本的数据库,数据表,数据记录操作之外,SQL-Server还为我们提供了比较丰富的其他对象元素.函数,过程,触发器,序列,映射服务器, 以及对各种元素的系统表信息读取与判断. --先加一个利用递 ...

  5. 安装php-amqplib(RabbitMQ的phpAPI)

    历史经验告诉我们,装逼没有好下场. 总结一下之前composer安装php-amqplib包失败的原因: composer安装的时候需要指定PHP执行文件的位置: PHP安装路径:/usr/local ...

  6. Codeforces 722D. Generating Sets

    D. Generating Sets time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  7. 读文章《Flexbox详解》笔记

    文章地址:Flexbox详解 属性摘抄: flex container : display: other values | flex | inline-flex; flex-direction: ro ...

  8. vc6.0如何显示行号以及出现版本不兼容问题

    有时编译时,提示某某行有错,但是要定位到某一行的话,如果在编辑页面能够将行号显示出来,查找也就更方便了,下面我来介绍一下让VC6.0显示行号的方法.   工具/原料   VC6.0.显示行号的插件 方 ...

  9. Android获取网络图片

    /** * * 访问网络的操作,必须放在工作线程中完成 * */ public class MainActivity extends Activity { static List<HashMap ...

  10. iOS开发 iOS10兼容访问http

    添加NSAppTransportSecurity的字典会自动变成  AppTransportSecurity再添加 allow Arbitary Loads  Boolean   YES