扩大
缩小
  

八、SQLServer数据类型

bigint、int、smallint、tinyint

使用整数数据的精确数字数据类型。 若要节省数据库空间,请使用能够可靠包含所有可能值的最小数
据类型。 例如,对于一个人的年龄,tinyint 就足够了,因为没人活到 255 岁以上。 但对于建筑物的
年龄,tinyint 就不再适应,因为建筑物的年龄可能超过 255 年。

bit

SQL Server 数据库引擎优化位列的存储。 如果表中的 bit 列为 8 列或更少,则这些列作为 1 个字节
存储。 如果 bit 列为 9 到 16 列,则这些列作为 2 个字节存储,以此类推。字符串值 TRUE 和 FALSE
可转换为 bit 值:TRUE 将转换为 1,FALSE 将转换为 0。
性别 bool值

numeric和decimal

decimal[ (p[ ,s] )] 和 numeric[ (p[ ,s] )]
固定精度和小数位数。 使用最大精度时,有效值的范围为 - 10^38 +1 到 10^38 - 1。 decimal 的
ISO 同义词为 dec 和 dec(p,s) 。 numeric 在功能上完全等同于 decimal 。高精度,小数点后面最多
可以有38位
金额---精度很高,小数点后面可能有很多位;后面的小数点精度可以达到38位

smallmoney和money

小数点存储都为4位,如果出现第5位,根据第5位做四舍五入。

float和real

这两个类型保存的是一个近似值。保存的数据,可能和真是要保存的数据有细微的偏差。
注意:数据筛选的时候,只适合> >= < <= 不适合去等于
float [ (n ) ] 其中 n 为用于存储 float 数值尾数的位数(以科学记数法表示),因此可以确定精度和存
储大小 。 如果指定了 n,则它必须是介于 1 和 53 之间的某个值 。 n 的默认值为 53 。

 

date类型 

date类型可用于需要一个日期值而不需要时间部分时。

datetime 说明

可用于需要同时包含日期和时间信息的值。

time 

datetime2

smalldatetime

datetimeoffset 

char和varchar

char [ ( n ) ] 固定大小字符串数据 。 n 用于定义字符串大小(以字节为单位),并且它必须为 1 到
8,000 之间的值 。 对于单字节编码字符集(如拉丁文),存储大小为 n 个字节,并且可存储的字符数
也为 n。 对于多字节编码字符集,存储大小仍为 n 个字节,但可存储的字符数可能小于 n。 char 的
ISO 同义词是 character 。 有关字符集的详细信息,请参阅单字节和多字节字符集。
varchar [ ( n | max ) ] 可变大小字符串数据 。 使用 n 定义字符串大小(以字节为单位),可以是介
于 1 和 8,000 之间的值;或使用 max 指明列约束大小上限为最大存储 2^31-1 个字节 (2GB)。 对于
单字节编码字符集(如拉丁文),存储大小为 n + 2 个字节,并且可存储的字符数也为 n。 对于多字
节编码字符集,存储大小仍为 n + 2 个字节,但可存储的字符数可能小于 n 。 varchar 的 ISO 同义词
是 charvarying 或 charactervarying

nchar 和 nvarchar

nchar [ ( n ) ]
无论存储中文还是英文、数字等,每个字符都是占用两个字节。
固定大小字符串数据。 n 用于定义字符串大小(以双字节为单位),并且它必须为 1 到 4,000 之间的
值。 存储大小为 n 字节的两倍。 对于 UCS-2 编码,存储大小为 n 个字节的两倍,并且可存储的字
符数也为 n。 对于 UTF-16 编码,存储大小仍为 n 个字节的两倍,但可存储的字符数可能小于 n,因
为补充字符使用两个双字节(也称为代理项对)。 nchar 的 ISO 同义词是 national char 和 national
character。

nvarchar [ ( n | max ) ]

可变大小字符串数据。 n 用于定义字符串大小(以双字节为单位),并且它可能为 1 到 4,000 之间的
值。 max 指示最大存储大小是 2^30-1 个字符 (2 GB)。 存储大小为 n 字节的两倍 + 2 个字节。 对
于 UCS-2 编码,存储大小为 n 个字节的两倍 + 2 个字节,并且可存储的字符数也为 n。 对于 UTF-
16 编码,存储大小仍为 n 个字节的两倍 + 2 个字节,但可存储的字符数可能小于 n,因为补充字符使
用两个双字节(也称为代理项对)。 nvarchar 的 ISO 同义词是 national char varying 和 national
character varying。数据类型
何时使用...
binary
列数据项的大小一致。
varbinary
列数据项的大小差异相当大。
varbinary(max)
列数据条目超出 8,000 字节。

ntext、text和images

ntext
长度可变的 Unicode 数据,字符串最大长度为 2^30 - 1 (1,073,741,823) 个字节。 存储大小是所输
入字符串长度的两倍(以字节为单位)。
text
服务器代码页中长度可变的非 Unicode 数据,字符串最大长度为 2^31-1 (2,147,483,647) 个字节。
当服务器代码页使用双字节字符时,存储仍是 2,147,483,647 字节。 根据字符串,存储大小可能小于
2,147,483,647 字节。
image
长度可变的二进制数据,从 0 到 2^31-1 (2,147,483,647) 个字节。

Binary和varbinary

参数
binary [ ( n ) ] 长度为 n 字节的固定长度二进制数据,其中 n 是从 1 到 8,000 的值。 存储大小为 n
字节。
varbinary [ ( n | max) ] 可变长度二进制数据。 n 的取值范围为 1 至 8,000。 max 指示最大存储大小
是 2^31-1 个字节。 存储大小为所输入数据的实际长度 + 2 个字节。 所输入数据的长度可以是 0 字
节。
备注:
如果没有在数据定义或变量声明语句中指定 n ,则默认长度为 1。 如果没有使用 CAST 函数指定
n ,则默认长度为 30。

uniqueidentifier 说明

备注
uniqueidentifier 数据类型的列或局部变量可通过以下方式初始化为一个值 :---全球唯一的一个值
通过使用 NEWID 或 NEWSEQUENTIALID 函数。
通过从 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 形式的字符串常量进行转换,其中,每个 x 都是
0-9 或 a-f 范围内的十六进制数字。 例如,6F9619FF-8B86-D011-B42D-00C04FC964FF 为有
效的 uniqueidentifier 值 。比较运算符可与 uniqueidentifier 值一起使用 。 不过,排序不是通过比较两个值的位模式来实现的。
可针对 uniqueidentifier 值执行的运算只有比较运算(<>、<、>、<=、>=)以及检查是否为
NULL(IS NULL 和 IS NOT NULL)。 不能使用其他算术运算符。 除 IDENTITY 之外的所有列约束和
属性均可对 uniqueidentifier 数据类型使用 。
具有更新订阅的合并复制和事务复制使用 uniqueidentifier 列来确保在表的多个副本中唯一地标识行。

转换uniqueidentifier数据

出于从字符表达式转换的目的将 uniqueidentifier 类型视为字符类型,因此在转换到字符类型时要遵循
截断规则 。 也即,如果将字符表达式转换为不同大小的字符数据类型,则对于新数据类型而言过长的
值将被截断。 请参阅“示例”部分。

XML 说明

参数
CONTENT
将 xml 实例限制为格式正确的 XML 片段。 XML 数据的顶层可包含多个零或多个元素。 还允许在顶
层使用文本节点。
此选项为默认行为。
DOCUMENT
将 xml 实例限制为格式正确的 XML 片段。 XML 数据必须且只能有一个根元素。 不允许在顶层使用
文本节点。
xml_schema_collection
XML 架构集合的名称。 若要创建类型化的 xml 列或变量,可选择指定 XML 架构集合名称。 有关类
型化和非类型化 XML 的详细信息。
备注
xml 数据类型实例所占据的存储空间大小不能超过 2 GB。
CONTENT 和 DOCUMENT 方面仅应用于类型化的 XML
posted @ 2023-09-18 09:10  风筝遇上风  阅读(7)  评论(0编辑  收藏  举报