有许多类型的数据与SQLServer兼容,重要的是要了解它们是什么以避免不兼容的数据类型出现问题。理解兼容的数据类型也是理解数据类型优先级的基础,它决定了在处理两种不同类型的对象时会产生什么类型的数据。在本指南中,我们将介绍SQLServer支持的所有数据类型,以及使用Transact-SQL或Microsoft.NETFramework定义自定义数据类型的过程。
什么是SQLServer?
在深入了解SQLServer支持的许多数据类型之前,先快速回顾一下SQLServer是什么。Microsoft开发了SQLServer作为关系数据库管理系统(RDBMS)。SQLServer使用SQL,这是使用各种关系数据库的标准语言。Microsoft的SQLServer不再专属于Windows环境,现在可以在Linux上使用,这对于有兴趣使用SQLServer的人来说是个好消息。此外,微软的云平台Azure支持SQLServer。因此,如果您需要一个地方来托管它,那么没有比原生解决方案更好的地方了。
微软将其称为“最了解SQLServer的云”,AzureSQLServer确实受益于无缝集成、简单性和可靠性,因为服务器和云基础设施都是由同一家公司开发和维护的。无论您在何处托管SQLServer,都必须注意SQLServer使用的SQL语言略有不同。Microsoft开发了Transact-SQL(T-SQL),它与标准SQL非常相似,但定义了一组对SQLServer编程所必需的专有概念。如果您熟悉SQL,则使用Transact-SQL并不难,您将能够轻松使用SQLServer。但有效使用SQLServer的另一个关键方面是了解它支持的所有数据类型。
为什么数据类型很重要?
错误的数据类型会导致数据库性能、查询优化和数据截断等问题。这些问题通常是开发团队首先意识到的,因为它们是跟踪速度和性能的问题。尽管如此,问题可能会蔓延到整个组织,导致数据完整性问题和其他严重挑战。如果您是SQLServer的新手,那么数据类型的绝对数量可能会让人不知所措。
它们组织得井井有条并且有据可查,只要您了解计划存储的数据类型,就可以更容易地找到所需的内容。当然,虽然您可以随时参考,但获得SQLServer数据类型的知识对于长期的效率和优化至关重要。深入研究后,您会发现存在一些重叠,并且只有在您完全了解所有选项的情况下,才能知道何时选择浮点数而不是十进制数或选择可变长度而不是固定值。
有哪些不同的数据类别?
下面是SQLServer中每个数据类别的概览,以及适合每个数据类型的所有数据类型。
精确数字
使用精确的数字数据类型时,了解您的选项很重要,这样您就可以选择适合您的用例的最小数据类型。还需要选择与您存储的数字类型相对应的数据类型,例如货币的货币或小货币。
Unicode字符串
如果您不熟悉Unicode,它是一种通用标准,它为每个字符分配一个唯一编号,从而允许对书面文本进行一致的编码和表示。例如,Unicode中的“嘿”将被分解如下:U+0048(“H”)、U+0065(“E”)和U+0059(“Y”)。SQLServer支持使用这些字符串的所有Unicode字符数据。它们可以是固定的或可变的。
近似数值
当数值数据不能精确表示时,它被称为“浮点”数值数据,您可以使用近似数数据类型来存储它。对于浮点数据类型,数字使用科学计数法写入,因此825,000将存储为8.5x105。浮点数可以非常大或非常小。浮点数和十进制数据类型都可以存储带有小数的数字——不同之处在于浮点数需要更少的存储空间,而小数则更精确。SQLServer支持浮点数和实数数据类型的两种近似数值。
字符串有一个不言自明的名称:这些数据类型用于存储字符。它们的大小可以是固定的或可变的。

二进制字符串
二进制数据类型支持固定或可变的数据字符串。字符串和二进制字符串之间的区别在于它们包含的数据:字符串通常存储文本,但也可以存储数字或符号。二进制字符串通常以字节的形式存储非传统数据,例如图片。
日期和时间
这些数据类型明确设计用于存储日期和时间。有些支持时区意识,有些则不支持。在处理日期和时间时,选择一种保持条目格式一致的数据类型并选择一种足够灵活以支持您需要的详细程度(即一天中的时间、时区等)的数据类型至关重要。
其他数据类型
SQLServer中存在其他数据类型,但它们并不完全适合上述任何类别。因此,这些数据类型仅存在于“其他”下。其他数据类型包括:
定义自定义数据类型
如果您的自定义数据类型在上述任何类别中都不是特定的,您仍然可以将其带到SQLServer上,只要您提前设置它。使用Transact-SQL或Microsoft.NETFramework,开发人员可以为他们的项目定义自定义数据类型。
在创建自定义数据类型时,SQLServer的界面有一些工具可以帮助您生成Transact-SQL。您需要指定的字段包括架构、名称、基础数据类型、长度、允许空值、字节大小、默认值中的可选字段以及数据类型必须遵循的任何规则。例如,电子邮件字段可能会使用varchar基础类型,并且必须包含@和.,以及不允许使用的字符列表。然后,您将设置一个适合您需要的最大长度,并且字节数将自动填充到界面中。
如果您需要创建自己的数据类型,Microsoft会提供更多信息。
选择正确的数据类型
使用SQLServer时,为正在使用的任何数据选择正确的数据类型至关重要。不这样做可能会导致数据质量问题或数据丢失,例如在您使用数据类型来存储不打算这样做的日期和时间的情况下。错误的数据类型也会对查询和性能产生负面影响。
例如,如果您需要存储整数,您可能会认为只需选择精确的数字数据类型就不会出错。不必要地使用bigint类型来存储像年龄这样的小而简单的数字会导致资源浪费。
大多数人会告诉您在处理数字数据时从smallint、integer、bigint或decimal中进行选择。如果您正在处理非常大的数字,他们可能会建议decfloat或float。当您处理特定用例时,此建议过于简单和笼统。
本文来源:国外服务器--sqlserver支持的数据类型(数据库数据类型)
本文地址:https://www.idcbaba.com/guowai/5232.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



