SQLServer中的数据类型

本文深入解析数据库中各类字段类型的特性与应用,涵盖文本、数字、日期及货币类型,帮助理解不同场景下数据存储的最佳实践。

1 文本类型

字符数据包含任意字符、符号或数字字符的组合。

  • char: 固定长度的非Unicode字符数据,最大长度为8000个字符。
  • varchar: 可变长度的非Unicode数据,最大长度为8000个字符。
  • text: 存储长文本信息,最大长度为2^31 - 1(2147483647)个字符。
  • nchar: 固定长度的Unicode数据,最大长度为4000个字符。
  • nvarchar: 可变长度的Unicode数据,最大长度为4000个字符。
  • ntext: 存储可变长度的长文本,最大长度为2^30 - 1(1073741823)个字符。

Unicode是国际组织指定的可以容纳世界上所有文字和符号的字符编码方案。

注意: 带n的数据类型长度是不带n的两倍。比如nchar(1)和char(2)长度相同。


2 数字类型

2.1 整数类型

  • bigint: 占用8个字节,可表示范围-2^63 ~ 2^63 - 1之间的整数。
  • int: 占用4个字节,可表示范围-2^31 ~ 2^31 - 1之间的整数。
  • smallint: 占用2个字节,可表示范围-2^15 ~ 2^15 - 1之间的整数。
  • tinyint: 占用1个字节,可表示范围0~255之间的整数。

2.2 精确数字类型

  • decimal: -10^38 ~ 10^38 -1之间的固定精度和小数位的数字。
  • numeric: 功能等同于decimal。

写法:decimal(整数,小数)和numeric(整数,小数)。
默认:如果不指定位数,默认为18位整数,0位小数。

2.3 近似数字(浮点)类型

  • float(n): 表示范围-1.79E+308 ~ 1.79E+308(1.79乘以10的308次幂)。
    • n表示精度,在1~53之间取值:当n在1 ~ 24之间时,精度为7位有效数字,占用4个字节;当n在25 ~ 53,精度为15位有效数字,占用8个字符。
  • real: 表示范围~3.04E+38 ~ 3.04E+38占用4个字节存储空间,相当于float(24)。

2.4 位类型

  • bit: 表示“是/否”类型的数据(0,1/true,false)。

2.5 二进制类型

  • binary: 固定长度的二进制数据,最大长度为8000个字节。
  • vbinary: 可变长度的二进制数据,其最大长度为8000个字节。
  • image: 可变长度的二进制数据,其最大长度为2^31个字节。可以用于存储图片。

3 日期类型

  • datetime: 允许的范围1753-1-1至9999-1-1,精确到3/100秒。
  • smalldatetime: 允许的范围1900-1-1至2079-6-6,精确到1分钟。

格式说明:

  • 分隔数字方式:2013-08-29或08/20/2013。
  • 纯数字方式:08202013。
  • 英文数字方式:Aug 20,2013。

注意: 日期在使用的时候需要使用单引号(’’)括起来。


4 货币类型

  • money: 货币数值介于-263与263之间,精确到货币单位的千分之一。
  • smallmoney: 货币数据介于-214748.3648与214748.3648之间,精确到货币单位的千分之十。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值