06、SQL Server 教程 - 字符型数据类型

字符型数据是数据库中最常用的数据类型之一,有时人们将其称为字符串。数字、字母、汉字及标点符号都可以称为字符。如果要将字符存放到数据表的字段中,就需要将该字段设置成字符型。
字符型数据被放在单引号(‘’)中,用于区别其他类型的数据。

数据类型 长度 描述
char 1~8000个字符 固定长度类型。例如,定义数据类型是char(5),那么该类型可以存储5个字符,即使存入2个字符,剩下3个字符也会用空格补齐
varchar 1~8000个字符 可变长度类型。例如,定义数据类型varchar(5),表示该类型可以存储5个字符,如果存储了2个字符,字符长度就是2而不是5
text 最多可以存储2147483647个字符  

整数类型主要包括int、smallint、tinyint、bigint和bit其5种,其中,int数据类型是SQL Server2008中比较常用的数据类型。但是当int的取值范围满足不了要求时,可以考虑使用bigint数据类型。

数据类型 范围 存储长度

int

-2^31到2^31-1  
smallint -2^15到2^15-1 4字节
tinyint 0到255 2字节
bit 0,1或者NULL 如果表中的列为8bit,则这些列作为1字节存储。如果列为9到16位,则这些列作为2个字节存储,依此类推
bigint -2^63到2^63-1 8字节

浮点型数据包括小数部分和整数部分,常用的类型有numeric和dccimal两种a使用该数据类型时要指明小数部分和整数部分的精度,也就是各占几位,例如:numeric (5,2),表示小数的长度是5,但是只有2位小数。这里,小数的位数可以指定为0,即表示整数。

数据类型 范围 存储长度
decimal -10^38+1~10^38-1

存储长度与精度有关

1~9位时,5节节

10~19位时,9字节

20~28位时,13字节

29~38位时,17字节

numeric -10^38+1~10^38-1

存储长度与精度有关

1~9位时,5节节

10~19位时,9字节

20~28位时,13字节

29~38位时,17字节

 

货币类型是用来定义货币数据的。

数据类型 范围 存储长度
money -922337203685477.5808到922337203685477.5807 8字节
smallmoney -214748.3648到214748.3647  

日期和时间数据类型是用来存储日期和时间的数据。

数据类型 范围 存储长度
date 公元元年1月1日到公元9999年12月31日,精确到一天 固定3个字节
time

00:00:00.0000000到23:59:59.99999999

精确到100纳秒

固定5个字节
datetime2

日期范围:公元元年1月1晶到公元9999年12月31日

日间范围:00:00:00到23:59:59.99999999

精确到100纳秒

精度小到3时为6个字节:精度为4和5个字节。所有其他精度则需要8个字节
datetimeoffset

日期范围:公元元年1月1日到公元9999年12月31日

时间范围:00:00:00到23:59:59.99999999

时区偏移量范围:-14:00到+14:00

精确到100纳秒

默认值为10字节的固定大小,默认的秒的小数部分精度为100ns

二进制类型是以二进制字符的格式来存储字符串的,例如:01110110,也可以是一个二进制文件。该类型主要有三种binary、varbinary和image,其数据范围如表4.6所示。

数据类型 范围 存储长度
binary 1到8000个字节 为固定长度,如果插入的数据不够这些长度,系统会自动补上0x00
varbinary

varbinary(n):1至8000个字节

varbinary(max):1到2^31-1个字符

varbinary(n):可变长度,输入数据的实际长度

varbinary(max):输入数据的实际长度再加2个字节

image 1到2^31-1字节 可变长度,输入数据的实际长度