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

MySQL中的公用表表达式CTE实战案例应用

很多同学不会使用MySQL中的公用表表达式,今天这篇文章详细为大家介绍一下。

基础概念:
公用表表达式:MySQL中的公用表表达式(Common Table Expressions,简称CTE)是一种临时的结果集,它可以在一个SELECT、INSERT、UPDATE或DELETE语句中被引用多次。CTE可以使得复杂的查询更加清晰和易于理解,因为它允许将查询分解为多个简单的部分。

实战案例:

先模拟点表和数据,数据大家可以自己造,以下只是方便为大家讲解,随机造的数据:

1. 创建表结构和数据

-- 创建员工表
CREATE TABLE employees (employee_id INT PRIMARY KEY,name VARCHAR(100),department_id INT,salary DECIMAL(10, 2),manager_id INT,hire_date DATE
);-- 创建部门表
CREATE TABLE departments (department_id INT PRIMARY KEY,department_name VARCHAR(100),location VARCHAR(100)
);-- 创建订单表
CREATE TABLE orders (order_id INT PRIMARY KEY,customer_id INT,order_date DATE,total_amount DECIMAL(10, 2)
);-- 创建订单详情表
CREATE TABLE order_details (order_detail_id INT PRIMARY KEY,order_id INT,product_id INT,quantity INT,price DECIMAL(10, 2)
);-- 创建产品表
CREATE TABLE products (product_id INT PRIMARY KEY,product_name VARCHAR(100),category_id INT,unit_price DECIMAL(10, 2)
);-- 创建客户表
CREATE TABLE customers (customer_id INT PRIMARY KEY,customer_name VARCHAR(100),city VARCHAR(100),country VARCHAR(100)
);-- 插入部门数据
INSERT INTO departments VALUES
(1, '研发部', '北京'),
(2, '市场部', '上海'),
(3, '财务部', '广州'),
(4, '人力资源部', '深圳'),
(5, '销售部', '杭州');-- 插入员工数据
INSERT INTO employees VALUES
(1, '张三', 1, 15000.00, NULL, '2018-01-15'),
(2, '李四', 1, 12000.00, 1, '2019-03-20'),
(3, '王五', 2, 13000.00, 1, '2018-05-10'),
(4, '赵六', 2, 10000.00, 3, '2020-02-25'),
(5, '钱七', 3, 11000.00, 1, '2019-07-12'),
(6, '孙八', 3, 9500.00, 5, '2021-01-05'),
(7, '周九', 4, 12500.00, 1, '2018-11-30'),
(8, '吴十', 5, 14000.00, 1, '2019-04-18'),
(9, '郑十一', 5, 10500.00, 8, '2020-08-22'),
(10, '刘十二', 5, 9000.00, 8, '2021-03-15');-- 插入客户数据
INSERT INTO customers VALUES
(1, '阿里巴巴', '杭州', '中国'),
(2, '腾讯', '深圳', '中国'),
(3, '百度', '北京', '中国'),
(4, '京东', '北京', '中国'),
(5, '华为', '深圳', '中国'),
(6, 'Apple', '纽约', '美国'),
(7, 'Google', '旧金山', '美国'),
(8, 'Microsoft', '西雅图', '美国');-- 插入产品数据
INSERT INTO products VALUES
(1, '笔记本电脑', 1, 8999.00),
(2, '智能手机', 1, 4999.00),
(3, '平板电脑', 1, 3999.00),
(4, '办公桌', 2, 1200.00),
(5, '办公椅', 2, 800.00),
(6, '打印机', 3, 2500.00),
(7, '投影仪', 3, 5000.00),
(8, '复印机', 3, 12000.00);-- 插入订单数据
INSERT INTO orders VALUES
(1, 1, '2023-01-15', 26997.00),
(2, 2, '2023-02-20', 9998.00),
(3, 3, '2023-03-10', 7998.00),
(4, 4, '2023-04-05', 12000.00),
(5, 1, '2023-05-12', 8000.00),
(6, 5, '2023-06-18', 15000.00),
(7, 6, '2023-07-22', 7500.00),
(8, 7, '2023-08-30', 24000.00);-- 插入订单详情数据
INSERT INTO order_details VALUES
(1, 1, 1, 3, 8999.00),
(2, 2, 2, 2, 4999.00),
(3, 3, 3, 2, 3999.00),
(4, 4, 4, 10, 1200.00),
(5, 5, 5, 10, 800.00),
(6, 6, 1, 1, 8999.00),
(7, 6, 2, 1, 4999.00),
(8, 7, 6, 3, 2500.00),
(9, 8, 8, 2, 12000.00);

2. WITH查询案例

案例1: 查询每个部门的平均工资并与公司整体平均工资比较
WITH dept_avg_salary AS (SELECT d.department_id,d.department_name,AVG(e.salary) AS avg_salaryFROM departments dJOIN employees e ON d.department_id = e.department_idGROUP BY d.department_id, d.department_name
),
company_avg AS (SELECT AVG(salary) AS company_avg_salaryFROM employees
)
SELECT d.department_id,d.department_name,d.avg_salary,c.company_avg_salary,d.avg_salary - c.company_avg_salary AS salary_difference
FROM dept_avg_salary d
CROSS JOIN company_avg c
ORDER BY d.avg_salary DESC;

在这里插入图片描述

案例2: 找出每个部门薪资最高的员工
WITH ranked_employees AS (SELECT e.employee_id,e.name,e.salary,e.department_id,d.department_name,RANK() OVER (PARTITION BY e.department_id ORDER BY e.salary DESC) AS salary_rankFROM employees eJOIN departments d ON e.department_id = d.department_id
)
SELECT employee_id,name,department_name,salary
FROM ranked_employees
WHERE salary_rank = 1
ORDER BY department_id;

在这里插入图片描述

案例3: 递归查询员工上下级关系
WITH RECURSIVE employee_hierarchy AS (-- 基础查询:找出顶级管理者SELECT employee_id,name,manager_id,1 AS level,CAST(name AS CHAR(1000)) AS hierarchy_pathFROM employeesWHERE manager_id IS NULLUNION ALL-- 递归查询:找出所有下属SELECT e.employee_id,e.name,e.manager_id,eh.level + 1,CONCAT(eh.hierarchy_path, ' > ', e.name)FROM employees eJOIN employee_hierarchy eh ON e.manager_id = eh.employee_id
)
SELECT employee_id,name,manager_id,level,hierarchy_path
FROM employee_hierarchy
ORDER BY level, employee_id;

在这里插入图片描述

案例4: 计算各城市的销售额并排名
WITH city_sales AS (SELECT c.city,SUM(o.total_amount) AS total_salesFROM customers cJOIN orders o ON c.customer_id = o.customer_idGROUP BY c.city
),
ranked_cities AS (SELECT city,total_sales,RANK() OVER (ORDER BY total_sales DESC) AS sales_rankFROM city_sales
)
SELECT city,total_sales,sales_rank
FROM ranked_cities
ORDER BY sales_rank;

在这里插入图片描述

案例5: 查找热门产品(销售额前3的产品)
WITH product_sales AS (SELECT p.product_id,p.product_name,SUM(od.quantity * od.price) AS total_salesFROM products pJOIN order_details od ON p.product_id = od.product_idGROUP BY p.product_id, p.product_name
),
ranked_products AS (SELECT product_id,product_name,total_sales,RANK() OVER (ORDER BY total_sales DESC) AS sales_rankFROM product_sales
)
SELECT product_id,product_name,total_sales
FROM ranked_products
WHERE sales_rank <= 3
ORDER BY sales_rank;

在这里插入图片描述

案例6: 计算每个月的销售额及环比增长率
WITH monthly_sales AS (SELECT YEAR(order_date) AS year,MONTH(order_date) AS month,SUM(total_amount) AS monthly_salesFROM ordersGROUP BY YEAR(order_date), MONTH(order_date)
),
sales_growth AS (SELECT ms.year,ms.month,ms.monthly_sales,LAG(ms.monthly_sales) OVER (ORDER BY ms.year, ms.month) AS prev_month_salesFROM monthly_sales ms
)
SELECT year,month,monthly_sales,prev_month_sales,CASE WHEN prev_month_sales IS NULL THEN NULLELSE ROUND((monthly_sales - prev_month_sales) / prev_month_sales * 100, 2)END AS growth_rate_percentage
FROM sales_growth
ORDER BY year, month;

在这里插入图片描述

案例7: 查找重复购买的客户及其总消费额
WITH customer_order_count AS (SELECT customer_id,COUNT(*) AS order_count,SUM(total_amount) AS total_spentFROM ordersGROUP BY customer_idHAVING COUNT(*) > 1
)
SELECT c.customer_id,c.customer_name,c.city,c.country,coc.order_count,coc.total_spent
FROM customer_order_count coc
JOIN customers c ON coc.customer_id = c.customer_id
ORDER BY coc.total_spent DESC;
案例8: 各部门员工工资区间分布
WITH salary_ranges AS (SELECT department_id,COUNT(CASE WHEN salary < 10000 THEN 1 END) AS low_salary,COUNT(CASE WHEN salary >= 10000 AND salary < 13000 THEN 1 END) AS medium_salary,COUNT(CASE WHEN salary >= 13000 THEN 1 END) AS high_salary,COUNT(*) AS total_employeesFROM employeesGROUP BY department_id
)
SELECT d.department_id,d.department_name,sr.low_salary,ROUND(sr.low_salary / sr.total_employees * 100, 2) AS low_salary_percentage,sr.medium_salary,ROUND(sr.medium_salary / sr.total_employees * 100, 2) AS medium_salary_percentage,sr.high_salary,ROUND(sr.high_salary / sr.total_employees * 100, 2) AS high_salary_percentage,sr.total_employees
FROM salary_ranges sr
JOIN departments d ON sr.department_id = d.department_id
ORDER BY d.department_id;

在这里插入图片描述

案例9: 查找客户购买的不同产品种类及总金额
WITH customer_products AS (SELECT o.customer_id,COUNT(DISTINCT od.product_id) AS distinct_products,SUM(od.quantity * od.price) AS total_amountFROM orders oJOIN order_details od ON o.order_id = od.order_idGROUP BY o.customer_id
),
avg_products AS (SELECT AVG(distinct_products) AS avg_distinct_productsFROM customer_products
)
SELECT c.customer_id,c.customer_name,cp.distinct_products,cp.total_amount,CASE WHEN cp.distinct_products > ap.avg_distinct_products THEN '多样化消费'ELSE '专一消费'END AS customer_type
FROM customer_products cp
JOIN customers c ON cp.customer_id = c.customer_id
CROSS JOIN avg_products ap
ORDER BY cp.distinct_products DESC, cp.total_amount DESC;

在这里插入图片描述

案例10: 计算员工的入职年限并按部门统计
WITH employee_tenure AS (SELECT employee_id,name,department_id,TIMESTAMPDIFF(YEAR, hire_date, CURDATE()) AS years_of_serviceFROM employees
),
dept_tenure_stats AS (SELECT department_id,AVG(years_of_service) AS avg_tenure,MIN(years_of_service) AS min_tenure,MAX(years_of_service) AS max_tenureFROM employee_tenureGROUP BY department_id
)
SELECT d.department_id,d.department_name,ROUND(dts.avg_tenure, 1) AS avg_years_of_service,dts.min_tenure AS min_years_of_service,dts.max_tenure AS max_years_of_service,COUNT(e.employee_id) AS employee_count
FROM departments d
JOIN dept_tenure_stats dts ON d.department_id = dts.department_id
JOIN employees e ON d.department_id = e.department_id
GROUP BY d.department_id, d.department_name, dts.avg_tenure, dts.min_tenure, dts.max_tenure
ORDER BY avg_years_of_service DESC;

在这里插入图片描述

需要注意的是,MySQL 5.7及以下版本不支持WITH RECURSIVE语法,只有MySQL 8.0及以上版本才支持完整的CTE功能,包括递归CTE。

相关文章:

MySQL中的公用表表达式CTE实战案例应用

很多同学不会使用MySQL中的公用表表达式&#xff0c;今天这篇文章详细为大家介绍一下。 基础概念&#xff1a; 公用表表达式&#xff1a;MySQL中的公用表表达式&#xff08;Common Table Expressions&#xff0c;简称CTE&#xff09;是一种临时的结果集&#xff0c;它可以在一…...

开源TTS项目GPT-SoVITS,支持跨语言合成、支持多语言~

简介 GPT-SoVITS 是一个开源的文本转语音&#xff08;TTS&#xff09;项目&#xff0c;旨在通过少量语音数据实现高质量的语音合成。其核心理念是将基于变换器的模型&#xff08;如 GPT&#xff09;与语音合成技术&#xff08;如 SoVITS&#xff0c;可能指“唱歌语音合成”&am…...

从零开始:Python运行环境之VSCode与Anaconda安装配置全攻略 (1)

从零开始&#xff1a;Python 运行环境之 VSCode 与 Anaconda 安装配置全攻略 在当今数字化时代&#xff0c;Python 作为一种功能强大且易于学习的编程语言&#xff0c;被广泛应用于数据科学、人工智能、Web 开发等众多领域。为了顺利开启 Python 编程之旅&#xff0c;搭建一个稳…...

3月报|DolphinScheduler项目进展一览

各位热爱 Apache DolphinScheduler 的小伙伴们&#xff0c;社区3月报来啦&#xff01;来查看上个月项目的进展吧&#xff01; 月度Merge Star 感谢以下小伙伴上个月为 Apache DolphinScheduler 所做的精彩贡献&#xff08;排名不分先后&#xff09;&#xff1a; “ruanwenj…...

Flutter 应用在真机上调试的流程

在真机上调试 Flutter 应用的方法 调试 Flutter 应用有多种方式&#xff0c;可以使用 USB 数据线连接设备到电脑进行调试&#xff0c;也可以通过无线方式进行真机调试。对于 iOS 开发者&#xff0c;使用 appuploader 这样的工具可以更高效地管理开发流程。 1. 有线调试 设备…...

QML TableView:基础用法和自定义样式实现

目录 引言相关阅读工程结构示例一&#xff1a;基础TableView实现代码解析运行效果 示例二&#xff1a;自定义样式TableView代码解析运行效果 主界面运行效果 总结工程下载 引言 TableView作为Qt Quick中的一个核心控件&#xff0c;具有高性能、灵活性强的特点&#xff0c;能够…...

实战指南:封装Whisper为FastAPI接口并实现高并发处理-附整合包

实战指南&#xff1a;封装Whisper为FastAPI接口并实现高并发处理 下面给出一个详细的示例&#xff0c;说明如何使用 FastAPI 封装 OpenAI 的 Whisper 模型&#xff0c;提供一个对外的 REST API 接口&#xff0c;并支持一定的并发请求。 下面是主要步骤和示例代码。 1. 环境准备…...

算法——通俗讲解升幂定理

一、生活比喻&#xff1a;台阶与放大镜 想象你有一盏灯&#xff0c;光线穿过一层玻璃&#xff08;基础台阶&#xff09;&#xff0c;每层玻璃会过滤掉一定颜色的光&#xff08;质数 ( p )&#xff09;。升幂定理就像在灯前叠加放大镜&#xff08;指数 ( n )&#xff09;&#…...

DeepSpeed ZeRO++:降低4倍网络通信,显著提高大模型及类ChatGPT模型训练效率

图1: DeepSpeed ZeRO 简介 大型 AI 模型正在改变数字世界。基于大型语言模型 (LLM)的 Turing-NLG、ChatGPT 和 GPT-4 等生成语言模型用途广泛&#xff0c;能够执行摘要、代码生成和翻译等任务。 同样&#xff0c;DALLE、Microsoft Designer 和 Bing Image Creator 等大型多模…...

【Audio开发四】音频audio中underrun和overrun原因详解和解决方案

一&#xff0c;underrun & overrun定义 我们知道&#xff0c;在Audio模块中数据采用的是生产者-消费者模式&#xff0c;生产者负责生产数据&#xff0c;消费者用于消费数据&#xff0c;针对AudioTrack和AudioRecord&#xff0c;其对应的角色不同&#xff1b; AudioTrack …...

[CMake] vcpkg的使用方法

C第三方库管理工具vcpkg使用教程。 如果要在vscode当中使用 1. 使用 CMakePresets.txt 来配置configure时的参数 2. 设置如下 即可正常编译...

光纤模块全解:深入了解XFP、SFP、QSFP28等类型

随着信息技术的快速发展&#xff0c;数据中心和网络的带宽需求不断提高&#xff0c;光纤模块的选择与应用显得尤为重要。光纤模块是实现高速网络连接的重要组件&#xff0c;选择合适的模块能够显著提升传输性能、降低延迟。本文将深入解析几种常见的光纤模块类型&#xff0c;包…...

【数据结构】之散列

一、定义与基本术语 &#xff08;一&#xff09;、定义 散列&#xff08;Hash&#xff09;是一种将键&#xff08;key&#xff09;通过散列函数映射到一个固定大小的数组中的技术&#xff0c;因为键值对的映射关系&#xff0c;散列表可以实现快速的插入、删除和查找操作。在这…...

利用pnpm patch命令实现依赖包热更新:精准打补丁指南

需求场景 在Element Plus的el-table组件二次开发中&#xff0c;需新增列显示/隐藏控件功能。直接修改node_modules源码存在两大痛点&#xff1a; 团队协作时修改无法同步 依赖更新导致自定义代码丢失 解决方案选型 通过patch-package工具实现&#xff1a; &#x1f4e6; 非…...

pve常用命令

pve常用命令 虚拟机管理容器管理集群管理存储与磁盘管理网络相关备份/还原手动备份计划任务备份&#xff08;Web 界面常用&#xff09;还原备份 快照创建快照查看快照恢复快照删除快照 其他实用命令 虚拟机管理 # 查看所有虚拟机列表 qm list# 查看虚拟机运行状态 qm status 1…...

数据结构(三)---单向循环链表

单向循环链表&#xff08;Circular Linked List&#xff09; 一、基本概念 循环链表是一种特殊的链表&#xff0c;其末尾节点的后继指针指向头结点&#xff0c;形成一个闭环。 循环链表的操作与普通链表基本一致&#xff0c;但需注意循环特性的处理。 二、代码实现 clList…...

HCIP-H12-821 核心知识梳理 (3)

从EBGP邻居接受的路由发送给IBGP邻居的时候&#xff0c;下一跳不会自动修改。一个 Route - Policy 最多可配置 65535个节点 BFD 单跳使用UDP3784端口多跳使用UDP 4784端口。 防火墙 Local&#xff1a;代表防火墙自身&#xff0c;处理防火墙本地发起或接收的流量 。 优先级 100I…...

Vue接口平台学习七——接口调试页面请求体

一、实现效果图及简单梳理 请求体部分的左边&#xff0c;展示参数&#xff0c;分text和file类型。 右边部分一个el-upload的上传文件按钮&#xff0c;一个table列表展示&#xff0c;一个显示框&#xff0c;用于预览选择的文件&#xff0c;点击可大图展示。 二、页面内容实现 …...

STM32

GPIO 输入输出模式 GPIO 输出描述 GPIO_Mode_Out_OD 开漏输出模式&#xff1a; 1.对输入数据寄存器的读访问可得到I/O状态 HAL输出输出模式 GPIO输出描述GPIO_MODE_OUTPUT_PP推挽输出GPIO_MODE_OUTPUT_OD开漏输出GPIO输入GPIO_PULLUP上拉输入 寄存器 GPIOx->ODR/IDR …...

linux如何用关键字搜索日志

在 Linux 系统中搜索日志是日常运维的重要工作&#xff0c;以下是几种常用的关键字搜索日志方法&#xff1a; 1. 基础 grep 搜索 bash 复制 # 基本搜索&#xff08;区分大小写&#xff09; grep "keyword" /var/log/syslog# 忽略大小写搜索 grep -i "error&…...

381_C++_decrypt解密数据、encrypt加密数据,帧头和数据buffer分开

仿照.cpp中将帧头和数据分开处理的方式来修改.cpp中的加密: if (StreamCipher::self().needEncrypt()) {// 创建加密缓冲区static std::vector...

MongoDB常见语句

目录 1. 增删改 2. 评估查询运算符 3. 比较查询运算符 4. 逻辑运算符 5. 元素运算符 6. 数组查询运算符 7. 字段更新操作符 8. 数组更新操作符 10. 聚合管道 1. 增删改 增 db.getCollection("Y").insert({"age": 10,name: "ces5"});//增…...

Kotlin学习记录2

Android Studio中的注意事项 本文为个人学习记录&#xff0c;仅供参考&#xff0c;如有错误请指出。本文主要记录在Android Studio中开发时遇到的问题和回答。 Fragment有哪些特性&#xff1f; Fragment 是 Android 开发中的一个重要组件&#xff0c;具有以下特性&#xff1a…...

如何通过工具实现流程自动化

通过自动化工具&#xff0c;企业可以显著提高工作效率、降低人为错误、节省时间和成本。现代企业的运营中&#xff0c;流程管理是确保工作顺畅的关键&#xff0c;而人工处理繁琐的流程不仅容易出错&#xff0c;还会消耗大量的时间和人力资源。通过使用适合的自动化工具&#xf…...

组合数哭唧唧

前言&#xff1a;手写一个简单的组合数&#xff0c;但是由于长期没写&#xff0c;导致一些细节没处理好 题目链接 #include<bits/stdc.h> using namespace std; #define endl "\n"#define int long longconst int N (int)2e510; const int Mod (int)1e97;int…...

LINUX基石

Vim编辑器Linux系统常用命令管理Linux实例软件源Nginx服务配置多站点Cron定时任务在Linux系统上安装图形化界面升级Linux ECS实例内核设置Linux实例的预留内存Linux系统中TCP/UDP端口测试方法进入Linux/FreeBSD系统的单用户模式 Vim编辑器 linux系统默认安装vim编辑器。终端中…...

Flowable工程化改造相关文档

本章将针对前期进行的Flowable流程引擎研究&#xff0c;进行相应的工程化改造&#xff0c;改造过程分别为对Flowable引擎流程文件远程化处理&#xff0c;流程过程接口化升级&#xff0c;等方面进行改造&#xff0c;以适配其他项目对流程引擎的API调用 首先对流程引擎项目主要流…...

架构设计系列

架构设计系列&#xff1a;什么是架构设计架构设计系列&#xff1a;几个常用的架构设计原则架构设计系列&#xff1a;高并发系统的设计目标架构设计系列&#xff1a;如何设计可扩展架构架构设计系列&#xff1a;如何设计高性能架构架构设计系列&#xff1a;如何设计高可用架构架…...

波束形成(BF)从算法仿真到工程源码实现-第十节-非线性波束形成

一、概述 本节我们基于webrtc的非线性波束形成进行代码仿真&#xff0c;并对仿真结果进行展示和分析总结。更多资料和代码可以进入https://t.zsxq.com/qgmoN &#xff0c;同时欢迎大家提出宝贵的建议&#xff0c;以共同探讨学习。 二、仿真代码 2.1 常量参数 % *author : a…...

QuickAPI 全生命周期管理:从开发到退役的闭环实践​

数据 API 作为企业核心的数据资产&#xff0c;其生命周期管理直接影响数据服务的稳定性、安全性和复用效率。麦聪 QuickAPI 通过可视化、智能化的管理工具&#xff0c;构建了覆盖 API 全生命周期的闭环管理体系&#xff0c;实现从 "粗放式开发" 到 "精细化运营&…...

STM32 TDS+温度补偿

#define POLAR_CONSTANT (513385) /* 电导池常数&#xff0c;可通过与标准TDS测量仪对比计算反推 */ #define TDS_COEFFICIENT (55U) /* TDS 0.55 * 电子传导率*/void TDS_Value_Conversion() {u32 ad0;u8 i;float compensationCoefficient;float compens…...

【四川省第三届青少年C++算法设计大赛 (小低组) 第 一试】

一、单项选择题(共15题&#xff0c;每题2分&#xff0c;共计30分;每题有且仅有一个正确选项) 1、计算机中负责执行算术和逻辑运算的部件是() A. 内存 B.CPU C.硬盘 D.鼠标 2、近期备受关注的国产开源生成式人工智能大模型是() A. AlphaChat B. …...

疾控01-实验室信息管理系统需求分析

支持录入送检单位的基本信息&#xff0c;包括单位名称、联系方式、地址、联系人等。支持修改、删除、查询功能&#xff1b;支持录入检验目的的具体内容&#xff0c;如疾病类型&#xff08;例如血液检测、癌症检测&#xff09;或样本来源&#xff08;如水质监测、食品安全检测&a…...

Redis之RedLock算法以及底层原理

自研redis分布式锁存在的问题以及面试切入点 lock加锁关键逻辑 unlock解锁的关键逻辑 使用Redis的分布式锁 之前手写的redis分布式锁有什么缺点&#xff1f;&#xff1f; Redis之父的RedLock算法 Redis也提供了Redlock算法&#xff0c;用来实现基于多个实例的分布式锁。…...

【JavaScript】二十二、通过关系查找DOM节点、新增、删除

文章目录 1、DOM节点的分类2、查找亲戚节点2.1 父节点查找2.2 子节点查找2.3 兄弟节点查找 3、新增节点3.1 创建新节点3.2 追加节点3.3 克隆节点3.4 案例&#xff1a;学成在线页面数据渲染 4、删除节点 1、DOM节点的分类 DOM树里每一个内容都称之为节点&#xff0c;节点分为三…...

SQL学习-关联查询(应用于多表查询)

复习 前几篇写的基础查询语法复习 以上都在单一表单内进行查询&#xff0c;那么我们需要用到多个表单的数据时&#xff0c;我们应该怎么处理呢&#xff1f; 关联查询 在excle文档中我们的处理方式如下 excle的这个查询虽然简单直观&#xff0c;但是也具有一定的局限性 比…...

在 MySQL 单表存储 500 万数据的场景下,如何设计读取

在 MySQL 单表存储 500 万数据的场景下,设计高效读取方案需要从 查询优化、架构扩展、硬件调优 三个层面综合考虑。以下是具体方案,结合实际项目经验(如标易行投标服务平台)进行分析: 一、查询优化:降低单次查询开销 1. 索引优化 核心原则:仅为高频查询条件、排序字段、…...

Python使用FastMCP开发MCP服务端

MCP简介 Model Context Protocol (MCP) 是一个专门为 LLM&#xff08;大语言模型&#xff09;应用设计的协议&#xff0c;它允许你构建服务器以安全、标准化的方式向 LLM 应用程序公开数据和功能。FastMCP 作为 Python 生态中的一款轻量级框架&#xff0c;利用装饰器来简化路由…...

ESLint常见错误

1、Strings must use singlequote —— 字符串必须使用单引号 2、Extra semicolon semi——额外的分号&#xff1a;一行语句结尾不能添加分号 3、Unexpected trailing comma —— 行尾多了一个逗号 4、Newline required at end of file but not found ——文件结尾必须要新加…...

京东硬核挑战潜规则,外卖算法要变天?

刘强东这次回归后的动作&#xff0c;真是越来越有看头了&#xff01;最近那段内部讲话视频爆出来&#xff0c;直接扔了个重磅炸弹&#xff1a;京东外卖&#xff0c;净利润率永远不许超过5%&#xff0c;谁敢超标就得挨处分&#xff01;这话一出&#xff0c;整个外卖圈估计都得抖…...

怎样利用 macOS 自带功能快速进行批量重命名文件教程

在日常办公或个人使用中&#xff0c;我们经常需要对多个文件进行重命名操作。幸运的是&#xff0c;macOS 提供了一套非常实用的内置工具&#xff0c;可以轻松完成这一任务而无需借助任何第三方应用程序。今天&#xff0c;我们就来详细介绍如何利用 macOS 自带的功能实现文件的批…...

Java Spring Cloud框架使用及常见问题

Spring Cloud作为基于Spring Boot的分布式微服务框架&#xff0c;显著简化了微服务架构的开发与管理。其核心优势包括集成Eureka、Ribbon、Hystrix等组件&#xff0c;提供一站式服务发现、负载均衡、熔断容错等解决方案&#xff0c;支持动态配置与消息总线&#xff0c;实现高效…...

机器视觉检测Pin针歪斜应用

在现代电子制造业中&#xff0c;Pin针&#xff08;插针&#xff09;是连接器、芯片插座、PCB板等元器件的关键部件。如果Pin针歪斜&#xff0c;可能导致接触不良、短路&#xff0c;甚至整机失效。传统的人工检测不仅效率低&#xff0c;还容易疲劳漏检。 MasterAlign 机器视觉对…...

抗量子算法验证工具

抗量子算法计算工具 抗量子算法验证工具ML-KEMML-DSASLH-DSA 抗量子算法验证工具 2024年末&#xff0c;美国NIST陆续公布了FIPS-203、FIPS-204、FIPS-205算法标准文档&#xff0c;抽空学习了一下&#xff0c;做了个算法计算工具。 ML-KEM ML-DSA SLH-DSA 需要的朋友可留言交流…...

临床协调简历模板

模板信息 简历范文名称&#xff1a;临床协调简历模板&#xff0c;所属行业&#xff1a;其他 | 职位&#xff0c;模板编号&#xff1a;C1S3WO 专业的个人简历模板&#xff0c;逻辑清晰&#xff0c;排版简洁美观&#xff0c;让你的个人简历显得更专业&#xff0c;找到好工作。希…...

linux命令八

tmux防止远程管理中断 格式:tmux # 进入会话模式 进入会话模式后,你进行文件的压缩时,如果远程管理突然中断,也不会影响压缩的进程 DNS服务器 作用&#xff1a;负责域名解析的服务器&#xff0c;将域名解析为IP地址 /etc/resolv.conf:指定DNS服务器地址配置文件 日志管理 •常见…...

37-串联所有单词的子串

给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如&#xff0c;如果 words ["ab","cd","ef"]&#xff0c; 那么 "abcdef…...

机器学习赋能的多尺度材料模拟与催化设计前沿技术

随着新能源、先进制造等领域对功能材料性能要求的日益严苛&#xff0c;传统材料研发模式面临显著挑战&#xff1a;跨尺度关联机制不清晰、实验试错周期长、计算资源消耗巨大。人工智能技术与多尺度模拟方法的深度融合&#xff0c;为材料科学开辟了“数据驱动物理建模”的创新路…...

HarmonyOS-ArkUI V2工具类:AppStorageV2:应用全局UI状态存储

AppStorageV2是一个能够跨界面存储数据,管理数据的类。开发者可以使用AppStorageV2来存储全局UI状态变量数据。它提供的是应用级的全局共享能力,开发者可以通过connect绑定同一个key,进行跨ability数据共享。 概述 AppStorageV2是一个单例,创建时间是应用UI启动时。其目的…...

【Linux】进程池bug、命名管道、systemV共享内存

一.进程池bug 我们在之前进程池的创建中是通过循环创建管道&#xff0c;并且让子进程与父进程关闭不要的读写段以构成通信信道。但是我们这样构建的话会存在一个很深的bug。 我们在销毁进程池时是先将所有的信道的写端关闭&#xff0c;让其子进程read返回值为0&#xff0c;并…...