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 格式的数据,如配置文件、数据交换等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/73577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue数字公式篇 Tinymce结合使用(二)

继上一篇的数字公式 &#xff0c; 这次的功能是将公式能插入编辑器以及修改 1、Tinymce 自定义 LateX 按钮&#xff0c;打开公式编辑器窗口 LateX.vue window.tinymce.init({...//基础配置这里我就不写了setup(ed) {//自定义 LateX 按钮ed.ui.registry.addButton(LateX, {text:…

python数据增强和转换

数据增强和转换 固定转换随机转换概率控制的转换 固定转换 边缘补充像素(Pad)尺寸变换(Resize)中心截取(CenterCrop)顶角及中心截取(FiveCrop)尺灰度变换(GrayScale) 概率控制的转换 随机垂直翻转(RandomVerticalFlip)随机应用(RandomApply) # -*- coding: utf-8 -*- fro…

Ubuntu下UEFI安全启动安装Nvdia驱动

简介 众所周知&#xff0c;Ubuntu默认使用Nouveau开源驱动&#xff0c;其性能受限&#xff0c;因此我们需要安装Nvidia专用驱动。 安装专用驱动的一般方法非常简单&#xff0c;只需要sudo ubuntu-drivers devices && sudo ubuntu-drivers autoinstall即可&#xff0c…

05_循环结构三目运算符

目录 一、双重for循环 练习 二、break关键字 三、continue 关键字 练习 四、三元运算 / 三目运算 一、双重for循环 外层循环 循环一次&#xff0c;&#xff0c;&#xff0c;内层循环 循环一圈&#xff01;&#xff01;&#xff01; 循环里嵌套循环&#xff1a; for(var…

数据结构初阶-二叉树链式

目录 1.概念与结构 2.二叉数链式的实现 2.1遍历规则 2.2申请内存空间 2.3手动构建一棵二叉树 2.4二叉树结点的个数 2.5二叉树叶子结点的个数 2.6二叉树第K层结点个数 2.7二叉树的高度 2.8二叉树中查找值为x的结点 2.9二叉树的销毁 3.层序遍历 3.1概念 3.2层序遍历…

鸿蒙HarmonyOS NEXT之无感监听

鸿蒙中存在一些无感监听&#xff0c;这些监听经过系统API封装使用很简单&#xff0c;但是对实际业务开发中有很重要&#xff0c;例如埋点业务、数据统计、行为上报、切面拦截等。 Navigation的页面切换 在鸿蒙中Navigation被用来作为路由栈进行页面跳转&#xff0c;如果你想知…

批量处理word里面表格的空白行

1&#xff0c;随便打开一个word文档。 2&#xff0c;按下Alt F11 VBA编辑器,在左侧的「工程资源管理器」窗口中找到Normal 项目,右键选择插入->模块。 弹出一下弹窗 3&#xff0c;输入一下代码 代码&#xff1a; Sub RemoveEmptyTableRows()Dim tbl As TableDim row As R…

3ds Max 2026 新功能全面解析

一、视口性能与交互体验升级 1. Hydra 2.0 视口渲染引擎 3ds Max 2026 引入了 Hydra 2.0&#xff0c;大幅优化了视口渲染性能&#xff0c;尤其是在处理复杂场景和高质量实时预览时&#xff0c;流畅度提升显著。 支持USD&#xff08;通用场景描述&#xff09;格式&#xff0c…

JVM垃圾回收笔记02-垃圾回收器

文章目录 前言1.串行(Serial 收集器/Serial Old 收集器)Serial 收集器Serial Old 收集器相关参数-XX:UseSerialGC 2.吞吐量优先(Parallel Scavenge 收集器/Parallel Old 收集器)Parallel Scavenge 收集器Parallel Old 收集器相关参数-XX:UseParallelGC ~ -XX:UseParallelOldGC-…

图解AUTOSAR_SWS_UDPNetworkManagement

AUTOSAR UDP 网络管理 (UdpNm) 技术详解 基于 AUTOSAR 规范的 UDP 网络管理模块可视化指南 目录 AUTOSAR UDP 网络管理 (UdpNm) 技术详解 目录1. 概述2. UdpNm 状态机 2.1 状态机概述2.2 主要状态说明2.3 状态转换机制2.4 并行状态3. UdpNm 架构设计 3.1 架构概述3.2 接口设计3…

android 图形开发的技能学习路线

需要以下几个方面的知识&#xff1a; OpenGL ES的基础和高级应用图形渲染管线的工作原理3D数学&#xff08;矩阵、向量、四元数&#xff09;着色器编程&#xff08;GLSL&#xff09;libGDX框架的使用和定制性能优化和内存管理跨平台渲染技术 接下来&#xff0c;考虑如何结构化…

使用AI一步一步实现若依(26)

功能26&#xff1a;新增一个新员工培训页面 功能25&#xff1a;角色管理 功能24&#xff1a;菜单管理 功能23&#xff1a;从后端获取路由/菜单数据 功能22&#xff1a;用户管理 功能21&#xff1a;使用axios发送请求 功能20&#xff1a;使用分页插件 功能19&#xff1a;集成My…

vue响应式原理剖析

一、什么是响应式? 我们先来看一下响应式意味着什么?我们来看一段代码: m有一个初始化的值,有一段代码使用了这个值; 那么在m有一个新的值时,这段代码可以自动重新执行; let m = 20 console.log(m) console.log(m * 2)m = 40上面的这样一种可以自动响应数据变量的代码机…

无人机航电系统电池技术解析!

1. 常用电池类型 锂聚合物电池&#xff08;LiPo&#xff09; 特点&#xff1a;高能量密度、轻量化、放电效率高&#xff0c;是目前主流选择。 缺点&#xff1a;对过充/过放敏感&#xff0c;需严格管理&#xff0c;存在轻微膨胀或起火风险。 锂离子电池&#xff08;Li-ion…

ubuntu下终端打不开的排查思路和解决方法

问题现象描述&#xff1a;ubuntu开机后系统桌面显示正常&#xff0c;其他图形化的app也都能打开无异常&#xff0c;唯独只有terminal终端打不开&#xff0c;无论是鼠标点击终端软件&#xff0c;还是ctrlaltt&#xff0c;还是altF2后输入gnome-terminal后按回车&#xff0c;这三…

Maven入门

1、简介 Apache Maven是一个项目管理及自动构建工具&#xff0c;由Apache软件基金会所提供。基于项目对象模型&#xff08;缩写&#xff1a;POM&#xff09;概念&#xff0c;Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。 2、作用 1&#xff09;依赖导…

Rk3588,Opencv读取Gmsl相机,Rga yuv422转换rgb (降低CPU使用率)

RK3588, 使用OpenCv 读取 gmsl 相机,获得yuv422格式图像, 使用 rga 转换 rgb 图像。减少cpu占用率. 查看相机信息 v4l2-ctl --all -d /dev/cam0 , 查看自己相机分辨率,输出格式等信息,对应修改后续代码测试… Driver Info:Driver name : rkcifCard type : rkc…

鸿蒙相机开发实战:从设备适配到性能调优 —— 我的 ArkTS 录像功能落地手记(API 15)

引言&#xff1a;为什么我要写这份开发指南&#xff1f; 作为一名老技术&#xff0c;最近特别喜欢研究鸿蒙相机功能&#xff0c;而且目前已经更新到API15了&#xff0c;那么咱们更要好好研究一下。而且从手持云台到车载记录仪&#xff0c;每个项目都面临独特挑战&#xff1a;车…

【NLP 49、提示工程 prompt engineering】

目录 一、基本介绍 语言模型生成文本的基本特点 提示工程 prompt engineering 提示工程的优势 使用注意事项 ① 安全问题 ② 可信度问题 ③ 时效性与专业性 二、应用场景 能 ≠ 适合 应用场景 —— 百科知识 应用场景 —— 写文案 应用场景 —— 解释 / 编写…

数字转换(c++)

【题目描述】 如果一个数 xx 的约数和 yy &#xff08;不包括他本身&#xff09;比他本身小&#xff0c;那么 xx 可以变成 yy &#xff0c;yy 也可以变成 xx 。例如 44 可以变为 33 &#xff0c;11 可以变为 77 。限定所有数字变换在不超过 nn 的正整数范围内进行&#xff0c;…