SQLServer数据类型

在SQLServer2012版本中一共提供了25种系统数据类型,整理归纳如下:

整数数据类型
bigint -2^{63}~2^{63}-1范围内的所有整数
int -2^{31}~2^{31}-1范围内的所有整数
samllint -2^{15}~2^{15}-1范围内的所有整数
tinyint 0~255范围内的所有整数

 

 

 

浮点数据类型
real 范围:-3.40X10^{38}~-1.18X10^{-38}、0以及1.18X10^{-38}~3.40X10^{38}。每个real类型的数据占用4个存储空间。
float[(n)] 其中n用于存储float数值尾数的尾数,可以确定精度和存储大小,如果指定了n,则他必须介于1-53之间的某个值,n默认值为53
decimal[p[,s]]

-10^{38}+1~10^{38}-1。

p(精度)指定了最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须在1到38之间的值,默认值是18。

s(小数位数)指小数点右边可以存储的十进制数字的最大位数。

decimal(10,4) 表示共有10位数,其中整数6位,小数4位。

numeric[p[,s]]

-10^{38}+1~10^{38}-1。

p(精度)指定了最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须在1到38之间的值,默认值是18。

s(小数位数)指小数点右边可以存储的十进制数字的最大位数。

numeric(10,4) 表示共有10位数,其中整数6位,小数4位。

 

 

 

 

 

 

 

字符数据类型
char(n)

n 取值范围1~8000.

若不指定n值,系统默认n的值为1.。

若输入的数据的字符串长度小于n,则系统自动在其后添加空格来填满设定好的空间。

若输入的数据的字符串长度大于n,将会截掉其超出的部分。

varchar(n|max)

n取值范围1-8000,但是可以根据实际存储的字符改变存储空间。

max 指示最大的存储大小是2^{31}-1.

nchar(n)

取值范围:1~4000

按照Unicode字符数据存储。

可将全世界文字囊括在内。

nvarchar(n|max)

n取值范围1-4000,但是可以根据实际存储的字符改变存储空间。

max 指示最大的存储大小是2^{31}-1.

 

 

 

 

 

 

日期和时间类型
date

0000-01-01~9999-12-31之间的任意日期。数据格式YYYY-MM-DD

YYYY 表示年份 比如2020

MM 表示月份 比如06

DD指定月份某一天的 比如27

该类型占据3个字节的空间

time

00:00:00.0000000~23:59:59.9999999,数据格式hh:mm:ss[.nnnnnnn]

hh 表示小时0~23

mm 表示分钟0~59

ss 表示秒的两位数 0~59

n* 是0~7位数字,范围0~9999999,它表示秒的小数部分。

time值存储是占5个字节的空间。

datetime

用于存储时间和日期的数据。

从1753年1月1日到9999年12月31日,默认值1900-01-01 00:00:00

占用8字节空间。

datetime2

datetime的扩展,数据范围更大,默认小数精度更高,并有可选的用户定义的精度,格式:YYYY-MM-DD hh:mm:ss[.fractional serconds] 

范围:0001-01-01 ~9999-12-31

smalldatetime

与datetime相似

取值范围:1900-01-01 ~2079-06-06

占用4字节的空间

datetimeoffset

用于定义一个采用24小时制与日期组合并可识别时区的一日内时间

默认格式:YYYY-MM-DD hh:mm:ss[.nnnnnnn][{+|-}hh:mm]

hh -14~+14 时区偏移量

mm 0~59

例如要存储北京时间2020-06-27 12点整,存储2020-06-27 12:00:00+08:00

占用10字节空间

 

 

 

 

 

 

 

 

 

 

 

 

文本与图像数据类型
text

用于存储文本数据,服务器代码页中长度可变的非Unicode数据,最大长度2^{31}-1(2147483647)个字符

当服务器代码页使用双字节字符时,存储仍为2147483647

ntext ntext与text类型作用相同,为长度可变的Unicode数据,最大长度2^{30}-1(1073741823).存储大小是输入字符个数的两倍。
image imgage 是长度可变的二进制数据,从0~2^{31}-1字节,用于存储照片、目录图片或者图画,容量也是:2147483647字节,由系统根据数据的长度自动分配空间。

 

 

 

 

货币数据类型
money

取值范围:-922337213685477.5808~922337213685477.5808

money数据类型中整数部分包含19个数字,小数部门含4个数字,应为money数据类型精度是19,

存储占用8字节的存储空间。

smallmonry

取值范围:-214748.3468~214748.3468

占用4字节存储空间

 

 

 

 

位数据类型
bit 只取0或1的值,长度为1字节,输入非零值系统将其转换为
二进制数据类型
binary(n)

长度为n字节固定长度二进制数据,其中n取值1~8000

存储大小为n字节,再输入binary值时,前面带0x,可以使用使用0~9和A~F表示二进制,例如0xAA5代表AA5.

varbinary(n|max) 可变长度二进制数据,n取值0~8000之间的值,max指示最大存储大小为2^{31}-1字节,存储大小为所输入数据实际长度+2字节。

 

 

 

 

其他数据类型
rowversion 每个数据库都有一个计数器,当对数据库中包含rowversion列的表执行插入或者更新操作是,该计数器值就会增加。此计数器是数据库行版本。一个表只有一个rowversion列。
timestamp 时间戳数据类型,timestamp的数据类型诶rowversion数据类型同义词,提供数据库范围内的唯一值,反应数据修改的相对顺序,是一个单调上升的计数器,此列的值被自动更新。
uniqueidentifier 16字节GUID
cursor 游标数据类型
sql_variant 用于存储文本、图形数据和timestamp数据外的其他任何合法的SqlServer数据
table 用于存储对表或者视图处理后的结果集。
XML 用于存储XML数据,存储大小不能超过2GB

 

你可能感兴趣的:(SQLServer运维和优化)