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

SQL Server 数据类型

文章目录

  • 一、文本类型(字母、符号或数字字符的组合)
  • 二、整数类型
  • 三、精确数字类型
  • 四、近似数字(浮点)类型
  • 五、日期类型
  • 六、货币类型
  • 七、位类型
  • 八、二进制类型

一、文本类型(字母、符号或数字字符的组合)

在这里插入图片描述

在SQL Server中,用来存储文本数据的数据类型主要有以下几种:
首先注意两点:
//
(1).Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案,是一个国际标准,用于计算机系统中文本的表示和处理。
以下是关于Unicode的一些关键点:

  1. 编码范围
    Unicode为每一个字符和符号从U+0000到U+10FFFF的范围内分配了一个唯一的代码点(Code Point)。

  2. 通用性
    Unicode设计的初衷是能够表示全世界所有的书写系统,包括现代文字、历史文字、技术符号、表情符号等。

  3. 编码方案
    Unicode定义了几种不同的编码方案来存储这些代码点,例如UTF-8、UTF-16和UTF-32。UTF-8是一种变长编码,它可以使用1到4个字节来表示一个字符,适用于网络传输和文本文件存储。UTF-16和UTF-32分别使用2个或4个字节来固定长度表示字符。

  4. 与ASCII兼容
    Unicode在设计时考虑到了与ASCII编码的兼容性。例如,Unicode中前128个字符的编码与ASCII完全一致。

  5. 跨平台
    Unicode被广泛支持和使用在各种操作系统、程序语言和应用中,使得跨语言、跨平台的文本处理变得可能。

使用Unicode数据类型可以确保数据库可以存储多种语言的字符,无论是拉丁字母、西里尔字母、汉字、日文假名、韩文字符还是其他任何复杂的文字系统。这对于国际化应用程序尤其重要。

(2):带n的数据类型长度是不带n的两倍。
//

  1. charnchar

    • char:固定长度的非Unicode字符数据,最多可以存储8000个字符。
    • nchar:固定长度的Unicode字符数据,最多可以存储4000个字符。
  2. varcharnvarchar

    • varchar:可变长度的非Unicode字符数据,最多可以存储8000个字符。
    • nvarchar:可变长度的Unicode字符数据,最多可以存储4000个字符。
  3. textntext

    • text:非Unicode数据,最多可以存储2^31-1 (2,147,483,647)个字符。
    • ntext:Unicode数据,最多可以存储1,073,741,823个字符。这些类型现在被视为遗留的,在最新版本的SQL Server中,官方建议使用VARCHAR(MAX)NVARCHAR(MAX)代替。
  4. varchar(MAX)nvarchar(MAX)

    • varchar(MAX):可变长度的非Unicode数据,最多可以存储2^31-1个字节。
    • nvarchar(MAX):可变长度的Unicode数据,最多可以存储2^31-1个字节。

需要注意的是:

  • CHARNCHAR存储固定长度的数据,当存储的文本短于指定长度时,会用空格填充至固定长度。
  • VARCHARNVARCHAR存储可变长度的数据,只占用实际文本长度所需的空间。它们更加灵活,适用于文本长度不确定的场景。
  • 使用NVARCHARNCHAR类型可以存储Unicode字符,适合多语言环境,但是它们占用的存储空间是VARCHARCHAR的两倍。
  • TEXTNTEXT类型在新版SQL Server中已被弃用,不建议使用。应使用VARCHAR(MAX)NVARCHAR(MAX)代替,因为这些大型值数据类型提供了更好的性能和更多的功能。
  • VARCHAR(MAX)NVARCHAR(MAX)允许你存储大量数据,但要注意它们可能会影响性能,特别是在执行大量文本操作时。
  • 使用大型值数据类型时,如果可能,考虑使用文本/字符串数据存储和检索技术,例如全文索引。

二、整数类型

在SQL Server中,用于存储整数的数据类型包括以下几种:

  1. tinyint

    • 存储范围:0 到 255
    • 存储大小:1 字节
  2. smallint

    • 存储范围:-32,768 到 32,767
    • 存储大小:2 字节
  3. int

    • 存储范围:-2,147,483,648 到 2,147,483,647
    • 存储大小:4 字节
  4. bigint

    • 存储范围:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
    • 存储大小:8 字节

在选择适合的整数类型时,需要注意以下几点:

  • 存储要求:选择一个与我们期望存储值的范围相匹配的数据类型,可以节省存储空间。例如,当我们知道一个列永远不会超过255,那么使用tinyint会比使用INT更节省空间。

  • 性能:一般来说,较小的数据类型(如tintintsmallint)可以提供更好的性能,因为它们使用的内存更少,索引也更紧凑。

  • 溢出:要小心确保所选的数据类型不会因为值太大而溢出。一旦发生溢出,可能会得到错误或不正确的结果。

  • 自动增长:如果在设计如主键列时使用自动增长(IDENTITY)属性,确保数据类型足够大,以防在长时间运行后达到最大值。

  • 应用兼容性:有时客户端应用程序的数据类型可能会限制在SQL Server中使用的数据类型。确保选择的数据类型与客户端应用程序兼容。

  • 标准化:在进行数据库设计时,应考虑数据的标准化形式。相同的数据类型可以使得后期数据维护、比较和索引更加高效。

三、精确数字类型

在SQL Server中,精确数字类型指的是能够存储精确数值的数据类型,通常用于需要精确计算的财务和数学运算。以下是SQL Server中的精确数字类型:

  1. bit

    • 存储范围:0 或 1
    • 存储大小:1、2、4、8字节,取决于列中的比特数(1-8、9-16、17-32、33-64)
  2. decimalnumeric(这两种类型在SQL Server中是同义的):

    • 存储范围:-10^38 +1 到 10^38 -1
    • 存储大小:5-17 字节,取决于指定的精度(总位数)
    • 可以指定小数点左侧和右侧的精度,即精度(数字总位数)和小数位数(小数点后的位数)。
  3. moneysmallmoney

    • money:-922,337,203,685,477.5808 到 922,337,203,685,477.5807,存储大小为 8 字节
    • smallmoney:-214,748.3648 到 214,748.3647,存储大小为 4 字节

要注意:

  • 选择合适的大小:根据需要存储的数据的大小和精度选择合适的数据类型。例如,如果不需要很大或很精确的数值,使用INTSMALLINT可能比BIGINTDECIMAL更合适。

  • 注意DECIMALNUMERIC的精度和小数位数:DECIMALNUMERIC数据类型允许指定精度和小数位数,这对于保持数值计算的准确性非常重要。选择合适的精度可以确保数据的准确性,同时避免不必要的存储浪费。

  • MONEYSMALLMONEY类型特别适用于存储货币值,但它们的计算精度可能不如DECIMALNUMERIC。当涉及到非常精确的财务计算时,通常建议使用DECIMALNUMERIC

  • 考虑性能:更大的数据类型(如BIGINTDECIMAL)可能会导致性能略微下降,因为它们需要更多的存储空间和计算资源。在不牺牲必要精度的情况下,选择最小的数据类型可以提高性能。

四、近似数字(浮点)类型

在SQL Server中,近似数字(浮点)类型主要是指能够存储近似数值的数据类型,用于科学计数和那些不要求精确小数值的情况。SQL Server提供了两种浮点数据类型:

  1. float[(n)]

    • 存储范围:由-1.79E+308到-2.23E-308,0以及从2.23E-308到1.79E+308。
    • 存储大小:4或8字节,具体取决于n的值。如果n的值是24到53,存储大小是8字节。如果n的值是1到23,存储大小是4字节。
  2. real

    • 存储范围:由-3.40E+38到-1.18E-38,0以及从1.18E-38到3.40E+38。
    • 存储大小:4字节。

在使用这些近似数字类型时,需要注意以下几点:

  • 存储大小和精度float类型可以指定精度n(有效位数)。如果指定了1到24之间的n值,将使用4字节存储(REAL类型相似)。如果指定了25到53之间的n值,将使用8字节存储。不指定n时,默认为53(即float(53))。

  • 舍入错误:由于舍入错误,floatreal类型可能无法精确表示非常大或非常小的数值。在比较这些类型的值时,可能需要使用一定的容差。

  • 性能:浮点运算通常比整数运算慢,但floatreal类型可以存储极宽的数值范围,对于某些应用而言这是必要的(如科学计算)。

  • 运算结果:浮点数的数学运算可能会产生不稳定的结果,因此在执行数学运算时,结果可能会略有不同,这是由于二进制浮点数在内部是如何表示和计算的。

  • 数据转换:将floatreal类型转换成整数类型时,SQL Server会将数值四舍五入到最近的整数。

  • 移植性:由于不同的系统可能会使用不同的方法来实现浮点数的舍入,所以在不同的系统之间迁移数据时,涉及到FLOATREAL类型的数据可能会导致不一致。

五、日期类型

在SQL Server中,日期和时间数据类型用于存储日期和时间值。以下是SQL Server中的日期和时间数据类型:

  1. data

    • 存储范围:0001-01-01 到 9999-12-31
    • 存储大小:3字节
    • 仅包含日期部分,没有时间部分。
  2. time

    • 存储范围:00:00:00.0000000 到 23:59:59.9999999
    • 存储大小:3到5字节,具体取决于秒的精度。
    • 仅包含时间部分,没有日期部分。
  3. datatime

    • 存储范围:1753-01-01 到 9999-12-31
    • 存储大小:8字节
    • 包括日期和时间,精度为3.33毫秒。
  4. smalldatatime

    • 存储范围:1900-01-01 到 2079-06-06
    • 存储大小:4字节
    • 包括日期和时间,精度为1分钟。
  5. datatime2

    • 存储范围:0001-01-01 到 9999-12-31
    • 存储大小:6到8字节,具体取决于秒的精度。
    • DATETIME类似,但更大的日期范围和可定制的精度。
  6. datatimeoffset

    • 存储范围:0001-01-01 到 9999-12-31
    • 存储大小:8到10字节,具体取决于秒的精度。
    • 包括日期和时间,以及相对于UTC的时区偏移。

在使用这些日期和时间类型时,需要注意以下几点:

  • 时区:如果需要考虑时区信息,使用DATETIMEOFFSET可以存储时区偏移量。

  • 默认值:当没有提供时间部分时,TIME的默认值为00:00:00。对于日期部分,默认值是1900-01-01。

六、货币类型

在SQL Server中,专门用于存储货币值的数据类型主要有两种:

  1. money

    • 存储范围:-922,337,203,685,477.5808 到 922,337,203,685,477.5807
    • 存储大小:8 字节
    • 精度:小数点后四位
  2. smallmoney

    • 存储范围:-214,748.3648 到 214,748.3647
    • 存储大小:4 字节
    • 精度:小数点后四位

使用这些货币类型时,以下是一些需要注意的事项:

  • 精度要求moneysmallmoney数据类型提供固定的四位小数精度。如果你的应用需要不同的精度或者超出这些范围的值,可能需要使用decimalnumeric类型。

  • 性能moneysmallmoney类型被优化用于货币计算,可能提供比decimal更好的性能。但是,如果需要超过四位小数的精度,还是应该使用decimal

  • 计算和舍入:在涉及货币的计算时,需要考虑舍入规则。SQL Server在进行货币类型数据的四舍五入时是自动进行的,但是如果需要更特殊的舍入逻辑,可能需要自定义。

  • 存储大小money类型比decimalnumeric类型使用更少的存储空间,但是decimalnumeric可以提供更大的范围和精度。

  • 格式化:在将货币类型的数据展现给用户时,通常需要根据用户的区域设置进行适当的格式化。这通常在应用程序层面处理,而不是在数据库层面。

七、位类型

在SQL Server中,用于存储位(Boolean)值的数据类型是 BIT 类型。BIT 类型用于存储布尔值,通常用于表示简单的是/否或真/假状态。

  • 存储大小:bit 数据类型的存储大小实际上非常小。每个 bit 列只占用一位,但是最小的存储单位是字节。因此,一个 bit 列可以存储在一个字节中,而8个 bit 列只需1个字节存储。
  • 可用范围:bit 类型的值可以是 0、1 或 NULL(如果列允许 NULL 值)。
  • 默认值:在没有指定默认值的情况下,bit 类型的列的默认值是 0。

使用 BIT 类型时需要注意的事项:

  1. 存储效率:当表中有多个 bit 列时,SQL Server会尽量将它们存储在同一个字节中以节省空间。最多可以有8个 bit 列存储在一个字节中。

  2. 值的解释:尽管 bit 数据类型表示布尔值,但在SQL Server中,它实际上是表示整数值0或1。这意味着在执行逻辑运算时,它们可能被转换为整数。

  3. 转换:当 bit 类型与其他数据类型一起使用时,可能会发生隐式或显式转换,这可能会影响性能。

  4. NULL 值:如果 bit 列被定义为允许 NULL 值,那么除了0和1以外,它还可以包含一个 NULL 值。在逻辑表达式中使用含有 NULL 的 bit 列需要特别小心,因为 NULL 与任何非 NULL 值的比较都将返回 NULL。

  5. 默认绑定:在定义表结构时,如果想要 bit 列有一个非0的默认值,需要显式地设置一个默认约束,如 DEFAULT 1

  6. 逻辑操作BIT 列可以参与逻辑操作,如 andornot。当用于逻辑操作时,0 表示 false,1 表示 ture

八、二进制类型

在SQL Server中,用于存储二进制数据的数据类型主要有以下几种:

  1. binary

    • 固定长度的二进制数据。
    • 存储大小是定义的列长度。
    • 长度范围是 1 到 8,000 字节。
  2. varbinary

    • 可变长度的二进制数据。
    • 存储大小是实际数据的长度加上2字节,用于表示长度,但最大不超过定义的长度。
    • 长度范围是 1 到 8,000 字节。
  3. varbinary(MAX)

    • 可变长度的二进制数据。
    • 存储大小最大可以是 2^31-1 字节。
    • 用于存储超过 8,000 字节的大型数据对象,如文件、图像等。

使用这些二进制数据类型时,需要注意以下事项:

  • 选择适当类型:当我们知道列将具有固定长度的二进制数据时,使用 binary 类型可能会更合适。如果列中的数据项的大小可能会有所不同,那么 varbinaryvarbinary(MAX) 类型可能会更加适用。

  • 性能:大型二进制数据可能会影响性能,特别是在涉及到大量数据的检索和更新操作时。

  • 存储空间:固定长度的 binary 类型可能会浪费存储空间,因为它总是使用定义的最大长度存储数据。相比之下,varbinary 类型只存储实际需要的空间加上长度的额外2字节。

  • 最大长度限制:对于 binaryvarbinary 数据类型,当数据超过 8,000 字节时,应该使用 varbinary(MAX) 类型。

  • 数据操作:操作二进制数据通常比操作文本数据更复杂,因为我们需要使用适当的函数和方法来处理它们。

  • 使用场景:二进制数据类型通常用于存储图像、文件、音频、视频等非文本数据。

  • 备份和迁移:含有大量二进制数据的数据库在备份和迁移时一般需要更多的时间和资源。

  • 安全性:存储敏感数据(如加密的字节)时需要考虑安全性和加密策略。

相关文章:

SQL Server 数据类型

文章目录 一、文本类型(字母、符号或数字字符的组合)二、整数类型三、精确数字类型四、近似数字(浮点)类型五、日期类型六、货币类型七、位类型八、二进制类型 一、文本类型(字母、符号或数字字符的组合) 在…...

【.NET Core】C#预处理器指令

【.NET Core】C#预处理器指令 文章目录 【.NET Core】C#预处理器指令一、概述二、可为空上下文(#nullable)三、条件编译2.1 定义DEBUG是编译代码2.2 未定义MYTEST时,将编译以下代码 四、定义符号五、定义区域六、错误和警告信息 一、概述 预…...

自定义类型详解(2)

文章目录 5. 通讯录的实现 5. 通讯录的实现 实现一个通讯录: 通讯录中保存人的信息: 名字年龄性别电话住址 通讯录中可以存放100个人的信息增加联系人删除指定联系人修改指定联系人查找指定联系人显示所有联系人的信息排序功能 首先,我们需要…...

Python 网络爬虫入门详解

什么是网络爬虫 网络爬虫又称网络蜘蛛,是指按照某种规则在网络上爬取所需内容的脚本程序。众所周知,每个网页通常包含其他网页的入口,网络爬虫则通过一个网址依次进入其他网址获取所需内容。 优先申明:我们使用的python编译环境为PyCharm 一、首先一个网络爬虫的组成结构…...

记一次 .NET某收银软件 非托管泄露分析

一:背景 1. 讲故事 在我的分析之旅中,遇到过很多程序的故障和杀毒软件扯上了关系,有杀毒软件导致的程序卡死,有杀毒软件导致的程序崩溃,这一篇又出现了一个杀毒软件导致的程序非托管内存泄露,真的是分析多…...

C++力扣题目131--分割回文串

131. 分割回文串 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1: 输入:s "aab" 输出:[["a&qu…...

vue脚手架

● vue是单⻚⾯应⽤程序 ● 什么是路由 ○ 后端路由 ■ 对于普通的⽹站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源 ○ 前端路由 ■ 对于单⻚⾯应⽤程序来说,主要通过URL中的hash ( # 号) 来实现不同⻚⾯之间的切换…...

Monorepo-uniapp 构建分享

Monorepo uniapp 构建灵感:刚好要做一个项目,于是想到升级一下之前自己写的一个vue3tspiniauno的模版框架,其实那个框架也不错;只是感觉还差点东西,我已经用那个小框架写了两三个项目;轻巧实用。为什么选…...

django后台登录:Forbidden (403) CSRF verification failed. Request aborted.

如果您在尝试登录Django后台时遇到了CSRF验证失败的错误,这通常意味着您的浏览器未能提交正确的CSRF令牌,或者Django后端未能验证该令牌。遵循以下步骤来解决这个问题: 清除浏览器Cookies和缓存: 有时候,浏览器的Cooki…...

【Python数据可视化】matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图

文章传送门 Python 数据可视化matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容&#x…...

Python从入门到精通秘籍五

Python速成,每日持续更新,知识点超详细,涵盖所有Python重难点知识及其对应代码,利用碎片化时间,实现Python从入门到精通的飞跃!!! 一、Python的函数基本定义语法 当定义一个函数时,我们使用关键字def,后跟函数名称和一对圆括号。在圆括号内,可以指定任意数量的参数…...

MySQL 基于 GTID 主从复制

GTID 定义 GTID 是 MySQL 事务标识,为每一个提交的事务都生成一个标识,并且是全局唯一的,这个特性是从 MySQL5.6 引进的。 组成 GTID 是由 UUID TID,UUID 是MySQL的唯一标识,每个MySQL实例之间都是不同的。TID是代表…...

Linux操作系统基础

目录 计算机存储结构 冯.诺依曼结构 操作系统 在前几期我们学写了linux中常见的一些指令,本期我们将正式进行linux操作系统的学习。 计算机存储结构 要学习linux操作系统,我们就得先进行计算机存储结构的学习,要进行计算机存储结构的学…...

docker 批量更改镜像标签

docker 批量更改镜像标签 批量更改镜像标签批量删除镜像 批量更改镜像标签 docker images | grep "registry.aliyuncs.com\/google_containers" | sed s/registry.aliyuncs.com\/google_containers/registry.k8s.io/ | awk {print "docker tag "$3" …...

js 校验 大于等于0小于等于100

如果你想要在JavaScript中校验一个数值是否在0到100之间&#xff08;包括0和100&#xff09;&#xff0c;你可以使用以下的函数&#xff1a; function validateRange(value) {return value > 0 && value < 100; }你可以使用这个函数来检查一个值是否在指定的范围…...

前端面试题-webpack

1.webpack是什么&#xff1f; 模块打包工具&#xff0c;用于将前端资源&#xff0c;如JavaScript、css、图片等打包成可以在浏览器运行的静态资源。可以将多个模块打包成一个或多个bundle。 主要功能&#xff1a; 模块化&#xff1a;可以将多个模块打包成一个或多个bundle&…...

What is `WebMvcConfigurer` does?

WebMvcConfigurer 用于自定义和扩展SpringMVC的功能配置。 比如&#xff1a;可以配置如视图解析器、静态资源处理、消息转换器、拦截器等MVC相关的组件。 实现 WebMvcConfigurer 接口&#xff0c;并使用 Configuration 注解标记&#xff0c;使其成为一个配置类 Configuration …...

安全强化学习笔记

这里写自定义目录标题 参考资料 Safe Reinforcement Learning环境算法CPO 2017 ICMLPCPO 2019 ICLRFOCOPS 2020 NIPSCRPO 2021 ICMLCUP 2022 NIPS TRPO 如何看懂TRPO里所有的数学推导细节? - 小小何先生的回答 - 知乎 参考资料 Safe Reinforcement Learning 安全/约束强化学…...

POI-tl 知识整理:整理1 -> 利用模板向word中写入数据

1 文本传值 Testpublic void testText() throws Exception {XWPFTemplate template XWPFTemplate.compile("D:\\Idea-projects\\POI_word\\templates.docx");Map<String, Object> map new HashMap<>();map.put("title", "Hi, girl"…...

PDF结构详解

文章目录 介绍前言高保真的文件什么是PDF&#xff1f;PDF的一些优点版本摘要谁在使用PDF&#xff1f;有用的免费软件谁应该阅读 构建一个简单PDF文件基本PDF语法File StructureDocument ContentPage Content 构建简单PDF文件头目录&#xff0c;交叉引用表和文件尾主要对象图形内…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...