一、数值类型
1、精确数字
(1)、bit
bit 只取0或1,输入非0值时系统会将其替换为1。在数据库里占用1个字节。
(2)、tinyint
tinyint 可以存储从0到255 之间的所有整数。在数据库中占用1 个字节。
(3)、smallint
smallint 可以存储从- 2的15次幂(-32768)到2的15次幂(32767)之间的所有整数。在数据库里占用2 字节。
(4)、int
int 可以存储从- 2的31次幂(-2147483648)到2的31次幂 (2147483647)之间的所有整数。在数据库里占用4个字节。
(5)、bigint
bigint 可以存储从- 2的63次幂(-9223372036854775808)到2的63次幂 -1(9223372036854775807)之间的所有整数。在数据库里占用4个字节。
(7)、decimal
decimal 可以存储从-10的38次幂到10的38次幂之间的任意数。使用这种数据类型时,必须指定范围和精度。 范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数。精度必须是从1-38之间的值,默认精度为18。
(8)、numeric
numeric 在功能上等价于decimal
(9)、smallmoney
smallmoney 可以储存从-214748.3648到214748.3648之间的任意数。在数据库里占用4个字节。
(10)、money
money 可以储存从-922337213685477.5808到922337213685477.5808之间的任意数。在数据库里占用8个字节。
2、近似数字
(1)、float
float 可以储存从-1.79E+308到1.79E+308 之间的任意数。在数据库里占用8个字节。
(2)、real
real 可以储存从-3.40E+38到3.40E+38之间的任意数。在数据库里占用4个字节。
3、字符串
(1)、char
char 存储数据时每个字符和符号占用一个字节存储空间。char(n) n的取值范围为1~8000。若输入数据的字符串长度小于n,系统会自动补空格。
(2)、varchar
varchar 储存大小为输入数据的字节的实际长度。varchar(n) n的取值范围为1~8000,也可以填max,max表示最大存储大小是2的31次方-1。若输入数据的字符串长度小于n,按实际储存。
(3)、text
text 储存文本数据,最大长度为2的31次方-1。
4、Unicode字符串
(1)、nchar
nchar 储存固定长度Unicode数据。nchar(n) n的取值范围为1~4000,每一个储存单位占2个字节。
(2)、nvarchar
nvarchar 储存可变长度Unicode数据。nvarchar(n) n的取值范围为1~4000,也可以填max,max表示最大存储大小为2的31次方-1。
(3)、ntext
ntext 与text类型作用相同,最大长度为2的30次方-1。
5、二进制字符串
(1)、binary
binary 储存固定长度二进制数据。binary(n) n的取值范围为1~8000。
(2)、varbinary
varbinary 储存可变长度二进制数据。varbinary(n) n的取值范围为1~8000,也可以天max,max表示最大储存大小为2的31次方-1。
(3)、image
image 长度可变的二进制数据,范围为:0~2的31次方-1。一般用于存储图片。
6、日期和时间
(1)、date
date 储存日期数据,可以表示0001-01-01~9999-12-31(公元元年1月1日到公元9999年12月31日)间的任意日期值。在数据库里占用3个字节。
(2)、time
time 储存时间数据,数据范围为00:00:00.0000000~23:59:59.9999999。在数据库里占用5个字节。
(3)、datetime
datetime 储存日期和时间数据,数据范围从1753年1月1日到9999年12月31日,默认值为1900-01-01 00:00:00,在数据库里占用8个字节。
(4)、datetime2
datetime2 是datetime的扩展类型,其数据范围更大,精确度更高。数据范围从0001-01-01~9999-12-31。
(5)、smalldatetime
smalldatetime 与datetime类型相似,数据范围从1900年1月1日到2079年6月6日,在数据里占用4个字节。
(6)、datetimeoffset
datetimeoffset 储存带时区的时间,在数据里占用10个字节。如:2021-11-21 12:00:00 +8:00。
7、CLR数据类型
(1)、hierarchyid
hierarchyid 储存层次结构树中的节点数据。如 /1/2/3。
8、空间数据类型
(1)、geography
geography 储存球面数据如:经纬度。
(2)、geometry
geometry 储存平面数据如:坐标。
9、其它类型
(1)、rowversion
rowversion 通常用作给表行加版本戳的机制,一张表只能有一个rowversion列,在数据库里占用8个字节。使用create语句创建比表的时候可以设置指定列为rowversion列。
(2)、timestamp
timestamp 通常用作给表行加版本戳的机制,一张表只能有一个timestamp列,在数据库里占用8个字节。timestamp数据与插入数据或者日期和时间没有关系。
(3)、uniqueidentifier
uniqueidentifier 全局唯一标识符(GUID),在数据库里占用16个字节。
(4)、sql_variant
sql_variant 储存除text、ntext、timestamp及自身意外所有的SQLServer数据类型的数据。
(5)、xml
xml 储存xml实例,且实例大小不能超过2GB。
10、自定义类型
基于系统数据类型,由用户自己创建命名的数据类型。