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

SQL经典实例

第1章 检索记录

  • 1.1 检索所有行和列
    • 知识点:使用SELECT *快速检索表中所有列;显式列出列名(如SELECT col1, col2)提高可读性和可控性,尤其在编程场景中更清晰。
  • 1.2 筛选行
    • 知识点:通过WHERE子句过滤符合条件的行,支持常用运算符(=、<、>等),是数据筛选的基础。
  • 1.3 查找满足多个查询条件的行
    • 知识点:使用ANDOR和括号组合多个条件,注意逻辑优先级,确保条件正确分组。
  • 1.4 筛选列
    • 知识点:在SELECT中指定具体列,避免返回无关数据,提升查询效率,尤其在网络传输数据时重要。
  • 1.5 创建有意义的列名
    • 知识点:通过AS关键字为列设置别名(如SELECT sal AS salary),增强结果可读性,别名可用于后续引用。
  • 1.6 在WHERE子句中引用别名列
    • 知识点WHERE子句无法直接引用SELECT中的别名,需通过内嵌视图(子查询)包装查询,使外层查询可访问别名列。
  • 1.7 串联多列的值
    • 知识点:不同数据库使用不同串联方法,如DB2/Oracle/PostgreSQL用||,MySQL用CONCAT,SQL Server用+,实现多列合并。
  • 1.8 在SELECT语句里使用条件逻辑
    • 知识点:通过CASE表达式实现条件逻辑(如根据工资范围返回状态),替代传统编程语言的IF-ELSE,增强查询灵活性。
  • 1.9 限定返回行数
    • 知识点:不同数据库限制行数的语法不同,如MySQL/PostgreSQL用LIMIT,Oracle用ROWNUM,SQL Server用TOP,DB2用FETCH FIRST,用于分页或限制结果量。
  • 1.10 随机返回若干行记录
    • 知识点:结合ORDER BY与随机函数(如RAND()DBMS_RANDOM.VALUE())实现随机排序,再用行数限制语法获取随机行。
  • 1.11 查找Null值
    • 知识点:使用IS NULL判断Null值,不能用=!=,是处理缺失数据的基础。
  • 1.12 把Null值转换为实际值
    • 知识点:通过COALESCE函数(如COALESCE(comm, 0))将Null替换为指定值,或用CASE表达式实现类似逻辑,确保计算正确。
  • 1.13 查找匹配项
    • 知识点:使用LIKE配合通配符%(匹配任意字符)和_(匹配单个字符)进行模式匹配,筛选符合特定字符串模式的行。

第2章 查询结果排序

  • 2.1 以指定顺序返回查询结果
    • 知识点:通过ORDER BY子句排序,默认升序(ASC),降序用DESC,可按列名或列位置序号排序。
  • 2.2 多字段排序
    • 知识点:在ORDER BY中用逗号分隔多个字段,按顺序依次排序,支持不同字段不同排序方向。
  • 2.3 依据子串排序
    • 知识点:使用字符串函数(如SUBSTRSUBSTRING)提取子串,按子串内容排序,例如按职位最后两个字符排序。
  • 2.4 对含有字母和数字的列排序
    • 知识点:通过TRANSLATEREPLACE函数清理非目标字符,保留字母或数字部分,再进行排序,处理混合数据列。
  • 2.5 排序时对Null值的处理
    • 知识点:Oracle支持NULLS FIRST/LAST直接控制Null值位置,其他数据库通过CASE表达式标记Null值,调整其在排序中的顺序。
  • 2.6 依据条件逻辑动态调整排序项
    • 知识点:在ORDER BY中使用CASE表达式,根据条件动态选择排序字段,例如按职位类型切换排序依据。

第3章 多表查询

  • 3.1 叠加两个行集
    • 知识点:使用UNION ALL合并多个表的行(包含重复),UNION去重,要求列数和数据类型匹配。
  • 3.2 合并相关行
    • 知识点:通过内连接(INNER JOIN或隐式连接)基于共同列合并表,返回匹配行,是多表数据关联的基础。
  • 3.3 查找两个表中相同的行
    • 知识点:使用INTERSECT(DB2/PostgreSQL/Oracle)或连接查询匹配多列,获取两表交集数据。
  • 3.4 查找只存在于一个表中的数据
    • 知识点:差集运算(DB2/PostgreSQL用EXCEPT,Oracle用MINUS)或NOT INNOT EXISTS子查询,找出单表独有数据。
  • 3.5 从一个表检索与另一个表不相关的行
    • 知识点:外连接(左/右/全连接)保留主表不匹配行,过滤Null值后获取无关联数据,如查找无员工的部门。
  • 3.6 新增连接查询而不影响其他连接查询
    • 知识点:使用外连接(如LEFT JOIN)避免丢失主表数据,或标量子查询添加额外信息,确保原有结果集完整。
  • 3.7 确定两个表是否有相同的数据
    • 知识点:通过差集运算结合UNION ALL比较两表差异,或先比较行数再逐行对比,确保数据一致性。
  • 3.8 识别并消除笛卡儿积
    • 知识点:笛卡儿积由缺少连接条件导致,通过n-1个连接条件(WHEREJOIN)避免,确保结果正确。
  • 3.9 组合使用连接查询与聚合函数
    • 知识点:聚合前注意连接可能产生的重复行,用DISTINCT去重或先聚合再连接,确保统计结果准确。
  • 3.10 组合使用外连接查询与聚合函数
    • 知识点:外连接保留主表数据,聚合时处理Null值(如COALESCE),正确计算包含缺失关联数据的分组统计。
  • 3.11 从多个表中返回缺失值
    • 知识点:全外连接(FULL OUTER JOIN)结合条件过滤,同时保留两表不匹配行,如同时显示无员工的部门和无部门的员工。
  • 3.12 在运算和比较中使用Null
    • 知识点COALESCE将Null转换为有效值参与运算,避免Null导致的逻辑错误,确保比较和计算正确。

第4章 插入、更新和删除

  • 4.1 插入新记录
    • 知识点:使用INSERT INTO ... VALUES插入单行或多行,省略列名时需按顺序提供所有列值,支持批量插入。
  • 4.2 插入默认值
    • 知识点:通过DEFAULT关键字显式插入列默认值,或省略列名利用表定义的默认值,简化插入操作。
  • 4.3 使用Null覆盖默认值
    • 知识点:在VALUES中显式指定NULL,即使列有默认值也强制插入Null,控制数据输入。
  • 4.4 复制数据到另一个表
    • 知识点INSERT INTO ... SELECT将查询结果插入目标表,支持过滤条件,快速迁移数据。
  • 4.5 复制表定义
    • 知识点:DB2用CREATE TABLE ... LIKE,其他数据库用SELECT * FROM ... WHERE 1=0创建空表,复制表结构。
  • 4.6 多表插入
    • 知识点:Oracle用INSERT ALL根据条件插入多表,DB2通过UNION ALL结合表约束实现,其他数据库需分步插入。
  • 4.7 禁止插入特定列
    • 知识点:创建仅暴露允许插入列的视图,限制用户操作,通过视图权限控制数据插入范围。
  • 4.8 更新记录
    • 知识点UPDATE ... SET结合WHERE更新指定行,支持表达式计算(如加薪10%),预览结果后执行。
  • 4.9 当相关行存在时更新记录
    • 知识点:子查询INEXISTS判断关联表存在性,针对性更新,如根据奖金表更新工资。
  • 4.10 使用另一个表的数据更新记录
    • 知识点:连接两表后更新(如UPDATE ... FROM ... JOIN),或子查询提供新值,实现跨表数据同步。
  • 4.11 合并记录
    • 知识点:Oracle的MERGE语句根据匹配条件自动插入或更新,简化数据同步逻辑,其他数据库需分步操作。
  • 4.12 删除全表记录
    • 知识点DELETE FROM不带WHERE删除所有行,注意事务和性能影响,大表慎用。
  • 4.13 删除指定记录
    • 知识点DELETE ... WHERE结合条件过滤,确保精确删除,避免误删数据。
  • 4.14 删除单行记录
    • 知识点:基于主键或唯一键精确删除,确保WHERE条件唯一,避免删除多行。
  • 4.15 删除违反参照完整性的记录
    • 知识点NOT EXISTSNOT IN子查询找出无关联的孤立记录,如删除无对应部门的员工。
  • 4.16 删除重复记录
    • 知识点:按重复列分组,保留最小/最大标识的行,删除其他重复行,确保数据唯一性。
  • 4.17 删除被其他表参照的记录
    • 知识点:先处理子表依赖数据(如级联删除),或直接删除主表记录(需数据库支持外键级联),处理外键约束。

第5章 元数据查询

  • 5.1 列举模式中的表
    • 知识点:查询系统表或视图(如DB2的SYSCAT.TABLES,Oracle的ALL_TABLES,信息模式INFORMATION_SCHEMA.TABLES)获取表列表。
  • 5.2 列举字段
    • 知识点:通过系统视图获取列信息(如数据类型、位置),如DB2的SYSCAT.COLUMNS,Oracle的ALL_TAB_COLUMNS
  • 5.3 列举索引列
    • 知识点:查询索引相关系统表(如DB2的SYSCAT.INDEXES,Oracle的ALL_IND_COLUMNS),了解表的索引结构。
  • 5.4 列举约束
    • 知识点:通过系统视图获取约束信息(主键、外键、检查约束等),如SYSCAT.TABCONST(DB2)、ALL_CONSTRAINTS(Oracle)。
  • 5.5 列举非索引外键
    • 知识点:结合索引和外键系统表,筛选未建立索引的外键列,优化数据库性能。
  • 5.6 用SQL生成SQL
    • 知识点:通过字符串拼接动态生成SQL脚本(如统计行数、禁用约束),实现自动化维护任务。
  • 5.7 描述Oracle数据字典视图
    • 知识点:利用Oracle的DICTIONARYDICT_COLUMNS视图,快速了解数据字典视图的结构和用途。

第6章 字符串处理

  • 6.1 遍历字符串
    • 知识点:通过笛卡儿积生成多行,用SUBSTR逐字符提取,模拟循环处理字符串,是字符串解析的基础。
  • 6.2 嵌入引号
    • 知识点:在字符串中用两个连续引号表示单个引号(如''),处理包含引号的数据。
  • 6.3 统计字符出现的次数
    • 知识点:通过LENGTHREPLACE计算原字符串与替换后字符串的长度差,除以目标字符长度,统计出现次数。
  • 6.4 删除不想要的字符
    • 知识点TRANSLATE替换目标字符为统一符号,再用REPLACE删除,或多次REPLACE逐个删除指定字符。
  • 6.5 分离数字和字符数据
    • 知识点TRANSLATE将数字或字符转换为统一符号,REPLACE删除非目标符号,分离混合数据列。
  • 6.6 判断含有字母和数字的字符串
    • 知识点TRANSLATE将字母数字转换为单一字符,比较转换后字符串是否全由该字符组成,或用正则表达式(如MySQL的REGEXP)筛选。
  • 6.7 提取姓名的首字母
    • 知识点:通过TRANSLATEREPLACE处理非字母字符,提取首字母并拼接,处理不同格式的姓名。
  • 6.8 按照子字符串排序
    • 知识点:用SUBSTR提取子串,在ORDER BY中按子串排序,如按姓名最后两个字符排序。
  • 6.9 根据字符串里的数字排序
    • 知识点:清理非数字字符(如TRANSLATE替换为数字),转换为数值类型后排序,处理混合数字的字符串。
  • 6.10 创建分隔列表
    • 知识点:不同数据库用不同方法,如MySQL的GROUP_CONCAT,Oracle的SYS_CONNECT_BY_PATH,拼接多行数据为逗号分隔字符串。
  • 6.11 分隔数据转换为多值IN列表
    • 知识点:拆分分隔字符串为多行,转换为数值后用于IN子句,处理输入的列表数据。
  • 6.12 按字母表顺序排列字符
    • 知识点:遍历字符并排序,用聚合函数拼接,实现字符串内字符的排序。
  • 6.13 识别字符串里的数字字符
    • 知识点TRANSLATE标记数字字符,筛选包含数字的行,或提取纯数字部分,处理混合数据。
  • 6.14 提取第n个分隔子字符串
    • 知识点:利用SUBSTRING_INDEX(MySQL)、SPLIT_PART(PostgreSQL)或INSTR结合SUBSTR,按分隔符提取指定位置子串。
  • 6.15 解析IP地址
    • 知识点:按.分隔符拆分IP地址为四部分,用字符串函数提取各段数值,处理网络地址数据。

第7章 数值处理

  • 7.1 计算平均值
    • 知识点AVG函数忽略Null值,分组计算(GROUP BY)各部门平均值,处理聚合统计。
  • 7.2 查找最小值和最大值
    • 知识点MINMAX函数获取列极值,支持分组统计,忽略Null值,是基本聚合函数。
  • 7.3 求和
    • 知识点SUM函数累加数值列,支持分组(GROUP BY),忽略Null值,处理数据汇总。
  • 7.4 计算行数
    • 知识点COUNT(*)统计所有行,COUNT(col)统计非Null值行数,分组统计各部门人数。
  • 7.5 计算非Null值的个数
    • 知识点COUNT(col)自动忽略Null,直接获取有效数据行数,如统计有奖金的员工数。
  • 7.6 累计求和
    • 知识点:窗口函数SUM OVER(DB2/Oracle)或标量子查询(其他数据库),按顺序累加值,生成运行总计。
  • 7.7 计算累计乘积
    • 知识点:利用对数转换和指数运算(LN+EXP)实现累计乘积,或Oracle的MODEL子句,处理数值连乘。

后续章节(8-14章及附录)

  • 第8-14章:涵盖日期运算、日期处理、区间查询、高级查询、报表生成、层次查询等,涉及窗口函数、递归查询、数据透视等高级技术,针对不同数据库的特性提供解决方案。
  • 附录A:窗口函数简介,解释分组、聚合、分区等概念,是理解高级查询的基础。
  • 附录B:重温经典SQL问题,结合新特性(如窗口函数)提供优化方案,提升查询效率。

总结

文档通过大量实例展示了SQL在数据操作中的核心技术,从基础查询到高级聚合、字符串处理、元数据查询等,覆盖多数据库差异,强调实际应用中的最佳实践(如处理Null值、避免笛卡儿积、合理使用索引等)。每个实例结合问题、解决方案和讨论,帮助读者理解不同场景下的SQL策略,是SQL开发和优化的重要参考。

相关文章:

SQL经典实例

第1章 检索记录 1.1 检索所有行和列 知识点&#xff1a;使用SELECT *快速检索表中所有列&#xff1b;显式列出列名&#xff08;如SELECT col1, col2&#xff09;提高可读性和可控性&#xff0c;尤其在编程场景中更清晰。 1.2 筛选行 知识点&#xff1a;通过WHERE子句过滤符合条…...

2025深圳杯(东三省)数学建模竞赛D题完整分析论文(共36页)(含模型、可运行代码、数据结果)

2025深圳杯数学建模竞赛D题完整分析论文 目录 摘 要 一、问题重述 二、问题分析 三、模型假设 四、符号定义 五、问题一模型的建立与求解 5.1 问题一模型的建立 5.1.1 问题建模背景 5.1.2 特征工程设计 5.1.3 分类模型结构与数学表达 5.2 问题一模型的求…...

大数据技术:从趋势到变革的全景探索

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 在数字化时代的浪潮下,大数据已经不再是一个陌生的概念。从日常生活中的社交媒体,到企业决策支持系统,再到公共管理的大数据应用,它正在改变着我们的工作和生活方式。随着技术的进步,传统的数据…...

C++【内存管理】

C语言中的动态内存管理 int main() { int* p2(int*)calloc(4,sizeof(int)); int* p3(int*)realloc(p2,sizeof(int)*10); free(p3); }这里因为扩容数据小,所以是原地扩容,p2p3地址一样,不用free(p2) 如果扩容空间大就不是原地扩容,而是新找一块空间,然后拷贝 C内存管理方式 n…...

【Go类库分享】mcp-go Go搭建MCP服务

【Go类库分享】mcp-go Go搭建MCP服务 介绍 目前Go 生态圈有两个知名的开发 MCP 的库&#xff0c;一个是mark3labs/mcp-go,另一个是metoro-io/mcp-golang。 在介绍常用库之前&#xff0c;先来简单介绍一下mcp协议&#xff1a; MCP全称Model Context Protocol 模型上下文协议&a…...

人工智能发展史 — 物理学诺奖之 Hopfield 联想和记忆神经网络模型

目录 文章目录 目录1982 年&#xff0c;Hopfield 联想和记忆神经网络模型背景知识历史&#xff1a;霍普菲尔德简介神经学&#xff1a;大脑的联想记忆机制物理学&#xff1a;磁性材料的自旋玻璃理论和能量最小值函数 Hopfield 神经网络基本原理记忆存储&#xff08;训练&#xf…...

Docker —— 技术架构的演进

Docker —— 技术架构的演进 技术架构演进总结单机架构优点缺点总结 应用数据分离架构优点缺点总结 应用服务集群架构1. Nginx2. HAProxy3. LVS&#xff08;Linux Virtual Server&#xff09;4. F5 BIG-IP对比总结选型建议 读写分离/主从分离架构1. MyCat简介 2. TDDL&#xff…...

Docker与WSL2如何清理

文章目录 Docker与WSL2如何清理一、docker占据磁盘空间核心原因分析1. WSL2 虚拟磁盘的动态扩展特性2. Docker 镜像分层缓存与未清理资源 二、解决方案步骤 1&#xff1a;清理 Docker 未使用的资源步骤 2&#xff1a;手动压缩 WSL2 虚拟磁盘1. 关闭 WSL2 和 Docker Desktop2. 定…...

单片机嵌入式按键库

kw_btn库说明 本库主要满足嵌入式按键需求&#xff0c;集成了常用的按键响应事件&#xff1a;高电平、低电平、上升沿、下降沿、单击、双击、长按键事件。可以裸机运行&#xff0c;也可以配合实时操作系统运行。 本库开源连接地址&#xff1a;gitee连接 实现思路 本库采用C语…...

多多铃声 7.4| 拥有丰富的铃声曲库,满足不同用户的个性化需求,支持一键设置手机铃声

多多铃声是一款提供丰富铃声资源的应用程序&#xff0c;它拥有广泛的铃声曲库&#xff0c;涵盖各种风格和类型&#xff0c;能够满足不同用户的个性化需求。该应用程序支持分类浏览和热门榜单功能&#xff0c;让用户可以轻松找到当前最流行或自己感兴趣的铃声。此次分享的版本为…...

基于stm32的四旋翼飞行器:MPU6050讲解 · 上(参数读取)

大伙早上好&#xff0c;不知道大伙有没有飞行器情结&#xff0c;就是学习嵌入式就想做一个能飞的东西。小白兔不才&#xff0c;小白兔有啊&#xff0c;所以最近准备做一个简单的飞行器出来&#xff0c;如果失败了&#xff0c;那么这个系列就只能烂尾了&#xff0c;如果成功了&a…...

使用xlwings将excel表中将无规律的文本型数字批量转化成真正的数字

之前我写了一篇文章excel表中将无规律的文本型数字批量转化成真正的数字-CSDN博客 是使用excel自带的操作&#xff0c;相对繁琐。 今天使用xlwings操作&#xff0c;表格如下&#xff08;有真正的数字&#xff0c;也有文本型数字&#xff0c;混在在一起&#xff09;&#xff1…...

linux netlink实现用户态和内核态数据交互

1&#xff0c;内核态代码 #include <linux/module.h> #include <linux/netlink.h> #include <net/sock.h> #define NETLINK_TEST 31 struct sock *nl_sk NULL; static void nl_recv_msg(struct sk_buff *skb) { struct nlmsghdr *nlh; int pid; …...

学习黑客安全基础理论入门

准备安全课程内容 你已安装Kali和相关工具&#xff0c;并希望从基础开始学习安全。为了使课程更加互动&#xff0c;我会提供有趣的文本&#xff0c;并结合可视化内容&#xff0c;可能还会提供一些参考链接。内容方面&#xff0c;我会根据最新的中国网络安全法律作出更新&#…...

探索内容智能化的关键解决方案

北京先智先行科技有限公司拥有三款旗舰产品&#xff0c;分别是“先知大模型”、“先行AI商学院”以及“先知AIGC超级工场”。这三款产品在企业发展过程中扮演着重要角色。  北京先智先行科技有限公司围绕先知大模型等核心要素&#xff0c;构建了完备的业务体系。先知大模型私…...

学习黑客色即是空

二、Day 3 学习目标&#xff08;保真版&#xff09; 一句话目标&#xff1a; 学会用 Asset-Threat-Vulnerability-Risk (ATVR) 四件套给任何系统快速画“风险画像”&#xff0c;并能把它映射到黑客常说的 5 阶段攻击生命周期。 1. 30 分钟理论——ATVR 四件套 概念核心定义参考…...

【Java学习】关于springBoot的自动配置和起步依赖

关于springBoot的起步依赖&#xff1a;解决了spring框架中开发者配置依赖难的问题&#xff0c;各种依赖及版本的不同&#xff0c;可能引发不同的问题&#xff0c;使得开发者的精力大部分可能耗费在非业务代码中。所以springBoot起步依赖解决了各种依赖难的配置问题。 起步依赖…...

【LLaMA-Factory实战】1.3命令行深度操作:YAML配置与多GPU训练全解析

一、引言 在大模型微调场景中&#xff0c;命令行操作是实现自动化、规模化训练的核心手段。LLaMA-Factory通过YAML配置文件和多GPU分布式训练技术&#xff0c;支持开发者高效管理复杂训练参数&#xff0c;突破单机算力限制。本文将结合结构图、实战代码和生产级部署经验&#…...

【Mytais系列】介绍、核心概念

MyBatis 是一款优秀的 持久层框架&#xff0c;它通过简化 JDBC 操作、提供灵活的 SQL 映射能力&#xff0c;成为 Java 开发中处理数据库交互的核心工具之一。以下是 MyBatis 的核心框架和概念解析&#xff1a; 一、MyBatis 框架概述 1. 核心定位 作用&#xff1a;将 Java 对象…...

Vivado FPGA 开发 | 创建工程 / 仿真 / 烧录

注&#xff1a;本文为 “Vivado FPGA 开发 | 创建工程 / 仿真 / 烧录” 相关文章合辑。 略作重排&#xff0c;未整理去重。 如有内容异常&#xff0c;请看原文。 Vivado 开发流程&#xff08;手把手教学实例&#xff09;&#xff08;FPGA&#xff09; 不完美先生 于 2018-04-…...

PowerShell从5.1升级到7.X

文章目录 环境背景安装PowerShell 7.X其它启动PowerShell 5.1和7.X$PSVersionTable.PSVersion启动PowerShell 5.1时强制启动7.X 参考 环境 Windows 11 专业版 背景 PowerShell 5.1是Windows内置的&#xff0c;发布时间是2016 年。现在PowerShell版本已经到了7.5.1&#xff0…...

域名与官网的迷思:数字身份认证的全球困境与实践解方-优雅草卓伊凡

域名与官网的迷思&#xff1a;数字身份认证的全球困境与实践解方-优雅草卓伊凡 一、官网概念的法律与技术界定 1.1 官网的实质定义 当卓伊凡被问及”公司域名就是官网吗”这一问题时&#xff0c;他首先指出&#xff1a;”这相当于问’印着某公司logo的建筑就是该公司总部吗’…...

Vue实现成绩增删案例

Vue实现成绩增删案例 案例功能需求案例实现实现思路完整代码功能演示 案例小结 案例功能需求 1.通过vue渲染数据&#xff0c;将成绩的相关信息显示出来&#xff08;学号&#xff0c;学科&#xff0c;成绩&#xff09; 2.能够增加相关的成绩信息 3.能够删除相关的成绩信息 4.能…...

开源项目实战学习之YOLO11:ultralytics-cfg-models-rtdetr(十一)

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 1. __init__.py2. model.py3. predict.py4. train.py5. val.py ultralytics-cfg-models-rtdetr 主要与 Ultralytics 库中 RTDETR&#xff08;实时目标检测模型&#xff0c;R…...

【Bootstrap V4系列】学习入门教程之 组件-按钮(Buttons)

Bootstrap V4系列 学习入门教程之 组件-按钮&#xff08;Buttons&#xff09; 按钮&#xff08;Buttons&#xff09;一、示例二、可用作按钮的 HTML 标签三、带轮廓线的按钮四、按钮的尺寸五、活动状态六、禁用状态七、按钮插件切换状态Checkbox and radio buttons &#xff08…...

【java八股文】深入浅出synchronized优化原理

&#x1f50d; 开发者资源导航 &#x1f50d;&#x1f3f7;️ 博客主页&#xff1a; 个人主页&#x1f4da; 专栏订阅&#xff1a; JavaEE全栈专栏 synchronized优化原理 synchronized即使悲观锁也是乐观锁&#xff0c;拥有自适应性。 jvm内部会统计每个锁的竞争激烈程度&…...

裴蜀定理及其证明

裴蜀定理 对于所有整数 a a a和 b b b&#xff0c;存在&#xff1a; g c d ( a , b ) a x b y gcd(a,b)axby gcd(a,b)axby 并且 a x b y axby axby一定是 g c d ( a , b ) gcd(a,b) gcd(a,b)的倍数。 证明 定义一个集合&#xff1a; { a x b y &#xff5c; a x b y &…...

单片机嵌入式CAN库

kw_can库说明 本库是针对CAN类型数据的收发设计&#xff1a; 主要应用于大数据量&#xff08;数据处理速度高于缓存CAN_RTX_FIFO_SIZE大小&#xff09;接收不丢包可快速进出接收中断可跨线程调用发送接口。 本库开源连接地址&#xff1a;gitee连接 实现思路 本库采用C语言…...

基于 JSP 和 Servlet 的数字信息分析小应用

Java Web 实验&#xff1a;基于 JSP 和 Servlet 的数字信息分析小应用 一、实验目的 实现一个简单的 Java Web 应用&#xff0c;通过 JSP 表单收集用户输入的文本信息&#xff0c;提交至 Servlet 分析其中是否包含数字&#xff0c;并返回结果。掌握 JSP 与 Servlet 的协同工作…...

从零认识阿里云OSS:云原生对象存储的核心价值

引言 在云计算时代&#xff0c;海量数据的存储与管理成为企业数字化转型的关键命题。阿里云对象存储OSS&#xff08;Object Storage Service&#xff09;作为云原生的分布式存储服务&#xff0c;凭借其独特的架构设计和丰富的功能矩阵&#xff0c;正在成为企业构建数据湖、管理…...

2025年深圳杯数学建模(东三省)B题【颜色转换】原论文讲解

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了2025年深圳杯数学建模&#xff08;东三省&#xff09;B题【颜色转换】完整的成品论文。 给大家看一下目录吧&#xff1a; 目录 摘 要&#xff1a; 一、问题重述 二&#xff0e;问题分析 2.1问题一 2.2问…...

开源语音合成和转换项目

开源语音合成和转换项目 大模型出来以后&#xff0c;语音合成和转换方面也有了很大的变化。在语音转换文字方面有Whisper、SeamlessM4T等&#xff1b;在语音合成方面有ChatTTS&#xff08;中英文&#xff09;、Orpheus TTS&#xff08;仅仅支持英文&#xff09;、Amphion&…...

考研408《计算机组成原理》复习笔记,第二章计算机性能

一、计算机各项性能指标 1、计算机系统整体的性能指标&#xff1a; 从宏观上看&#xff0c;整个计算机是由软件硬件共同性能决定的&#xff0c;但是【最主要的决定性的影响】还是来自于【硬件】 因为计算机组成原理主要讲【硬件】&#xff0c;那么我们也仅考虑【硬件性能】 2…...

智能决策支持系统的基本概念与理论体系

决策支持系统是管理科学的一个分支&#xff0c;原本与人工智能属于不同的学科范畴&#xff0c;但自20世纪80年代以来&#xff0c;由于专家系统在许多方面取得了成功&#xff0c;于是人们开始考虑把人工智能技术用于计算机管理中来。在用计算机所进行的各种管理中&#xff0c;如…...

什么是运算符重载

运算符重载&#xff0c;就是对已有的运算符重新进行定义&#xff0c;赋予其另一种功能&#xff0c;以适应不同的数据类型&#xff0c;本质上是函数重载。以下为您详细介绍&#xff1a; 实现原理与方式 - 原理&#xff1a;把指定的运算表达式转化为对运算符函数的调用&#xff0…...

自定义Dockerfile,发布springboot项目

(1) 上传jar包 把hello项目打成一个可执行的jar包 hello-1.0-SNAPSHOT.jar&#xff0c;把这个jar包上传到linux中 (2) 创建文件&#xff0c;文件名my_hello&#xff08;就是一个Dockerfile&#xff09;&#xff0c;内容如下 #1.定义父镜像(定义当前工程依赖的环境)&#xff1a;…...

什么是多租户系统

随着云计算和 SaaS&#xff08;Software as a Service&#xff09;模式的普及&#xff0c;多租户架构&#xff08;Multi-Tenant Architecture&#xff09;成为 SaaS 产品设计中的核心模式之一。多租户架构允许多个用户&#xff08;租户&#xff09;共享同一套基础设施和应用&am…...

摩尔缠论课程合集完整版核心课程前置课程圈子问答星球圈子摩尔缠论三个阶段

一、教程描述 这是一套摩尔缠论课程合集&#xff08;完整版&#xff09;&#xff0c;内容非常系统并且极为全面&#xff0c;包括视频、图片和文档等不同文件类型&#xff0c;摩尔缠论共有三个版本&#xff0c;有些类似软件版本迭代&#xff0c;后一版本是前一版本的升级和进化…...

java学习之数据结构:三、八大排序

主要介绍学过的各种排序算法 目录 1.插入排序 1.1直接插入排序 1.2希尔排序 2.选择排序 2.1直接选择排序 2.2堆排序 3.交换排序 3.1冒泡排序 3.2快速排序 4.归并排序 5.基数排序 1.插入排序 1.1直接插入排序 基本思想&#xff1a;就是将待排序的数据按照其元素值的…...

Docker Compose:服务编排:批量管理多个容器

通过docker compose进行容器批量管理&#xff1a;一次性启动四个容器&#xff08;nginx&#xff0c;tomcat&#xff0c;redis&#xff0c;mysql&#xff09; &#xff08;1&#xff09; 创建docker-compose目录 mkdir ~/docker-compose cd ~/docker-compose &#xff08;2&…...

微服务设计约束

相较于单体应用&#xff0c;微服务架构在提升开发、部署等环节灵活性的同时&#xff0c;也提升了在运维、监控环节的复杂性。结合实践总结&#xff0c;微服务架构的设计有以下四条设计约束遵循&#xff1a; (1)微服务个体约束 一个设计良好的微服务应用&#xff0c;所完成的功…...

C语言中的自定义类型 —— 结构体.位段.联合体和枚举

自定义类型 1. 前言2. 结构体2.1 结构体的声明2.2 结构体变量的定义和初始化2.3 结构体的特殊声明2.4 结构体的自引用2.5 结构体的内存对齐2.6 修改默认对齐数2.7 结构体传参 3. 位段4. 联合体5. 枚举6. 结言 1. 前言 在C语言中已经为用过户提供了内置类型&#xff0c;如&…...

【序列贪心】摆动序列 / 最长递增子序列 / 递增的三元子序列 / 最长连续递增序列

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;贪心算法 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 摆动序列最长递增子序列递增的三元子序列最长连续递增序列 摆动序列 摆动序列 贪心策略&#xff1a;统计出所有的极大值和极小…...

从零开发一个B站视频数据统计Chrome插件

从零开发一个B站视频数据统计Chrome插件 前言 B站&#xff08;哔哩哔哩&#xff09;作为国内最大的弹幕视频网站之一&#xff0c;视频的播放量、点赞、投币、收藏等数据对于内容创作者和数据分析者来说非常重要。本文将带你一步步实现一个Chrome插件&#xff0c;自动统计并展…...

【Python实战】飞机大战

开发一个飞机大战游戏是Python学习的经典实战项目&#xff0c;尤其适合结合面向对象编程和游戏框架&#xff08;如Pygame&#xff09;进行实践。以下是游戏设计的核心考虑因素和模块划分建议&#xff1a; 一、游戏设计核心考虑因素 性能优化 Python游戏需注意帧率控制&#xff…...

WebAPI项目从Newtonsoft.Json迁移到System.Text.Json踩坑备忘

1.控制器层方法返回类型不能为元组 控制器层方法返回类型为元组时&#xff0c;序列化结果为空。 因为元组没有属性只有field&#xff0c;除非使用IncludeFields参数专门指定&#xff0c;否则使用System.Text.Json进行序列化时不会序列化field var options new JsonSerializ…...

人工智能助力工业制造:迈向智能制造的未来

在当今数字化转型的浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;技术正逐渐成为推动工业制造领域变革的核心力量。智能制造作为工业 4.0 的重要组成部分&#xff0c;通过将 AI 技术与传统制造工艺深度融合&#xff0c;正在重塑整个生产流程&#xff0c;提高生产效率、…...

影楼精修-露齿笑算法解析

注意&#xff0c;为避免侵权&#xff0c;本文图片均为AIGC生成或网络公开数据&#xff1b; 像素蛋糕-露齿笑 在介绍本文之前&#xff0c;先说一下&#xff0c;其实露齿笑特效&#xff0c;并非像素蛋糕首创&#xff0c;早在几年前&#xff0c;face app就率先推出了这个效果&am…...

【iview】es6变量结构赋值(对象赋值)

变量的解构赋值 以iview的src/index.js中Vue.prototype.$IVIEW改造为例练习下怎么使用变量的解构赋值 原来的写法&#xff1a; const install function(Vue, opts {}) {if (install.installed) return;locale.use(opts.locale);locale.i18n(opts.i18n);Object.keys(iview).fo…...

在Windows系统中使用Docker发布镜像到镜像仓库

在Windows系统中使用Docker发布镜像到镜像仓库的步骤如下&#xff1a; 步骤 1&#xff1a;安装并配置Docker 安装Docker Desktop • 下载Docker Desktop for Windows并安装。 • 确保启用WSL 2或Hyper-V后端&#xff08;根据系统版本选择&#xff09;。 验证Docker运行状态 打…...