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. 好记性不如烂笔头-linux学习笔记4apache相关知识

    apache 启动有2种模式 1是prefork模式,每个进程对应一个线程,如果是比较稳定的平台,那么prefork模式是worker模式 比较好,效率高,但是吃的内存比较大. 2 如果是高负载高并发 ...

  2. c++ new 与malloc有什么区别

    前言 几个星期前去面试C++研发的实习岗位,面试官问了个问题: new与malloc有什么区别? 这是个老生常谈的问题.当时我回答new从自由存储区上分配内存,malloc从堆上分配内存:new/de ...

  3. python中模拟进行ssh命令的执行

    在进行socket编程的时候,可以实现远程执行命令,然后返回相关的结果,但是这种...很容易就把服务器搞挂了. 在这里需要用到commands模块,commands模块中有一个方法为getstatus ...

  4. jsp 学习 第1步 - 引入 jstl

    通过 eclipse 新建 动态web项目  默认是没有引入 jstl, 则无法JSP页面引入相关标记. <%@ taglib prefix="c" uri="ht ...

  5. 使用openal与mpg123播放MP3,附带工程文件(转)

    使用openal与mpg123播放MP3,附带工程文件 使用openal和mpg123播放MP3文件 使用静态编译,相关文件都在附件里 相关工程文件:openal_mpg123_player.7z 使 ...

  6. leetcode: Longest Valid Parentheses分析和实现

    题目大意:给出一个只包含字符'('和')'的字符串S,求最长有效括号序列的长度. 很有趣的题目,有助于我们对这种人类自身制定的规则的深入理解,可能我们大多数人都从没有真正理解过怎样一个括号序列是有效的 ...

  7. 在线编辑器CKeditor,CKfinder

    在线编辑器的分类: 常见的在线编辑器有很多,比较常用的有FCKeditor(在线编辑器——Ajax 浏览器 端服务器文件管理器),CKeditor(在线编辑器与服务器端文件管理器的分离,) 其中CKe ...

  8. VMware CentOS LVM磁盘扩容

    一. 在虚拟机上增加磁盘空间 如下图. 增加完后会有提示 "磁盘已成功扩展.您必须从客户机操作系统内部对磁盘重新进行分区和扩展文件系统.是继续完成以下步骤才算成功. 二.调整虚拟机磁盘LVM ...

  9. [Selenium]对于某些对话框即有可能弹出来,也有可能不弹出来,这种应该怎么处理呢?

    界面上如果有一个对话框可能弹出来,也可能不弹出,我们都要认为是正常,应该怎么处理呢? /** * check if release notes dialog present * @author j * ...

  10. 分布式理论系列(一)从 ACID 到 CAP 到 BASE

    分布式理论系列(一)从 ACID 到 CAP 到 BASE 一.ACID 1.1 事务的四个特征: (1) Atomic(原子性) 事务必须是一个原子的操作序列单元,事务中包含的各项操作在一次执行过程 ...