当前位置: 首页 > article >正文

SQL Server 中常见的数据类型及其详细解释、内存占用和适用场景

以下是 SQL Server 中常见的数据类型及其详细解释、内存占用和适用场景:

数据类型类别数据类型解释内存占用适用场景
整数类型bigint用于存储范围较大的整数,范围是 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807)8 字节需要存储非常大整数的场景,如统计海量数据的数量等。
int常用的整数类型,范围是 -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647)4 字节一般整数存储场景,如用户 ID、商品数量等。
smallint范围是 -2^15 (-32,768) 到 2^15-1 (32,767)2 字节存储较小范围整数的场景,如表示月份(1 - 12)等。
tinyint无符号整数,范围是 0 到 2551 字节存储非常小的正整数,如年龄(一般不会超过 255)等。
精确数值类型decimal(p, s)
numeric(p, s)
p 表示精度(总位数),s 表示小数位数。可精确存储小数,范围从 -10^38 +1 到 10^38 - 1。
例如 decimal(5, 2) 可存储如 123.45 这样的数。
p <= 9 时占 5 字节;
9 < p <= 19 时占 9 字节;
19 < p <= 28 时占 13 字节;
28 < p <= 38 时占 17 字节
需要精确计算小数的场景,如财务数据计算,货币金额存储等。
近似数值类型float(n)n 表示精度,n 为 1 - 24 时相当于 float(24),使用 4 字节;n 为 25 - 53 时相当于 float(53),使用 8 字节。
可表示范围约为 -1.79E + 308 到 1.79E + 308
4 字节(n 为 1 - 24)或 8 字节(n 为 25 - 53)不需要精确计算的浮点数存储场景,如科学计算中的近似值。
real单精度浮点数,范围约为 -3.40E + 38 到 3.40E + 384 字节对精度要求不高的浮点数存储,如一些统计数据的近似值。
日期和时间类型date仅存储日期,范围从 0001 - 01 - 01 到 9999 - 12 - 313 字节只需要存储日期信息的场景,如生日、订单日期等。
time仅存储时间,精度可到 100 纳秒,范围从 00:00:00.0000000 到 23:59:59.99999993 - 5 字节(根据精度)只需要存储时间信息的场景,如会议时间、营业时间等。
datetime存储日期和时间,范围从 1753 - 01 - 01 00:00:00 到 9999 - 12 - 31 23:59:59,精度为 3.33 毫秒8 字节同时需要日期和时间信息,且对精度要求不是特别高的场景。
datetime2相比 datetime 有更高的精度,范围从 0001 - 01 - 01 00:00:00 到 9999 - 12 - 31 23:59:59.9999999,精度可到 100 纳秒6 - 8 字节(根据精度)需要更高精度日期和时间存储的场景。
smalldatetime存储日期和时间,范围从 1900 - 01 - 01 00:00:00 到 2079 - 06 - 06 23:59:59,精度为 1 分钟4 字节对日期和时间范围要求较小,且精度要求不高的场景。
datetimeoffset存储日期、时间和时区偏移量,范围从 0001 - 01 - 01 00:00:00 到 9999 - 12 - 31 23:59:59.9999999,精度可到 100 纳秒8 - 10 字节(根据精度)涉及不同时区日期和时间存储的场景。
字符串类型char(n)固定长度的字符串,n 表示字符串长度,范围是 1 - 8000。如果存储的字符串长度小于 n,会用空格填充。n 字节存储长度固定的字符串,如身份证号码(固定 18 位)等。
varchar(n)可变长度的字符串,n 表示最大长度,范围是 1 - 8000。只占用实际存储字符串的长度加 2 字节(用于记录长度)。实际字符串长度 + 2 字节存储长度可变的字符串,如用户名、地址等。
text用于存储大量文本数据,最大长度为 2^31 - 1(2,147,483,647)个字符。实际字符串长度 + 4 字节存储较长的文本内容,如文章内容、备注信息等,但从 SQL Server 2016 开始不推荐使用,建议用 varchar(max) 替代。
varchar(max)可变长度的字符串,最大长度为 2^31 - 1(2,147,483,647)个字符。实际字符串长度 + 2 字节(长度小于 8000 时)或 4 字节(长度大于 8000 时)存储非常长的可变长度字符串,如大型文档等。
Unicode 字符串类型nchar(n)固定长度的 Unicode 字符串,n 表示字符串长度,范围是 1 - 4000。每个字符占 2 字节。2 * n 字节存储固定长度的 Unicode 字符串,如一些多语言环境下固定长度的名称。
nvarchar(n)可变长度的 Unicode 字符串,n 表示最大长度,范围是 1 - 4000。只占用实际存储字符串的长度加 2 字节(用于记录长度),每个字符占 2 字节。2 * 实际字符串长度 + 2 字节存储可变长度的 Unicode 字符串,适用于多语言环境下的用户名、描述等。
ntext用于存储大量 Unicode 文本数据,最大长度为 2^30 - 1(1,073,741,823)个字符。2 * 实际字符串长度 + 4 字节存储较长的 Unicode 文本内容,但从 SQL Server 2016 开始不推荐使用,建议用 nvarchar(max) 替代。
nvarchar(max)可变长度的 Unicode 字符串,最大长度为 2^31 - 1(2,147,483,647)个字符。每个字符占 2 字节。2 * 实际字符串长度 + 2 字节(长度小于 4000 时)或 4 字节(长度大于 4000 时)存储非常长的可变长度 Unicode 字符串,适用于多语言环境下的大型文档等。
二进制类型binary(n)固定长度的二进制数据,n 表示长度,范围是 1 - 8000。如果存储的二进制数据长度小于 n,会用 0x00 填充。n 字节存储固定长度的二进制数据,如加密密钥等。
varbinary(n)可变长度的二进制数据,n 表示最大长度,范围是 1 - 8000。只占用实际存储二进制数据的长度加 2 字节(用于记录长度)。实际二进制数据长度 + 2 字节存储可变长度的二进制数据,如图片、文件等较小的二进制对象。
image用于存储大量二进制数据,最大长度为 2^31 - 1(2,147,483,647)字节。实际二进制数据长度 + 4 字节存储较大的二进制对象,如大型图片、视频等,但从 SQL Server 2016 开始不推荐使用,建议用 varbinary(max) 替代。
varbinary(max)可变长度的二进制数据,最大长度为 2^31 - 1(2,147,483,647)字节。实际二进制数据长度 + 2 字节(长度小于 8000 时)或 4 字节(长度大于 8000 时)存储非常大的可变长度二进制数据,如大型文件、高清视频等。
其他类型bit只能存储 0、1 或 NULL,用于表示布尔值1 字节表示布尔类型的数据,如是否启用、是否删除等。
uniqueidentifier存储全局唯一标识符(GUID),是一个 16 字节的二进制数据16 字节用于在分布式系统中唯一标识记录,如在多个数据库之间同步数据时作为唯一标识。
xml用于存储 XML 数据实际 XML 数据长度 + 额外开销存储和处理 XML 格式的数据,如配置文件、数据交换等。

相关文章:

SQL Server 中常见的数据类型及其详细解释、内存占用和适用场景

以下是 SQL Server 中常见的数据类型及其详细解释、内存占用和适用场景&#xff1a; 数据类型类别数据类型解释内存占用适用场景整数类型bigint用于存储范围较大的整数&#xff0c;范围是 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807)8 字节需要…...

Android Kotlin 权限工具类封装:简化动态权限管理

在 Android 开发中&#xff0c;动态权限管理是一个常见的需求&#xff0c;尤其是在高版本 Android 系统中&#xff0c;权限管理变得更加严格和复杂。为了简化权限申请的流程&#xff0c;减少重复代码&#xff0c;本文将介绍如何使用 Kotlin 封装一个高效、易用的权限工具类。 权…...

数据结构每日一题day3(顺序表)★★★★★

题目描述&#xff1a;顺序表L的元素递增有序排列&#xff0c;设计一个算法在插入元素x后保持该顺序表仍然递增有序排列,插入成功后返回插入元素所在位置,不成功返回-1 算法思想&#xff1a;在递增有序的顺序表中插入元素 x 并保持有序性&#xff0c;步骤如下&#xff1a; 合法…...

Git合并删除原理

如果有 A 分支&#xff0c;从 A 分支上新建 B 分支&#xff0c;B 分支做出修改合并到 A 分支&#xff0c;然后删除 B 分支&#xff0c;A 分支还有没有 B 分支修改的内容 关键原理&#xff1a; 合并的本质是提交历史的整合 1. 合并操作会将 B 的修改永久写入 A 的历史 当 …...

Git 是什么

第一步&#xff1a;想象一个场景——写作文的烦恼 假设你在电脑上写一篇作文&#xff0c;反复修改了好几次。突然发现 ​改错了 想回到之前的某版&#xff0c;但你已经覆盖保存了。这时候你可能会想&#xff1a; &#x1f62d; “要是能回到昨天的版本就好了&#xff01;”&a…...

基于javaweb的SpringBoot智能无人仓库管理设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...

python处理音频相关的库

1 音频信号采集与播放 pyaudio import sys import pyaudio import wave import timeCHUNK 1024 FORMAT pyaudio.paInt16 CHANNELS 1#仅支持单声道 RATE 16000 RECORD_SECONDS 3#更改录音时长#录音函数&#xff0c;生成wav文件 def record(file_name):try:os.close(file_…...

JNI 本地方法调用 Java 静态方法 和 实例方法对比;通过本地方法创建 Java 对象;本地方法访问 Java 数组元素;本地方法错误返回给 Java

以下是针对 Java JNI 的详细代码示例和对比分析&#xff1a; 一、调用 Java 静态方法 vs 实例方法 Java 示例类 public class JNIExample {public static void staticMethod(int value) {System.out.println("Static Method: " value);}public void instanceMetho…...

AWS Lambda 深度解析:构建高效无服务器应用的实战指南

在2025年的云计算生态中&#xff0c;AWS Lambda 作为无服务器计算的代表&#xff0c;以其按需执行、高可扩展性和零运维成本的优势&#xff0c;成为开发者构建现代应用的首选。无论是快速原型开发还是生产级系统&#xff0c;Lambda 都能大幅提升效率。然而&#xff0c;如何充分…...

网络爬虫-2:基础与理论

一.同步加载与异步加载 1.1同步加载定义: 页面所有内容一起加载出来,当某一个数据加载有问题,整个页面就不会加载出来(如HiFiNi音乐网站),所以又叫阻塞模式 1.2爬取步骤: 看netword->document 2.1异步加载定义: 数据是分开加载的,当某一份数据有异常时,不影响其他数据…...

从零构建大语言模型全栈开发指南:第二部分:模型架构设计与实现-2.1.2多头注意力扩展与掩码机制(因果掩码与填充掩码)

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 2.1.2 多头注意力扩展与掩码机制(`因果掩码与填充掩码`)1. 多头注意力机制:分治策略的数学实现1.1 多头注意力核心公式2. 逐行代码实现2.1 多头拆分与合并3. 掩码机制:注意力控制的核心技术3.1 因果…...

Oracle 19C 备份

在 Oracle 19c 中&#xff0c;备份数据库通常使用 RMAN&#xff08;Recovery Manager&#xff09; 工具&#xff0c;它是 Oracle 提供的官方备份和恢复工具。以下是通过 RMAN 备份 Oracle 19c 数据库的详细步骤和命令。 一、RMAN 基本概念 RMAN 是 Oracle 的备份和恢复工具&am…...

[项目]基于FreeRTOS的STM32四轴飞行器: 十一.MPU6050配置与读取

基于FreeRTOS的STM32四轴飞行器: 十一.MPU6050 一.芯片介绍二.配置I2C三.编写驱动四.读取任务的测试五.MPU6050六轴数据的校准 一.芯片介绍 芯片应该放置在PCB中间&#xff0c;X Y轴原点&#xff0c;敏感度131表示范围越小越灵敏。理想状态放置在地面上X&#xff0c;Y&#xf…...

后端学习day1-Spring(八股)--还剩9个没看

一、Spring 1.请你说说Spring的核心是什么 参考答案 Spring框架包含众多模块&#xff0c;如Core、Testing、Data Access、Web Servlet等&#xff0c;其中Core是整个Spring框架的核心模块。Core模块提供了IoC容器、AOP功能、数据绑定、类型转换等一系列的基础功能&#xff0c;…...

【赵渝强老师】在Docker中运行达梦数据库

Docker是一个客户端服务器&#xff08;Client-Server&#xff09;架构。Docker客户端和Docker守护进程交流&#xff0c;而Docker的守护进程是运作Docker的核心&#xff0c;起着非常重要的作用&#xff08;如构建、运行和分发Docker容器等&#xff09;。达梦官方提供了DM 8在Doc…...

Python电影市场特征:AR模型时间序列趋势预测、热图可视化评分影响分析IMDb数据|附数据代码

原文链接&#xff1a;https://tecdat.cn/?p41214 分析师&#xff1a;Zhiheng Lin 在数字时代&#xff0c;电影产业的数据分析已成为洞察市场趋势与用户偏好的重要工具。本专题合集聚焦印度电影市场&#xff0c;通过IMDb数据集&#xff08;IMDb Movies Dataset&#xff09;的深…...

扭蛋机小程序开发,潮玩娱乐消费风口下的机遇

随着Z世代消费能力的提升和盲盒经济的火爆&#xff0c;扭蛋文化正迎来爆发式增长。 扭蛋机作为一种充满惊喜感的消费模式&#xff0c;正从线下走向线上&#xff0c;并借助移动互联网实现了数字化转型。线上扭蛋机小程序不仅延续了传统扭蛋的趣味性&#xff0c;还通过数字化手段…...

网络安全基础:五类安全服务、八种安全机制与OSI七层模型的全面解析

目录 引言 五类安全服务 2.1 认证服务 2.2 访问控制 2.3 数据保密性 2.4 数据完整性 2.5 不可否认性 八种安全机制 3.1 加密机制 3.2 数字签名 3.3 访问控制机制 3.4 数据完整性机制 3.5 认证交换机制 3.6 流量填充机制 3.7 路由控制机制 3.8 公证机制 OSI七层…...

各类神经网络学习:(五)LSTM 长短期记忆(上集),结构详解

上一篇下一篇RNN&#xff08;下集&#xff09;待编写 LSTM&#xff08;长短期记忆&#xff09; 参考知乎文章《人人都能看懂的LSTM介绍及反向传播算法推导&#xff08;非常详细&#xff09; - 知乎》&#xff0c;部分图片也进行了引用。 参考视频教程《3.结合例子理解LSTM_哔哩…...

Python项目-基于Python的网络爬虫与数据可视化系统

1. 项目简介 在当今数据驱动的时代&#xff0c;网络爬虫和数据可视化已成为获取、分析和展示信息的重要工具。本文将详细介绍如何使用Python构建一个完整的网络爬虫与数据可视化系统&#xff0c;该系统能够自动从互联网收集数据&#xff0c;进行处理分析&#xff0c;并通过直观…...

Spring Boot 自定义 Starter 组件的技术指南

1、简述 Spring Boot 通过 Starter 机制&#xff0c;让开发者可以快速集成第三方组件。在企业级开发中&#xff0c;我们常常需要封装自己的 Starter 组件&#xff0c;以提高代码复用性&#xff0c;简化配置&#xff0c;并实现可插拔的模块化开发。 Spring Boot Starter 机制 …...

计算机二级WPS Office第九套WPS演示

解题过程...

计算机网络-2 物理层

【考纲内容】 &#xff08;一&#xff09;通信基础 信道、信号、带宽、码元、波特、速率、信源与信宿等基本概念&#xff1b; 奈奎斯特定理与香农定理&#xff1b;编码与调制&#xff1b; 电路交换、报文交换与分组交换&#xff1b;数据报与虚电路① 视频讲解 &#xff08;二…...

三分钟掌握音频提取 | 在 Rust 中优雅地处理视频音频

前言 在多媒体开发中&#xff0c;从视频中提取音频是一个常见需求。比如&#xff0c;你可能需要分离背景音乐来单独欣赏&#xff0c;或者提取对白用于语音分析&#xff0c;甚至为视频生成字幕。无论目的如何&#xff0c;音频提取都是多媒体处理中的基础操作。 传统上&#xf…...

Redis集群哨兵相关面试题

目录 1.Redis 主从复制的实现原理是什么? 详解 补充增量同步 replication buffer repl backlog buffer 2.Redis 主从复制的常见拓扑结构有哪些? 3.Redis 复制延迟的常见原因有哪些? 4.Redis 的哨兵机制是什么? 主观下线和客观下线 哨兵leader如何选出来的&#x…...

Shopify Checkout UI Extensions

结账界面的UI扩展允许应用开发者构建自定义功能&#xff0c;商家可以在结账流程的定义点安装&#xff0c;包括产品信息、运输、支付、订单摘要和Shop Pay。 Shopify官方在去年2024年使用结账扩展取代了checkout.liquid&#xff0c;并将于2025年8月28日彻底停用checkout.liquid…...

Perl 环境安装指南

Perl 环境安装指南 引言 Perl是一种广泛使用的解释型、动态编程语言,以其强大的文本处理能力和灵活性著称。本文将为您详细介绍Perl环境的安装过程,包括系统要求、安装步骤以及注意事项。 系统要求 在安装Perl之前,请确保您的计算机满足以下基本要求: 操作系统:Window…...

MOSN(Modular Open Smart Network)-04-TLS 安全链路

前言 大家好&#xff0c;我是老马。 sofastack 其实出来很久了&#xff0c;第一次应该是在 2022 年左右开始关注&#xff0c;但是一直没有深入研究。 最近想学习一下 SOFA 对于生态的设计和思考。 sofaboot 系列 SOFAStack-00-sofa 技术栈概览 MOSN&#xff08;Modular O…...

Softmax 回归 + 损失函数 + 图片分类数据集

Softmax 回归 softmax 回归是机器学习另外一个非常经典且重要的模型&#xff0c;是一个分类问题。 下面先解释一下分类和回归的区别&#xff1a; 简单来说&#xff0c;分类问题从回归的单输出变成了多输出&#xff0c;输出的个数等于类别的个数。 实际上&#xff0c;对于分…...

重温Ubuntu 24.04 LTS

用户调整 # 创建新用户 sudo adduser newusername # 设置新用户的密码 sudo passwd newusername # 将新用户添加到 sudo 组 sudo usermod -aG sudo newusername # 修改ssh访问权限 sudo nano /etc/ssh/sshd_config # 将新用户加入&#xff0c;此时root将无法访问 AllowUsers n…...