MSSQL常用数据类型

1.字符类型

一般常用的varchar,char,text等,其中varchar为可变长,char为定长.varchar使用的好处是可以节约空间.char的好处是效率可能较高.
数据类型 描述 存储空间
char(n) n为1-8000字符之间 n字节
nchar(n) n为1-4000 unicode字符之间 2*n字节
nvarchar(max) 最多为2^30-1(1073741823)unicode字符 2*字符数+2额外开销
text 最多为2^31-1(2147483647)字符 每字符1字节+2字节额外开销
varchar(n) n为1-8000字符之间 每字符1字节+2字节额外开销
varchar(max) 最多为2^31-1(2147483647)字符 每字符1字节+2字节额外开销

2.精确数值类型

数值类型一般使用bit,tinyint,smallint,int,bigint,numeric,deciaml,smallmoney,money.其中bit只能存储null,0,1.
数据类型 描述 存储空间
bit 0,1或者null 1字节(8位)
tinyint 0-255之间的整数 1字节
smallint -32768~32767之间的整数 2字节
int -2147483648~2147483647之间的整数 4字节
bigint -9223372036854775808~9223372036854775807之间的整数 8字节
numric(p,s)或decimal(p,s) 表示的数字可以达到38位,存储数据时所用的字节数目会随着使用权用位数的多少变化 最多17字节
money -9223372036854775808.5808~9223372036854775807.5807 8字节
smallmoney -2147483648.3648~2147483647.3647 4字节

3.近似值数据类型

近似值类型包括float和real,用来表示浮点数,但是他们是近似的,不能精确的表示所有值
数据类型 描述 存储空间
float[(n)] -1.79E+308~1.79E+308 n<=24    4字节,n>24   8字节
real() -3.04E+38~3.04E+38 4字节

4.二进制数据类型

varbinary,binary,varbinary(max)等二进制数据类型用于存储二进制数据,如图形文件,word文档或者mp3文件等.image数据类型可在数据页外存储最多2GB的文件.image数据类型的首选替代类型是varbinary(max)
数据类型 描述 存储空间
binary(n) n为1-8000十六进制数字之间 n字节
varbinary(n) n为1-8000十六进制数字之间 每字符1字节+2字节额外开销
varbinary(max) 最多为2^31-1(2147483654)十六进制数字 每字符1字节+2字节额外开销

5.日期和时间数据类型

datetime和smalldatetime数据类型用于存储日期和时间数据.smalldatetime为4字节,存储1900-01-01到2079-06-06之间的时间,并且只能精确到分钟.datetime存储1753-01-01到9999-12-31日之间的时间.并且能精确到最近的3.33毫秒
sqlserver2012新增了4种时间相关的数据类型:datetime2,dateoffset.date,time.
数据类型 描述 存储空间
date 1年1月 1日-9999年12月31日,只存储日期 3字节
datetime 1753年1月1日~9999年12月31日,精确到最近的3.33毫秒 8字节
datetime(n) 1年1月1日~999年12月31日.0~7之间的n指定小数秒 6~8字节
datetimeoffset(n) 1年1月1日~999年12月31日.0~7之间的n指定小数秒+/-偏移量 8~10字节
smalldatetime 1900年1月1日~2079年6月6日,精确到1分钟 4字节
time(n) 小时:分钟:秒.9999999,0~7之间的n指定小数秒 3~5字节

6.其它系统数据类型

数据类型 描述 存储空间
cursor 包含对游标的引用,只用用作变量或者存储过程参数 /
hierarchyid 包含对层次结构中位置的引用 1-892字节+2字节额外开销
sql_variant 可能包含任何系统数据类型的值. 8016字节
table 用于存储进一步处理的数据集,主要用于返回标志函数的结果集,也可以用于存储过程和批处理 取决于表定义和存储的行数
timestamp或rowversion 对于每个表是唯一的,自动存储的值.通常用于版本戳.该值在dml的时候自动更新 8字节
uniqueidentifier 包含全局唯一标识符GUID.该值可以从Newsequentialid()函数获得. 16字节
xml 定义为unicode形式 最多2GB






你可能感兴趣的:(MSSQL)