SQL Server 数据类型及示例
什么是数据类型?
A 数据类型 在 SQL Server 中,定义为任何列或变量可以存储的数据类型。它是对象保存的数据类型,如整数、字符、字符串等。在创建任何表或变量时,除了指定名称外,还可以设置它将存储的数据类型。
如何使用 MS SQL 数据类型
- 您需要提前定义列或变量可以存储的数据类型。确定数据类型还可以限制用户输入任何意外或无效的数据。
- 您可以通过为变量或列分配适当的数据类型来有效利用内存,这将仅为相应列的数据分配所需的系统内存量。
- MS SQL 根据用户需求在 SQL 中提供了广泛的基本数据类型,如日期、二进制图像等。
为什么要使用数据类型?
让我们来举一个简单的例子 注册页面 网站应用程序。三个输入字段是名字、姓氏和联系电话。
这里我们需要实时注意的是:
- “名和姓” 一直会 拼音.
- “联系” 一直会 数字.
- 从上图可以看出 “名和姓” 作为一个 字符 和 “联系” 作为 整数.
显然,在任何应用程序中,所有字段都具有一种或另一种类型的数据。例如,数字、字母、日期等等。
另外,请注意,不同的数据类型具有不同的内存需求。因此,定义列或 变量 使用它来保存数据类型可以有效利用内存。
MS SQL Server 中可用的数据类型
以下是 MS SQL 服务器数据类型列表:
MS SQL服务器 支持以下类别的数据类型:
- 精确数字
- 近似数值
- 日期和时间
- 字符串
- Unicode 字符串
- 二进制字符串
- 其他数据类型
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 数据存储在一列中。 |
空间几何类型 | 它在平面坐标系中表示数据。 |
空间地理类型 | 它表示地球坐标系中的数据。 |
表 | 它存储结果集以供稍后处理。 |
有趣的事实!
- CHAR 数据类型 检索数据时比 SQL VARCHAR 数据类型更快。
总结
- 表中的每一列在表创建期间都定义其数据类型。
- 有六个主要类别和一个其他杂项类别。其他杂项有九个子类别 SQL服务器 可用的数据类型和大小。