SQL Server 2005 数据类型
创建数据库表时,必须为表中的每列分配一种数据类型。
1. 字符串类型
字符串类型包括varchar,char,nvarchar,nchar,text和ntext.这些数据类型用于存储字符数据。Varchar和char类型之间的差别是数据填充。如果要节省空间,为什么有时候还使用char数据类型呢?使用varchar类型将稍微增加一些开销。有些DBA认为,应最大可能地节省空间。但一般来说,最好在单位找到一个合适的阈值,低于改值的采用char数据类型,反之采用varchar数据类型。
Nvarchar数据类型和nchar数据类型的工作原理与姐妹数据类型varchar数据类型和char数据类型,但这两种数据类型能够处理国际性Unicode字符,不过需要一些额外开销。鉴于这些额外开销和空间,所以应该可能避免使用Unicode列,除非确实存在需要使用它们的业务或语言需求。
Text数据类型用于存储大型数据。应该可能少的使用它们,因为他们可能影响性能。
2. 数值数据类型
数值数据类型包括bit,tinyint,smallint,int,bigint,numberic,decimal,money,float和real。所有这些数据类型都用于存储不同类型的数字值。
常见的数值数据类型
数值类型 |
存储的值 |
存储空间 |
bit |
0或1 |
1字节 |
tinyint |
0到255之间的整数 |
1字节 |
smallint |
-32768至32767之间的整数 |
2字节 |
int |
-2147483648至2147483647之间的整数 |
4字节 |
bigint |
-9223372036854775808至9223372036854775807 |
8字节 |
numberic |
--10的38次方+1至-10的38次方-1之间的数值 |
最多17字节 |
decimal |
-10的38次方+1至-10的38次方-1之间的数值 |
最多17字节 |
money |
-922337203685477.5808至922337203685477.5807 |
8字节 |
samllmoney |
-214748.3648至214748.3647 |
4字节 |
3. 二进制数据类型
诸如varbinary,binary,varbinary(max)或image等二进制数据类型用于存储二进制数据。Image数据类型可在数据页外部存储最多2GB的文件。Image数据类型的替代数据类型是varbinary(max),它可保存最多8KB的二进制数据,其性能通常比image数据类型更好。
4. XML
当xml最初出现时,开发人员将这种层次数据保存到text或varchar列中。当应用程序中的列可变时,如调查应用程序,通常需要在数据库以xml格式保存数据。可以想象,这并不是最优化的方法,因为在文本列内部对这种数据建立索引。
5. Datatime
Datatime和smalldatatime数据类型都用于存储日期和时间数据。Smalldatatime为4Byte,存储1900年1月1日至2079年6月6日之间时间,且只精确到最近的分钟。Datatime数据类型为8byte,存储1753年1月1日至9999年12月31日之间的时间,且精确到最近的3.33ms。