1.char

  char [(n)]存储固定长度的非Unicode字符串数据。n定义字符串长度,并且必须是1到8,000之间的值。存储大小为n个字节。

2.varchar

  varchar [(n | max)]存储可变长度的非Unicode字符串数据。n定义字符串长度,可以是1到8,000之间的值。max表示最大存储大小为2 ^ 31-1个字节(2 GB)。存储大小是输入数据的实际长度+ 2个字节。

3.nchar

  nchar [(n)] 存储固定长度的Unicode字符串数据。n定义字符串长度,并且必须是1到4,000之间的值。存储大小是n个字节的两倍。当排序规则代码页使用双字节字符时,存储大小仍为n个字节。根据字符串,n个字节的存储大小可能小于为n指定的值。4.

4.nvarchar

  nvarchar [(n | max)] 存储可变长度的Unicode字符串数据。n定义字符串长度,可以是1到4,000之间的值。max表示最大存储大小为2 ^ 30-1个字符。最大存储大小(以字节为单位)为2 GB。实际存储大小(以字节为单位)是输入字符数+ 2字节的两倍。

5.datetime

  定义一个日期,该日期与基于24小时制的小数秒的时间相结合。8字节。日期范围:1753年1月1日至9999年12月31日。时间范围:00:00:00至23:59:59.997。

6.smalldatetime

  定义与一天中的时间相结合的日期。时间基于24小时制,秒数始终为零(:00)且没有小数秒。4字节。日期范围:1900年1月1日至2079年6月6日。时间范围:00:00:00至23:59:59。

7.date

  在SQL Server中定义日期。3字节。范围:0001-01-01至9999-12-31。

8.time

  在SQL Server中定义时间。范围:00:00:00.0000000至23:59:59.9999999。

9.datetime2

  datetime2可以视为现有日期时间类型的扩展,它具有更大的日期范围,更大的默认小数精度和可选的用户指定精度。日期范围:0001-01-01至9999-12-31 (date)。时间范围:00:00:00至23:59:59.9999999(time)。

10.bit

  数值数据类型,可以取值1,0或NULL。字节大小1。

11.Tinyint

  数值数据类型,可以取值0-255.字节大小1。

12.Smallint

  数值数据类型,可以取值-32768-32767.字节大小2。

13.int

  数值数据类型,字节大小4。

14.bigint

  数值数据类型,字节大小8。

15.decimal和numeric

  字节大小根据长度而变化。

16.Money

  8字节。

17.SmallMoney

  4字节。

18.Float

  4或8字节。

19.Real

  具有24位精度的浮点值。4字节。

  char的长度是不可变的,而varchar的长度是可变的。也就是说,定义一个char[10]和varchar[10],如果存进去的是abcd,那么char所占的长度依然为10,除了字符abcd外,后面跟六个空格,而varchar就立马把长度变为4了。取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。尽管如此,char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找。但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。

  nchar、nvarchar从名字上看多了个n。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。带n 的可以存储 4000个字符,英文字母存在n 类型上也是按两个字节计算。不带n的可以存储8000个字符,英文字符按一个字节,中文字按两个字节。一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar。

  所以建议,当列数据条目的大小一致时,请使用 char。当列数据条目的大小变化大时,请使用 varchar。当列数据条目的大小变化大时并且大小可能超过8,000个字节时,使用varchar(max)。尽量使用nvarchar来存储数据.只有在你确保该字段不会保存中文的时候,才采用varchar来存储。

  在处理货币时,请谨慎选择数据类型。对金钱使用float或real数据类型会造成舍入误差。money或smallmoney数据类型可以精确到1美分的百分之一。对于一些货币值,客户可能请求仅精确到美分,这种情况下,decimal就是更适当的数据类型。

SQL Server数据类型总结的更多相关文章

  1. 为更好地设计数据库,重新整理sql server数据类型

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

  2. SQL Server 数据类型映射

    SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decimal 结构的最大小数位数为 28,而 SQL Server 的 decima ...

  3. MySql和SQL Server数据类型 对比

    My Sql 数据类型 SQL Server 数据类型 Yes/No bit Smallint(字节型) tinyint Integer(长整型) int Real(单精度浮点型)    real F ...

  4. SQL Server数据类型与SDE库表sde_type对照表

    SDE_column_registry 表管理所有注册列. 警告:如果使用 SQL 界面更改列定义,SDE_column_registry 表中的记录将不会更新.这可能导致之后的任何数据导出失败. S ...

  5. SQL Server 数据类型映射 (ADO.NET)

    SQL Server 数据类型映射 (ADO.NET) .NET Framework 3.5 更新:November 2007 SQL Server 和 .NET Framework 基于不同的类型系 ...

  6. SQL Server数据类型

    转载:http://www.ezloo.com/2008/10/sql_server_data_type.html    数据类型是数据的一种属性,是数据所表示信息的类型.任何一种语言都有它自己所固有 ...

  7. SQL Server 数据类型 Decimal介绍

    为SQL Server 数据类型,属于浮点数类型.存储数据范围是: -1038~1038-1 的固定精度和小数位的数字.一个decimal类型的数据占用了2~17个字节.decimal数据类型在SQL ...

  8. SQL Server数据类型int、bigint、smallint、tinyint对比表

    SQL Server数据类型int.bigint.smallint.tinyint对比表 数据类型 范围 存储 bigint -2^63 (-9,223,372,036,854,775,808) 到 ...

  9. SQL Server 数据类型映射(转载)

    SQL Server 数据类型映射 SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decimal 结构的最大小数位数为 28,而 S ...

  10. Sql Server 数据类型与 C# 数据类型对照

    Sql Server 数据类型与 C# 数据类型对照 已验证类型(Sql Server 2012 & Visual Studio 2013) Sql Server C# 简写 bigint S ...

随机推荐

  1. sort+函数指针、sort+比较器对象、qsort速度比较

    一.上代码 #include<bits/stdc++.h> using namespace std; #define MAXN 50000000 struct TS { int a, b, ...

  2. Vue 安装环境创建项目

    vue 是一个单页面框架,基于模块化组件化的开发模式. 搭建开发环境之前必须要安装node.js,然后安装vue的脚手架工具(命令行工具)win + R 输入npm install  --global ...

  3. "sc.exe create/delete" - Create or Delete Services

    "sc.exe" can also be used to create and delete services. If you want to create a new servi ...

  4. WebLogic Server StuckThreadMaxTime value is exceeded during configuration

    WebLogic Server StuckThreadMaxTime value is exceeded during configuration If you are configuring Web ...

  5. //todo 的用处

    在代码中添加 //todo 以后要做的事 可以暂时打上标记,以后再来处理. 光有这个没什么用,关键是IDE要支持,比如VS2017,只要按下 ctrl+w,t 就可以在输出窗口中显示出所有 todo的 ...

  6. Excel数据转化为sql脚本

    在实际项目开发中,有时会遇到客户让我们把大量Excel数据导入数据库的情况.这时我们就可以通过将Excel数据转化为sql脚本来批量导入数据库. 1 在数据前插入一列单元格,用来拼写sql语句. 具体 ...

  7. 44. Wildcard Matching (String; DP, Back-Track)

    Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single character. ...

  8. ETL数据仓库

    http://blog.csdn.net/leicool_518/article/category/3058299 http://bbs.csdn.net/topics/390349305

  9. git 常见报错

    1. refusing to merge unrelated histories : 拒绝合并无关的历史 teminal中输入 git pull origin master --allow-unrel ...

  10. shell如何传递变量到另一个脚本文件中

    http://www.jbxue.com/article/shell/20707.html本文介绍了shell脚本传递变量到另一个脚本文件中的方法,在脚本中调用另一脚本,即创建了一个子进程,感兴趣的朋 ...