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之间,精确到货币单位的千分之十。

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





