SQL Server 数据类型及示例

什么是数据类型?

A 数据类型 在 SQL Server 中,定义为任何列或变量可以存储的数据类型。它是对象保存的数据类型,如整数、字符、字符串等。在创建任何表或变量时,除了指定名称外,还可以设置它将存储的数据类型。

如何使用 MS SQL 数据类型

  • 您需要提前定义列或变量可以存储的数据类型。确定数据类型还可以限制用户输入任何意外或无效的数据。
  • 您可以通过为变量或列分配适当的数据类型来有效利用内存,这将仅为相应列的数据分配所需的系统内存量。
  • MS SQL 根据用户需求在 SQL 中提供了广泛的基本数据类型,如日期、二进制图像等。

为什么要使用数据类型?

让我们来举一个简单的例子 注册页面 网站应用程序。三个输入字段是名字、姓氏和联系电话。

这里我们需要实时注意的是:

  • “名和姓” 一直会 拼音.
  • “联系” 一直会 数字.
SQL Server 数据类型
MS SQL 中的数据类型示例
  • 从上图可以看出 “名和姓” 作为一个 字符 “联系” 作为 整数.

显然,在任何应用程序中,所有字段都具有一种或另一种类型的数据。例如,数字、字母、日期等等。

另外,请注意,不同的数据类型具有不同的内存需求。因此,定义列或 变量 使用它来保存数据类型可以有效利用内存。

MS SQL Server 中可用的数据类型

以下是 MS SQL 服务器数据类型列表:

MS SQL服务器 支持以下类别的数据类型:

  • 精确数字
  • 近似数值
  • 日期和时间
  • 字符串
  • Unicode 字符串
  • 二进制字符串
  • 其他数据类型
MS SQL Server 中可用的数据类型

MS SQL 数据类型

SQL 中的精确数字数据类型

在 SQL 服务器中,精确数字有九种子数据类型。

精确数值数据类型

数据类型 描述 下限 上限 内存
比金特 它存储给定范围内的整数 −2^63 (−9,223,372) 2^63−1 (−9,223,372, 036,854,775,807) 8字节
INT 它存储给定范围内的整数 −2^31 (−2,147) 2^31−1 (−2,147, 483,647) 4字节
Smallint 它存储给定范围内的整数 −2^15 (−32,767) 2^15 (−32,768) 2字节
小灵通 它存储给定范围内的整数 0 255 1字节
它可以取 0、1 或 NULL 值。 0 1 1字节/8位列
十进制 用于比例和固定精度数字 −10^38+1 10^381−1 5 到 17 个字节
数字 用于比例和固定精度数字 −10^38+1 10^381−1 5 到 17 个字节
使用货币数据 −922,337、203、685,477.5808 +922,337 8字节
小钱 使用货币数据 - 214,478.3648 +214,478.3647 4字节

精确数字数据类型 SQL服务器 举例说明:

查询:

DECLARE @Datatype_Int INT = 2
PRINT @Datatype_Int

输出

2

句法

小数(P,S)

在这里,

  • P 是精度
  • S 是比例

查询:

DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31
PRINT @Datatype_Decimal

输出

2.31

SQL 中的近似数值数据类型

SQL 近似数值类别包括浮点数和实数。SQL 中的这些数据类型主要用于科学计算。

近似数值数据类型

数据类型 描述 下限 上限 内存 平台精度
浮点数(n) 用于浮点精度数 −1.79E+308 1.79 + 308 取决于 n 的值 7 Digit
真实 用于浮点精度数 −3.40E+38 3.40 + 38 4字节 15 Digit
Syntax:  FLOAT [(n)]

在这里, n 是用于存储尾数的位数 浮动 科学计数法表示的数字。默认情况下,n 的值为 53。

当用户定义浮点型等数据类型时, n 应为 1 至 53 之间的值。

SQL Server 处理 n 作为两个可能值之一。如果 1<=n<=24,则 n 被视为 24。如果 25<=n<=53,则 n 被视为 53。

查询示例:

DECLARE @Datatype_Float FLOAT(24) = 22.1234
PRINT @Datatype_Float

输出

22.1234

SQL 中的日期和时间数据类型

它存储日期和时间类型的数据。

日期和时间数据类型

数据类型 描述 收纳尺寸 准确性 较低范围 上限范围
约会时间 用于指定从 1 年 1753 月 31 日到 9999 年 3.33 月 XNUMX 日的日期和时间。其精度为 XNUMX 毫秒。 8字节 四舍五入为 .000、.003、.007 的增量 1753-01-01 9999-12-31
小日期时间 用于指定从 1 年 0001 月 31 日到 9999 年 100 月 XNUMX 日的日期和时间。精度为 XNUMX 纳秒 4字节,固定 1分钟 1900-01-01 2079-06-06
日期 用于仅存储从 1 年 0001 月 31 日到 9999 年 XNUMX 月 XNUMX 日的日期 3字节,固定 1 天 0001-01-01 9999-12-31
用于存储仅精度为 100 纳秒的时间值。 5字节 100纳秒 00:00:00.0000000 23:59:59.9999999
日期时间偏移 与 datatime 类似,但有时区偏移 10字节 100纳秒 0001-01-01 9999-12-31
日期时间2 用于指定从 1 年 0001 月 31 日到 9999 年 XNUMX 月 XNUMX 日的日期和时间 6字节 100纳秒 0001-01-01 9999-12-31

示例查询:

DECLARE @Datatype_Date DATE = '2030-01-01'
PRINT @Datatype_Date

输出

“2030-01-01”

SQL 中的字符串数据类型

此类别与字符类型相关。它允许用户定义字符的数据类型,该数据类型可以是固定长度或可变长度。它有四种数据类型。以下是字符串 SQL 服务器数据类型及其示例。

字符串数据类型

数据类型 描述 下限 上限 内存
坦克 固定宽度的字符串,最多可存储8,000个字符。 0 个字符 8000 个字符 n 字节
VARCHAR 这是一个宽度可变的字符串 0 个字符 8000 个字符 n 字节 + 2 字节
varchar(最大) 这是一个可变宽度的字符串。它最多可存储 1,073,741,824 个字符。 0 个字符 2^31 个字符 n 字节 + 2 字节
文本 这是一个可变宽度的字符串。它最多可存储 2GB 的文本数据。 0 个字符 2,147,483,647 个字符 n 字节 + 4 字节

示例查询:

DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'
PRINT @Datatype_Char

输出

这是字符数据类型

SQL 中的 Unicode 字符串数据类型

此类别存储使用 UTF-16 字符编码的全部 Unicode 字符。

Unicode 字符串数据类型

数据类型 描述 下限 上限 内存
纳查尔 它是一个固定宽度的 Unicode 字符串 0 个字符 4000 个字符 2 乘以 n 字节
无功字符 它是一个可变宽度的 Unicode 字符串 0 个字符 4000 个字符 2 乘以 n 字节 + 2 字节
文字 它是一个可变宽度的 Unicode 字符串 0 个字符 1,073,741,823个字符 字符串长度的 2 倍

查询示例:

DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'
PRINT @Datatype_nChar

输出

这是 nCharacter 数据类型

SQL 中的二进制字符串数据类型

此类别包含固定长度和可变长度的二进制字符串。

二进制字符串数据类型

数据类型 描述 下限 上限 内存
二进制 它是一个固定宽度的二进制字符串。它最多可存储 8,000 个字节。 0字节 8000字节 n 字节
二进制 这是一个可变宽度的二进制字符串。它最多可存储 8,000 个字节 0字节 8000字节 实际输入数据的长度+2个字节
图片 这是一个可变宽度的二进制字符串。它最多可存储 2GB。 0字节 2,147,483,647字节

查询示例:

DECLARE @Datatype_Binary BINARY(2) = 12;
PRINT @Datatype_Binary

输出

0x000C

SQL 中的其他数据类型

以下是其他不同的 SQL Server 数据类型,描述如下:

数据类型 描述
光标 它的输出是一列 游标列表sp_describe_cursor。
它返回游标变量的名称。
行版本 它为表格行添加版本标记。
阶层 此数据类型表示层次结构中的位置
唯一标识符 从字符表达式转换而来。
Sql_variant 它存储 SQL 服务器支持的数据类型的值。
XML 它将 XML 数据存储在一列中。
空间几何类型 它在平面坐标系中表示数据。
空间地理类型 它表示地球坐标系中的数据。
它存储结果集以供稍后处理。

有趣的事实!

总结

  • 表中的每一列在表创建期间都定义其数据类型。
  • 有六个主要类别和一个其他杂项类别。其他杂项有九个子类别 SQL服务器 可用的数据类型和大小。