SQL的数据类型

SQL的数据类型

    • 一、什么是SQL的数据类型?
    • 二、SQL Server数据类型
      • 1.Character 字符串
      • 2.Unicode 字符串
      • 3.VARCHAR与NVARCHAR比较
      • 4.Binary 类型:
      • 5.Number 数字类型:
      • 6.Date 类型:
      • 7.其他数据类型(了解)

一、什么是SQL的数据类型?

在SQL中数据类型是一个标签,它能在任意一列、变量或者表达式中区别出不同的数据类型。如何理解不同的数据类型,比如数字“1”和文本“中”这两个就是不同的数据类型。使用不同的数据类型能帮助我们便于 SQL 了解每个列期望存储什么类型的数据的指南,它也标识了 SQL 如何与存储的数据进行交互。

二、SQL Server数据类型

1.Character 字符串

数据类型 描述
char(n) 固定长度的字符串。最多 8,000 个字符
varchar(n) 可变长度的字符串。最多 8,000 个字符。
varchar(max) 可变长度的字符串。最多 1,073,741,824 个字符。
text 可变长度的字符串。最多 2GB 字符数据。

2.Unicode 字符串

数据类型 描述
nchar(n) 固定长度的 Unicode 数据。最多 4,000 个字符。
nvarchar(n) 可变长度的 Unicode 数据。最多 4,000 个字符。
nvarchar(max) 可变长度的 Unicode 数据。最多 536,870,912 个字符。
ntext 可变长度的 Unicode 数据。最多 2GB 字符数据。

3.VARCHAR与NVARCHAR比较

比较项 VARCHAR NVARCHAR
字符数据类型 可变长度的非Unicode字符 可变长度,Unicode和非Unicode字符,如:中文,日语和韩语。
最大长度 最多 8000 个字符 最多 4000 个字符
字符大小 每个字符占用 1 个字节 每个Unicode/非Unicode字符占用 2 个字节
使用 当数据长度为可变或可变长度列且实际数据始终小于容量时使用 仅限存储,仅在需要Unicode支持时使用,例如:汉字,日语或韩文字符。

4.Binary 类型:

数据类型 描述
bit 允许 0、1 或 NULL
binary(n) 固定长度的二进制数据。最多 8,000 字节
varbinary(n) 可变长度的二进制数据。最多 8,000 字节。
varbinary(max) 可变长度的二进制数据。最多 2GB 字节。
image 可变长度的二进制数据。最多 2GB。

5.Number 数字类型:

数据类型 描述 存储
tinyint 允许从 0 到 255 的所有数字。 1字节
smallint 允许从 -32,768 到 32,767 的所有数字。 2字节
int 允许从 -2,147,483,648 到 2,147,483,647 的所有数字。 4字节
bigint 允许介于 -9,223,372,036,854,775,808 和 9,223,372,036,854,775,807 之间的所有数字。 8字节
decimal(p,s) 固定精度和比例的数字。允许从 -10^38 +1 到 10^38 -1 之间的数字。p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。s 参数指示小数点右侧存储的最大位数。s 必须 是 0 到 p 之间的值。默认是 0。 5- 17 字节
numeric(p,s) 固定精度和比例的数字。允许从 -10^38 +1 到 10^38 -1 之间的数字。p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。 5- 17 字节
smallmoney 介于 -214,748.3648 和 214,748.3647 之间的货币数据。 4字节
money 介于 -922,337,203,685,477.5808 和922,337,203,685,477.5807 之间的 货币数据。 8字节
float(n) 从 -1.79E + 308 到 1.79E + 308 的浮动精度数字数据。 参数 n 指示该字 段保存 4 字节还是 8 字节。float(24) 保存 4 字节,而 float(53) 保存 8 字 节。n 的默认值是 53。 4或8字节
real 从 -3.40E + 38 到 3.40E + 38 的浮动精度数字数据。 4字节

6.Date 类型:

数据类型 描述 存储
datetime 从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 3.33 毫秒。 8 bytes
datetime2 从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 100 纳秒。 6-8 bytes
smalldatetime 从 1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度为 1 分钟。 4 bytes
date 仅存储日期。从 0001 年 1 月 1 日 到 9999 年 12 月 31 日。 3 bytes
time 仅存储时间。精度为 100 纳秒。 3-5 bytes
datetimeoffset 与 datetime2 相同,外加时区偏移。 8-10 bytes
timestamp 存储唯一的数字,每当创建或修改某行时,该数字会更新。timestamp 基于内部时钟,不对应真实时间。每个表只能有一个 timestamp 变量。

7.其他数据类型(了解)

数据类型 描述
sql_variant 存储最多 8,000 字节不同数据类型的数据,除了 text、ntext 以及 timestamp。
uniqueidentifier 存储全局标识符 (GUID)。
xml 存储 XML 格式化数据。最多 2GB。
cursor 存储对用于数据库操作的指针的引用。
table 存储结果集,供稍后处理。

你可能感兴趣的:(sql,sqlserver,数据库)