SQL的数据类型

一、什么是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比较

比较项VARCHARNVARCHAR
字符数据类型可变长度的非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存储结果集,供稍后处理。
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值