Sql server2008所有的数据类型

        在 SQL Server 中,每个列、局部变量、表达式和参数都具有一个相关的数据类型。数据类型是一种属性,用于指定对象可保存的数据的类型:整数数据、字符数据、货币数据、日期和时间数据、二进制字符串等。

        SQL Server 提供系统数据类型集,该类型集定义了可与 SQL Server 一起使用的所有数据类型。您还可以使用 Transact-SQL 或 Microsoft .NET Framework 定义自己的数据类型。别名数据类型基于系统提供的数据类型。有关别名数据类型的详细信息,请参阅使用别名数据类型。用户定义类型从您使用 .NET Framework 支持的编程语言之一创建的类的方法和运算符中获取它们的特征。有关详细信息,请参阅使用 CLR 用户定义类型。

        当两个具有不同数据类型、排序规则、精度、小数位数或长度的表达式通过运算符进行组合时,结果的特征由以下规则确定:

  • 结果的数据类型是通过将数据类型的优先顺序规则应用到输入表达式的数据类型来确定的。有关详细信息,请参阅数据类型优先级 (Transact-SQL)。
  • 当结果数据类型为 charvarchartextncharnvarcharntext 时,结果的排序规则由排序规则的优先顺序规则确定。有关详细信息,请参阅排序规则优先级 (Transact-SQL)。
  • 结果的精度、小数位数及长度取决于输入表达式的精度、小数位数及长度。有关详细信息,请参阅精度、小数位数和长度 (Transact-SQL)。

数据类型类别

SQL Server 中的数据类型归纳为下列类别:

精确数字

Unicode 字符串

近似数字

二进制字符串

日期和时间

其他数据类型

字符串

在 SQL Server 中,根据其存储特征,某些数据类型被指定为属于下列各组:

  • 大值数据类型:varchar(max)nvarchar(max) varbinary(max)

  • 大型对象数据类型:textntextimagevarchar(max)nvarchar(max)varbinary(max)xml

    注意:
    sp_help 返回 -1 作为大值数据类型和 xml 数据类型的长度。

精确数字

bigint

numeric

bit

smallint

decimal

smallmoney

int

tinyint

money

近似数字

float

real

日期和时间

date

datetimeoffset

datetime2

smalldatetime

datetime

time

字符串

char

varchar

text

Unicode 字符串

nchar

nvarchar

ntext

二进制字符串

binary

varbinary

image

其他数据类型

cursor

timestamp

hierarchyid

uniqueidentifier

sql_variant

xml

table

 

常用的类型介绍


数据类型描述大小(以字节为单位)
char固定长度的字符数据,最多可以包含8000个使用排序规则字符集的字符定义的长度*1个字节
nchar固定长度的Unicode字符数据定义的长度*2个字节
varchar可变长度的字符数据,最多可以包含8000个使用排序规则字符集的字符每个字符1个字节
nvarchar可变长度的Unicode字符数据,最多可以包含4000个Unicode字符每个字符2个字节
text可变长度的字符数据,最多可以包含2147483647个非Unicode字符每个字符1个字节
ntext可变长度的Unicode字符数据,最多可以包含1073741823个Unicode字符每个字符2个字节
sysnameMiscrosoft提供的用户定义数据类型,在功能上等同于nvarchar(128),用于引用表和列的名字每个字符2个字节

        Unicode数据类型在存储使用多种语言的数据时非常有用,但这是通过付出双倍的存储空间的代价才得到的。一些开发人员将他们所有基于字符的列都定义为nvarchar数据类型,而另外的一些开发人员却不惜一切代价避免使用Unicode数据类型。建议如果数据库有可能使用其他国家的语言,那么就使用Unicode数据类型;否则,就使用char,varchar或者text数据类型。

数据类型描述大小(以字节为单位)
bit0或者11位(bit)
tinyint0到255的整数数据1个字节
smallint从-32768到32767的整数数据2个字节
int从-2147482648到2147483647的整数数据4个字节
bigint从-2的63次方到2的63次方-1的整数数据8个字节
decimal或者numeric从-10的38次方+1到10的38次方-1的固定精度和小数位的数字数据最大存储大小随精度而变化
money货币数据值,介于-2的63次方与2的63次方之间,精确到货币单位的万分之一(.0001)8个字节
smallmoney货币数据值,介于-214748.3648与+214748.3647之间,精确到货币单位的万分之一(.0001)4个字节
float浮点数,依据所定义的精确位数,可以表示从-1.79E+308到1.79E+308之间的浮点精确数字4个或者8个字节
real具有24位精确的浮点数4个字节

        如果要使用货币数据值,则必须谨慎地选择数据类型。如果使用float或者real数据类型来表示货币将会产生舍入错误。而使用money和small-money数据类型可以精确到百分之一美分。对于一些货币值,客户只要求精确到美分。在这种情况下,decimal是最合适的数据类型

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值