最近在重新学习数据库,发现对于数据的基本类型很不清楚,顺便梳理一哈:
SQL Server 中,每个列、局部变量、表达式和参数都具有一个相关的数据类型。
数据类型是一种属性,用于指定对象可保存的数据的类型:整数数据、字符数据、货币数据、日期和时间数据、二进制字符串等。
SQL Server 中的数据类型归纳为下列类别:
精确数字 Unicode 字符串
近似数字 二进制字符串
日期和时间 其他数据类型
字符串
在 SQL Server 中,根据其存储特征,某些数据类型被指定为属于下列各组:
大值数据类型:varchar(max)、nvarchar(max) 和 varbinary(max)
大型对象数据类型:text、ntext、image、varchar(max)、nvarchar(max)、varbinary(max) 和 xml
精确数字
bigint
numeric decimal [ (p[ ,s] )] 和 numeric[ (p[ ,s] )]
p(精度)
最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数
bit
SQL Server 数据库引擎可优化 bit 列的存储。 如果表中的列为 8 bit 或更少,则这些列作为 1 个字节存储。
如果列为 9 到 16 bit,则这些列作为 2 个字节存储,以此类推。
字符串值 TRUE 和 FALSE 可转换为 bit 值:TRUE 将转换为 1,FALSE 将转换为 0。
转换为 bit 会将任何非零值升为 1。
smallint
decimal 固定精度和小数位数。使用最大精度时,有效值的范围为 - 10^38 +1 到 10^38 - 1。
ecimal(5,5) 和 decimal(5,0) 视为不同的数据类型(精度和小数位数的每个特定组合视为不同的数据类型)
smallmoney
int
tinyint
money
近似数字
float
real -3.40E + 38 至 -1.18E - 38、0 以及 1.18E - 38 至 3.40E + 38 4 字节
字符串
char 固定长度,非 Unicode 字符串数据。 n 用于定义字符串长度 存储大小为 n 字节
varchar 可变长度,非 Unicode 字符串数据 存储大小为所输入数据的实际长度 + 2 个字节
text 服务器代码页中长度可变的非 Unicode 数据
Unicode 字符串
nchar 如果列数据项的大小可能相同,请使用 nchar
nvarchar 如果列数据项的大小可能差异很大
ntext 长度可变的 Unicode 数据
二进制字符串
binary
varbinary
image 长度可变的二进制数据