字符型数据是数据库中最常用的数据类型之一,有时人们将其称为字符串。数字、字母、汉字及标点符号都可以称为字符。如果要将字符存放到数据表的字段中,就需要将该字段设置成字符型。
字符型数据被放在单引号(‘’)中,用于区别其他类型的数据。
数据类型 | 长度 | 描述 |
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字节 | 可变长度,输入数据的实际长度 |