SQL数据类型

整数型

数据类型

数据内容与范围

占用的字节

bit

0,1,NULL

实际使用1bit,但会占用1字节,若一个数据中有数个bit字段,则可共占1字节

tinyint

0~255

1字节

smallint

-215~215-1

2字节

int

-231~231-1

4字节

bigint

-263~-263-1

8字节

numeric

精确数值型,-1038+1~-1038-1

19位5字节,1019位9字节,2028位13字节,2938位17字节

decimal

精确数值型,-1038+1~-1038-1

19位5字节,1019位9字节,2028位13字节,2938位17字节

float

近似数值型,-1.79E+308~1.79E+308

8字节

real

近似数值型,-3.40E+38~3.40E+38

4字节

Money

精确数值型,-263~263-1,精确到万分之一

8字节

smallmoney

精确数值型,-214748.3648~214748.3647

4字节

(成绩的数据类型设置,可用numeric(4,1),其中4表示总共的位数,1表示小数点后一位)

字符型

数据类型

数据内容与范围

占用的字节

char

1~8000个字符,非Unicode字符(ASCII字符)

1个字符1字节

varchar

1~8000个字符,非定长的非Unicode字符(依据实际使用分配)

1个字符1字节

nchar

1~4000个字符,Unicode字符(ASCII字符)

1个字符2字节

nvarchar

1~4000个字符,非定长的Unicode字符(依据实际使用分配)

1个字符2字节

text

1~2^31个字符,非Unicode字符

1个字符1字节

ntext

1~2^31个字符,非定长的Unicode字符(依据实际使用分配)

1个字符2字节

(ASCII字符无法存储中文,Unicode字符可以,一个中文字符占两个字节)

二进制数据型

数据类型

数据内容与范围

占用的字节

binary

1~8000字节,定长二进制数据

会另外增加4字节,尾端空白字符会保留

varbinary

1~8000字节,非定长二进制数据

会另外增加4字节,尾端空白字符会删除

image

2^31-1个字符,非定长的二进制数据

最大可存储2GB

(任何类型的数据都可以存储在这种类型的字段中,不需要数据转换,image可以存储图片本身,需要将图片转化为二进制流的形式)

时间日期型

数据类型

数据内容与范围

占用的字节

detetime

时间日期型,1753/1/1~9999/12/31

8字节

smalldetetime

时间日期型,1900/1/1~2079/6/6

4字节

其他数据类型

数据类型

数据内容与范围

占用的字节

timestamp

十六进制

8字节

uniqueidentifier

全局唯一标识符

可用NEWID()函数生成一个该种类型的字段值,16字节

sql_variant

0~8016字节

table

(timestamp提供数据库范围内的唯一值。此类型相当于binary(8),它所定义的列更新或添加数据行时,此列的值会被自动更新。

uniqueidentifier数据类型成为全球唯一标识符。

sql_variant可以存储除文本、图形数据和timestamp类型数据外的其他任何合法的SQL Server数据。

table数据类型用于存储对表或视图处理后的结果集,这一类型使得变量可以存储一个表,从而使函数或过程返回查询结果更加方便、快捷)