程序开发 > MsSql > 正文

MsSql Server 数据类型

亮术网 2020-09-06 本网原创

MsSql数据类型包括数字型、字符型、日期和时间型、Unicode 数据类型、二进数据类型、特殊数据类型,这些类型中又包含若干子类型,下面一一介绍。

 

一、数字数据类型

1、整型

tinyint:存储 0 — 255 之间的整数,只占用一个字节,通常用于(选项)分类不多时;

smallint:短整型,存储 -32678 — 32767 之间的整数,占用2个字节,通常用于能确定数值范围在其间的情况;

int:存储 -2,147,483,648 — 2,147,483,647 之间的整数,只占用4个字节,常用类型;

 

2、浮点型(小数)

float:是一种近似数值类型,存储 -1.79E+308 — 1.79E+308 之间的任意数,占用4个字节,单精度;

real:也是近似数值类型,存储 -3.40E+38 — 3.40E+38 之间的浮点数,占用4个字节,单精度;

decimal:精确数值类型,存储 -1038-1 — 1038-1 之间的固定精度和范围的数据,占用 2 — 17 个字节,有两个参数:p(精度)和 s(小数位数);

numeric:与 decimal 相同;

 

3、货币型

smallmoney:用于存储钱和货币值,范围 -214748.3648 — 214748.3647,占用 4 个字节,可以精确到货币单位的万分之一;

money:用于存储钱和货币值,范围 -263(-922,337,203,685,477.5808) — 263 -1 (+922,337,203,685,477.5807) ,占用 8 个字节,可以精确到货币单位的万分之一;

 

 

二、布尔型

bit:用于存储布尔值,只占1位,取值 0(false) 或 1(true);

 

 

三、字符型

char:用于存储指定长度的非 unicode 的数据,char[(n)],n 必须是一个 1 — 8000 之间的数值,即最多可存储 8000 个英文字母,4000 个汉字,如果定义 char(8),实际只有 6 个英文字母,也要占8个字节;

varchar:跟 char 相似,所不同的是存储可变长度的字符,有多少字符分配多少空间,如 定义 varchar(30),实际只有 10 个字符,只分配10个字符;

text:用于存储大量可变长度的非 Unicode 字符,最多可存储 231-1 个字符;

 

nchar:用于存储指定长度的 unicode 的数据,与 char 不同的是,要占用双倍存储空间;

nvarchar:跟 nchar 相似,所不同的是存储可变长度的字符,有多少字符分配多少空间;

ntext:用于存储大量可变长度的 Unicode 字符,要占用双倍存储空间,最多可存储 230-1 个字符;

 

 

四、日期和时间型

datetime:用于存储日期和时间,范围 1753年1月1日 — 9999年12月3 1日,精确到三百分之一秒(或3.33毫秒);

smalldatetime:用于存储日期和时间,范围 1900年1月1日 — 2079年6月6日,精确到1分钟;

 

 

五、二进数据类型

binary:用于存储固定长度的二进制数据,最大长度为 8000 字节;

varbinary:用于存储可变长度的二进制数据,最大长度为 8000 字节;

image:用于存储可变长度的二进制数据,最大长度为 231 - 1(2,147,483,647)字节;

 

 

六、特殊数据类型

cursor:游标引用;

timestamp:用于表示数据库中数据修改的相对顺序,以二进投影的格式表示,一个表中只能有一个 timestamp 列;

Uniqueidentifier:用于存储一个全局唯一标识符(GUID),它由 16 字节的十六进制数字组成;

table:用于存储临时的结果集;

sql_variant:用于存储 MsSQL Server 支持的数据类型(text、ntext、timestamp 和 sql_variant 除外)值。