1:字符串数据类型:
char(n) 固定长度的字符串。最多8,000 个字符。varchar(n) 可变长度的字符串。最多8,000 个字符。
varchar(max) 可变长度的字符串。最多 1,073,741,824 个字符。
text 可变长度的字符串。最多2GB 字符数据。
nchar(n) 固定长度的 Unicode 数据。最多 4,000 个字符。
nvarchar(n) 可变长度的 Unicode 数据。最多4,000 个字符。
nvarchar(max) 可变长度的 Unicode 数据。最多536,870,912 个字符。
ntext 可变长度的 Unicode 数据。最多 2GB 字符数据。
bit 允许 0、1 或 NULL
binary(n) 固定长度的二进制数据。最多8,000 字节。
varbinary(n) 可变长度的二进制数据。最多 8,000 字节。
varbinary(max) 可变长度的二进制数据。最多 2GB 字节。
image 可变长度的二进制数据。最多2GB。
tinyint 1 字节 允许从 0 到 255 的所有数字。
smallint 2 字节 允许从 -32,768 到 32,767 的所有数字。
int 4 字节 允许从 -2,147,483,648 到 2,147,483,647 的所有数字。
bigint 8 字节 允许介于 -9,223,372,036,854,775,808和9,223,372,036,854,775,807 之间的所有数字。
decimal(p,s) 5-17 字节 固定精度和比例的数字。允许从 -10^38 +1 到 10^38 -1 之间的数字。p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。
numeric(p,s) 5-17 字节 固定精度和比例的数字。允许从 -10^38 +1 到 10^38 -1 之间的数字。p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。
smallmoney 4 字节 介于 -214,748.3648 和 214,748.3647 之间的货币数据。
money 8 字节 介于-922,337,203,685,477.5808 和 922,337,203,685,477.5807 之间的货币数据。
float(n) 4 或 8 字节 从 -1.79E + 308 到 1.79E + 308 的浮动精度数字数据。参数 n 指示该字段保存 4 字节还是 8 字节。float(24) 保存 4 字节,而 float(53) 保存 8 字节。n 的默认值是 53。
real 4字节 从-3.40E + 38 到3.40E + 38 的浮动精度数字数据。
5: Date 类型:
datetime 8 字节 从1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 3.33 毫秒。
datetime2 6-8 字节 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 100 纳秒。
smalldatetime 4 字节 从1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度为 1 分钟。
date 3 字节。 从 0001 年 1 月 1 日 到 9999 年 12 月 31 日。
time 3-5 字节 仅存储时间。精度为100 纳秒。
datetimeoffset 8-10 字节 datetime2 相同,外加时区偏移。
timestamp 存储唯一的数字,每当创建或修改某行时,该数字会更新。timestamp基于内部时钟,不对应真实时间。每个表只能有一个timestamp 变量。
区别:
1、char,nchar,varchar,nvarchar有什么区别?
char和nchar是定长字符串类型,varchar和nvarchar是变长字符串类型。也就是说如果字段类型为char(10),那么即使你输入的字符为'abc',在数据库中也会保存成' abc',字段前面会被自动补上7个空格。而使用varchar(10)则前面不会补空格。
至于前面那个n有什么不同,有n代表支持unicode字符,而没有n的则不支持,text和ntext的区别也是一样。
2、text和char及varchar的区别
text和char及varchar的区别在于,char和varchar字段的数据是保存在表中,而text字段可以保存大容量的文本,数据是保存在另外的空间里,当然在表面上看来并没有什么区别。