SQL Server2012 的数据类型

数据类型是一种属性,用于指定对象可保存的数据的类型,SQL Server中支持多种数据类型,包括字符类型、数值类型以及日期类型等。数据类型相当于一个容器,容器的大小决定了装的东西的多少,将数据分为不同的类型可以节省磁盘空间和资源。

1.整数

image.png

int是Sql Server主要整数类型。tinyint,smallint,int 不会自动转成bigint。
大于 2,147,483,647 的整数常量将转换为 decimal 数据类型,而不是 bigint 数据类型。

2.bit

  • 可以取值为1、0或NULL的integer数据类型。

  • 字符串值 TRUE 和 FALSE 可转换为 bit 值:TRUE 将转换为 1,FALSE 将转换为 0。

  • 转换为 bit 会将任何非零值升为 1。

3.decimal[(p[,s])]和 numeric[(p[,s])]

  • 固定精度和小数位数。 使用最大精度时,有效值的范围为 - 10^38 +1 到 10^38 - 1。

  • decimal 的 ISO 同义词为 dec 和 dec(p、s)。 numeric在功能上等价于 decimal。

  • decimal(5,5)和decimal(5,0)为不同数据类型。

  • 常量 12.345 将被转换为精度为 5,小数位数为 3 的 numeric 值。

  • 默认情况下,将数字转换为较低精度和小数位数的 decimal 或 numeric 值时,SQL Server 会进行舍入。 但如果 SET ARITHABORT 选项为 ON,则发生溢出时,SQL Server 会产生错误。 若仅降低精度和小数位数,则不会产生错误。

4.货币(值)数据类型

image.png

money 和 smallmoney 数据类型精确到它们所代表的货币单位的万分之一。

5.float和real

image.png

用于表示浮点数值数据的大致数值数据类型。 浮点数据为近似值。real 的 ISO 同义词为 float(24)

6.date \datetime\datetime2\datetimeoffset\smalldatetime\time

image.png

7.char[(n)]和varchar[(n|max)]

  • n 用于定义字符串长度,并且它必须为 1 到 8,000 之间的值,

  • 如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。 如果在使用 CAST 和 CONVERT 函数时未指定 n,则默认长度为 30

  • 如果列数据项的大小一致,则使用 char。

  • 如果列数据项的大小差异相当大,则使用 varchar。

  • 如果列数据项大小相差很大,而且大小可能超过 8,000 字节,请使用 varchar(max)。

8.ntext\text和image

  • 在 Microsoft SQL Server 的未来版本中将删除 ntext、text 和 image 数据类型。 **

  • 请避免在新开发工作中使用这些数据类型,并考虑修改当前已使用这些数据类型的应用程序。 请改用 nvarchar(max)varchar(max)varbinary(max)

9.nchar[(n)]和nvarchar[(n|max)]

nchar [ ( n ) ]

  • 固定长度的 Unicode 字符串数据。 n 用于定义字符串长度,并且它必须为 1 到 4,000 之间的值。 存储大小为 n 字节的两倍。 当排序规则代码页使用双字节字符时,存储大小仍然为 n 个字节。 根据字符串的不同,n 个字节的存储大小可能小于为 n 指定的值。 nchar 的 ISO 同义词为national char 和 national character。

nvarchar [ ( n | max ) ]

  • 可变长度的 Unicode 字符串数据。 n 用于定义字符串长度,并且它可以为 1 到 4,000 之间的值。 max 指示最大存储大小是 2^31-1 个字节 (2 GB)。 存储大小(以字节为单位)是所输入数据实际长度的两倍 + 2 个字节。 nvarchar 的 ISO 同义词为 national char varying 和 national character varying。

  • 如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。 如果没有使用 CAST 函数指定 n,则默认长度为 30。

  • 如果列数据项的大小可能相同,请使用 nchar。

  • 如果列数据项的大小可能差异很大,请使用 nvarchar

10.binary[(n)]和varbinary[(n|max)]

binary [ ( n ) ]

  • 长度为 n 字节的固定长度二进制数据,其中 n 是从 1 到 8,000 的值。 存储大小为 n 字节。

varbinary [ ( n | max) ]

  • 可变长度二进制数据。 n 的取值范围为 1 至 8,000。 max 指示最大存储大小是 2^31-1 个字节。 存储大小为所输入数据的实际长度 + 2 个字节。 所输入数据的长度可以是 0 字节。 varbinary 的 ANSI SQL 同义词为 binary varying。

  • 如果列数据项的大小一致,则使用 binary。

  • 如果列数据项的大小差异相当大,则使用 varbinary。

  • 当列数据条目超出 8,000 字节时,请使用 varbinary(max)。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容