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

数据类型

长度

描述

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字节

可变长度,输入数据的实际长度