SQL Server数据类型总结
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数据类型总结的更多相关文章
- 为更好地设计数据库,重新整理sql server数据类型
我们在平常开发过程中,在设计数据的时候,经常碰到数据类型选择的问题,为了更快,更合适地选择正确的数据类型,所以在这里做个总结. 分类 sql server 数据类型 c# 数据类型 描述 应用场景 字 ...
- SQL Server 数据类型映射
SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decimal 结构的最大小数位数为 28,而 SQL Server 的 decima ...
- MySql和SQL Server数据类型 对比
My Sql 数据类型 SQL Server 数据类型 Yes/No bit Smallint(字节型) tinyint Integer(长整型) int Real(单精度浮点型) real F ...
- SQL Server数据类型与SDE库表sde_type对照表
SDE_column_registry 表管理所有注册列. 警告:如果使用 SQL 界面更改列定义,SDE_column_registry 表中的记录将不会更新.这可能导致之后的任何数据导出失败. S ...
- SQL Server 数据类型映射 (ADO.NET)
SQL Server 数据类型映射 (ADO.NET) .NET Framework 3.5 更新:November 2007 SQL Server 和 .NET Framework 基于不同的类型系 ...
- SQL Server数据类型
转载:http://www.ezloo.com/2008/10/sql_server_data_type.html 数据类型是数据的一种属性,是数据所表示信息的类型.任何一种语言都有它自己所固有 ...
- SQL Server 数据类型 Decimal介绍
为SQL Server 数据类型,属于浮点数类型.存储数据范围是: -1038~1038-1 的固定精度和小数位的数字.一个decimal类型的数据占用了2~17个字节.decimal数据类型在SQL ...
- SQL Server数据类型int、bigint、smallint、tinyint对比表
SQL Server数据类型int.bigint.smallint.tinyint对比表 数据类型 范围 存储 bigint -2^63 (-9,223,372,036,854,775,808) 到 ...
- SQL Server 数据类型映射(转载)
SQL Server 数据类型映射 SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decimal 结构的最大小数位数为 28,而 S ...
- Sql Server 数据类型与 C# 数据类型对照
Sql Server 数据类型与 C# 数据类型对照 已验证类型(Sql Server 2012 & Visual Studio 2013) Sql Server C# 简写 bigint S ...
随机推荐
- sqoop导出到mysql中文乱码问题总结、utf8、gbk
sqoop导出到mysql中文乱码问题总结.utf8.gbk 今天使用sqoop1.4.5版本的(hadoop使用cdh5.4)因为乱码问题很是头痛半天.下面进行一一总结 命令: [root@sdzn ...
- 深入浅出 Java Concurrency (5): 原子操作 part 4 CAS操作
在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁). 锁机制存在以下问题: (1)在多线程竞争下,加锁.释放锁会导致比较多的上下文切换和调度 ...
- Java内存分配及值、引用的传递
关于堆栈的内容网上已经有很多资料了,这是我找的加上自己理解的一篇说明文: 一.内存区域类型 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制: 2. 栈:存放基本类型的变量数 ...
- JDK8时间格式转换
来源:https://blog.csdn.net/zhangzijiejiayou/article/details/76597329 LocalDateTime 本地日期时间 LocalDateTim ...
- 使用libcurl显示下载进度
使用libcurl显示下载进度 http://blog.csdn.net/zhouzhenhe2008/article/details/53876622
- Overcoming Life's Obstacles - ASC 2017 March 03
Overcoming Life's Obstacles - How a top oboist overcame a neurological disorder to play again ©Advan ...
- maven使用阿里云maven库
在maven\conf\settings.xml中的mirrors添加 <mirror> <id>nexus-aliyun</id> <name>Nex ...
- Mybatis多表查询(一对一、一对多、多对多)
Mybatis的多表级联查询 . 一对一可以通过<association>实现,一对多和多对多通过<collection>实现. <discriminator> 元 ...
- VC获取网页标题,解决乱码问题 学习
博主不让转载 仅记录下地址 稍后 放出自己的代码 http://blog.csdn.net/friendan/article/details/11821135
- o7 文件和函数
一:文件 1 控制文件内指针的移动 文件内指针移动,只有在t模式下的read(n),n代表的字符的个数 除此之外文件内指针的移动都是以字节为单位的 with open('a.txt',mode ='r ...