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

MySQL 单表与多表操作详解

🎈边走、边悟🎈迟早会好

目录

一、单表查询整合

(一)通用模板展示

(二)举例说明

1. 简单查询

2. 条件查询

3. 高级查询

(三)注意事项

(四)Mapper 简单举例(以 MyBatis 为例)

1. 简单查询

2. 条件查询

3. 高级查询(分组查询)

4. 表和字段取别名

二、多表操作说明

(一)多表操作的基本模板展示

1. 外键约束模板

2. 操作关联表模板

3. 连接查询模板

4. 子查询模板

(二)简单案例展示

1. 两张表情况(学生表和学生选课表)

2. 三张表情况(学生表、课程表、学生选课表)

3. 多表情况(三张以上,假设增加教师表teacher:teacher_id(主键)、teacher_name,课程表course的teacher改为teacher_id外键关联教师表)

(三)注意事项

三、总结


一、单表查询整合

(一)通用模板展示

在 MySQL 中,单表查询主要通过SELECT语句实现,其通用模板如下:

SELECT [DISTINCT] 列名1 [AS 别名1], 列名2 [AS 别名2], ...
FROM 表名 [AS 表别名]
[WHERE 条件表达式]
[GROUP BY 分组列名 [WITH ROLLUP]]
[HAVING 分组筛选条件]
[ORDER BY 排序列名 [ASC/DESC]]
[LIMIT 偏移量, 数量];

各部分说明:

  • SELECT:指定要查询的列,DISTINCT用于去重。
  • FROM:指定查询的表,可给表取别名方便后续操作。
  • WHERE:筛选符合条件的行,条件表达式包含比较运算符、逻辑运算符等。
  • GROUP BY:按指定列分组,WITH ROLLUP可生成汇总行。
  • HAVING:对分组结果进行筛选。
  • ORDER BY:对查询结果排序,ASC为升序(默认),DESC为降序。
  • LIMIT:限制查询结果的数量,偏移量指定从第几行开始(默认从 0 开始)。

(二)举例说明

1. 简单查询
  • 查询表中所有列(以学生表student为例,包含id、name、age、gender列):
SELECT * FROM student;
  • 查询指定列(如查询学生姓名和年龄):
SELECT name, age FROM student;
2. 条件查询

使用WHERE子句添加条件,常见条件运算符有:

  • 比较运算符:=(等于)、!=或<>(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。
    • 查询年龄大于 20 岁的学生:
SELECT * FROM student WHERE age > 20;
  • IN:指定一个值列表,匹配其中任意一个值。
    • 查询性别为男(' 男 ')或女(' 女 ')的学生:
SELECT * FROM student WHERE gender IN ('男', '女');
  • BETWEEN AND:匹配某个范围内的值(包含边界值)。
    • 查询年龄在 18 到 25 岁之间的学生:
SELECT * FROM student WHERE age BETWEEN 18 AND 25;
  • LIKE:模糊匹配,%表示任意多个字符,_表示任意一个字符。
    • 查询姓名以 "张" 开头的学生:
SELECT * FROM student WHERE name LIKE '张%';
  • 查询姓名包含 "三" 字的学生:
SELECT * FROM student WHERE name LIKE '%三%';
  • IS NULL/IS NOT NULL:判断字段是否为 NULL(空值)。
    • 查询邮箱为空的学生:
SELECT * FROM student WHERE email IS NULL;
3. 高级查询
  • 聚合函数:用于对一组值进行计算并返回一个单一值,常见聚合函数有:
    • COUNT():统计行数。
      • 统计学生表中的总人数:
SELECT COUNT(*) FROM student;
  • SUM():计算数值列的总和。
    • 假设学生表有score列,计算所有学生的成绩总和:
SELECT SUM(score) FROM student;
  • AVG():计算数值列的平均值。
    • 计算学生的平均成绩:
SELECT AVG(score) FROM student;
  • MAX():获取列中的最大值。
    • 获取学生的最高成绩:
SELECT MAX(score) FROM student;
  • MIN():获取列中的最小值。
    • 获取学生的最低成绩:
SELECT MIN(score) FROM student;
  • 分组查询(GROUP BY):将数据按照指定列分组,以便对每个组进行聚合操作。
    • 按性别分组,统计每组的学生人数:
SELECT gender, COUNT(*) AS 人数 FROM student GROUP BY gender;
  • HAVING 子句:对分组后的结果进行筛选,作用类似于WHERE,但WHERE作用于行,HAVING作用于分组。
    • 按性别分组,筛选出人数大于 5 的组:
SELECT gender, COUNT(*) AS 人数 FROM student GROUP BY gender HAVING 人数 > 5;
  • 排序(ORDER BY):对查询结果进行排序。
    • 按年龄升序排列学生信息:
SELECT * FROM student ORDER BY age ASC;
  • 按成绩降序排列,成绩相同则按年龄升序排列:
SELECT * FROM student ORDER BY score DESC, age ASC;
  • 限制结果数量(LIMIT)
    • 查询前 5 条学生记录:
SELECT * FROM student LIMIT 5;
  • 从第 3 条记录开始,查询 3 条记录(偏移量为 2,数量为 3):
SELECT * FROM student LIMIT 2, 3;

(三)注意事项

  1. WHERE子句不能使用聚合函数,因为聚合函数是在分组后计算的,而WHERE是在分组之前对行进行筛选,若要对分组结果筛选,需使用HAVING子句。
  1. SELECT子句中若包含非聚合列,这些列必须出现在GROUP BY子句中,否则会导致错误(在 MySQL 的某些模式下可能允许,但不建议)。
  1. 使用LIKE进行模糊查询时,%和_的位置会影响查询效率,以%开头的查询可能无法使用索引,导致性能下降。
  1. 对NULL值进行比较时,必须使用IS NULL或IS NOT NULL,不能使用=或!=。

(四)Mapper 简单举例(以 MyBatis 为例)

1. 简单查询

接口方法:

List<Student> selectAllStudents();

Mapper XML:

<select id="selectAllStudents" resultType="Student">SELECT * FROM student</select>
2. 条件查询

接口方法:

List<Student> selectStudentsByAge(int age);

Mapper XML:

<select id="selectStudentsByAge" resultType="Student">SELECT * FROM student WHERE age = #{age}</select>
3. 高级查询(分组查询)

接口方法:

List<Map<String, Object>> countStudentsByGender();

Mapper XML:

<select id="countStudentsByGender" resultType="map">SELECT gender, COUNT(*) AS count FROM student GROUP BY gender</select>
4. 表和字段取别名
  • 表取别名:为表指定一个简短的别名,方便书写和阅读。
SELECT s.name, s.age FROM student AS s;
  • 字段取别名:为字段指定别名,使结果集的列名更清晰。
SELECT name AS 学生姓名, age AS 年龄 FROM student;

二、多表操作说明

(一)多表操作的基本模板展示

1. 外键约束模板

外键用于建立表与表之间的关联,保证数据的完整性和一致性。创建外键的语法如下:

-- 创建表时添加外键CREATE TABLE 表名 (列1 数据类型,列2 数据类型,...FOREIGN KEY (外键列) REFERENCES 主表(主键列));-- 对已存在的表添加外键ALTER TABLE 表名 ADD FOREIGN KEY (外键列) REFERENCES 主表(主键列);

例如,学生表student(主键为id)和课程表course(主键为course_id),学生选课表student_course通过外键关联这两张表:

CREATE TABLE student_course (student_id INT,course_id INT,FOREIGN KEY (student_id) REFERENCES student(id),FOREIGN KEY (course_id) REFERENCES course(course_id));
2. 操作关联表模板
  • 插入数据:在关联表中插入数据时,外键列的值必须是主表中存在的主键值,否则会报错。
INSERT INTO student_course (student_id, course_id) VALUES (1, 101); -- 假设student表存在id=1,course表存在course_id=101
  • 更新数据:更新主表的主键值时,若关联表存在外键引用,默认会报错,可通过设置外键的ON UPDATE选项来指定更新行为(如级联更新CASCADE)。
-- 创建表时设置级联更新CREATE TABLE student_course (student_id INT,course_id INT,FOREIGN KEY (student_id) REFERENCES student(id) ON UPDATE CASCADE);
  • 删除数据:删除主表的记录时,若关联表存在外键引用,默认会报错,可通过设置ON DELETE选项来指定删除行为(如级联删除CASCADE、设置外键值为NULL等)。
3. 连接查询模板

连接查询用于将多个表中的数据按一定条件组合起来,常见的连接类型有:

  • 内连接(INNER JOIN):只返回两个表中满足连接条件的行。
SELECT 表1.列, 表2.列 FROM 表1 INNER JOIN 表2 ON 表1.关联列 = 表2.关联列;
  • 左外连接(LEFT JOIN 或 LEFT OUTER JOIN):返回左表的所有行,右表中满足连接条件的行,若右表无匹配行,右表列值为NULL。
SELECT 表1.列, 表2.列 FROM 表1 LEFT JOIN 表2 ON 表1.关联列 = 表2.关联列;
  • 右外连接(RIGHT JOIN 或 RIGHT OUTER JOIN):返回右表的所有行,左表中满足连接条件的行,若左表无匹配行,左表列值为NULL。
SELECT 表1.列, 表2.列 FROM 表1 RIGHT JOIN 表2 ON 表1.关联列 = 表2.关联列;
  • 全外连接(FULL JOIN 或 FULL OUTER JOIN):返回两个表中所有满足连接条件的行,以及至少一个表中不满足连接条件的行(MySQL 不支持全外连接,可通过左外连接和右外连接的并集实现)。
SELECT 表1.列, 表2.列 FROM 表1 LEFT JOIN 表2 ON 表1.关联列 = 表2.关联列UNIONSELECT 表1.列, 表2.列 FROM 表1 RIGHT JOIN 表2 ON 表1.关联列 = 表2.关联列;
  • 交叉连接(CROSS JOIN):返回两个表的笛卡尔积(即左表每一行与右表每一行组合),若不指定连接条件,结果集行数为两表行数的乘积。
SELECT 表1.列, 表2.列 FROM 表1 CROSS JOIN 表2;
4. 子查询模板

子查询是指在一个查询语句中嵌套另一个查询语句,子查询可以出现在SELECT、FROM、WHERE、HAVING等子句中。

  • 单行子查询:子查询返回一行数据,可使用单行比较运算符(如=、>、<等)。
    • 查询成绩等于班级平均成绩的学生:
SELECT * FROM student WHERE score = (SELECT AVG(score) FROM student);
  • 多行子查询:子查询返回多行数据,需使用多行比较运算符(如IN、ANY、ALL等)。
    • 查询成绩大于所有男生成绩的女生:
SELECT * FROM student WHERE gender = '女' AND score > ALL (SELECT score FROM student WHERE gender = '男');
  • 相关子查询:子查询依赖于外部查询的值,每次外部查询处理一行,子查询就执行一次。
    • 查询每个学生的选课数量:
SELECT s.name, (SELECT COUNT(*) FROM student_course sc WHERE sc.student_id = s.id) AS 选课数量 FROM student s;

(二)简单案例展示

假设存在以下三张表:

  • 学生表student:id(主键)、name、age、gender
  • 课程表course:course_id(主键)、course_name、teacher
  • 学生选课表student_course:student_id(外键,关联student.id)、course_id(外键,关联course.course_id)、score(成绩)
1. 两张表情况(学生表和学生选课表)
  • 查询学生姓名和对应的课程成绩:
SELECT s.name, sc.score FROM student s INNER JOIN student_course sc ON s.id = sc.student_id;
2. 三张表情况(学生表、课程表、学生选课表)
  • 查询学生姓名、课程名称和成绩:
SELECT s.name, c.course_name, sc.scoreFROM student sINNER JOIN student_course sc ON s.id = sc.student_idINNER JOIN course c ON sc.course_id = c.course_id;
3. 多表情况(三张以上,假设增加教师表teacher:teacher_id(主键)、teacher_name,课程表course的teacher改为teacher_id外键关联教师表)
  • 查询学生姓名、课程名称、教师姓名和成绩:
SELECT s.name, c.course_name, t.teacher_name, sc.scoreFROM student sINNER JOIN student_course sc ON s.id = sc.student_idINNER JOIN course c ON sc.course_id = c.course_idINNER JOIN teacher t ON c.teacher_id = t.teacher_id;

(三)注意事项

  1. 外键约束虽然能保证数据的完整性,但会对插入、更新和删除操作的性能产生一定影响,尤其是在大数据量的情况下,需谨慎使用。
  1. 连接查询时,必须明确指定连接条件,否则会产生笛卡尔积,导致结果集过大,影响性能。
  1. 子查询的嵌套层数不宜过多,否则会影响查询效率,可考虑使用连接查询来替代复杂的子查询。
  1. 在多表操作中,要注意表的连接顺序,合理利用索引,以提高查询性能。
  1. 当使用外连接时,要明确哪张表是主表(左表或右表),避免因连接顺序错误导致结果不符合预期。

三、总结

单表查询是 MySQL 数据库操作的基础,通过SELECT语句结合各种子句(如WHERE、GROUP BY、ORDER BY等)可以灵活地筛选、分组、排序和限制查询结果。多表操作则通过外键约束建立表之间的关联,利用连接查询和子查询将多个表的数据组合起来,实现更复杂的数据查询和分析。

在实际应用中,需要根据具体的业务需求选择合适的查询方式,同时注意查询性能和数据完整性。单表查询时要合理使用索引和条件筛选,多表操作时要正确设置外键约束和连接条件,避免出现性能问题和数据不一致的情况。通过不断练习和实践,能够更加熟练地掌握 MySQL 的单表和多表操作,提高数据库开发和管理的效率。

 🌟感谢支持 听忆.-CSDN博客

🎈众口难调🎈从心就好

相关文章:

MySQL 单表与多表操作详解

&#x1f388;边走、边悟&#x1f388;迟早会好 目录 一、单表查询整合 &#xff08;一&#xff09;通用模板展示 &#xff08;二&#xff09;举例说明 1. 简单查询 2. 条件查询 3. 高级查询 &#xff08;三&#xff09;注意事项 &#xff08;四&#xff09;Mapper 简…...

Spring概念问题详解

一、Bean的生命周期 1.1 BeanDefinition Spring容器在进行实例化时&#xff0c;会将xml配置的<bean>的信息封装成一个BeanDefinition对象&#xff0c;Spring根据BeanDefinition来创建Bean对象&#xff0c;里面有很多的属性用来描述Bean。 beanClassName&#xff1a;be…...

使用pm2 部署react+nextjs项目到服务器

记录一下 next.config.js中&#xff1a; output: standalone,package.json配置&#xff1a; "scripts": {"dev": "cross-env NODE_OPTIONS--inspect next dev","build": "next build","start": "cp -r .nex…...

JVM常量池(class文件常量池,运行时常量池,字符串常量池)

文章目录 问题JVM运行时数据区JVM中的常量池Class文件常量池运行时常量池字符串常量池创建了几个对象String的定义intern()问题 超过1W字深度剖析JVM常量池&#xff08;全网最详细最有深度&#xff09; - 跟着Mic学架构 - 博客园 问题 jdk1.8之后 元空间是独立存在的&#xf…...

Java 大视界 -- 基于 Java 的大数据分布式存储在视频会议系统海量视频数据存储与回放中的应用(263)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

光谱相机在地质勘测中的应用

一、‌矿物识别与蚀变带分析‌ ‌光谱特征捕捉‌ 通过可见光至近红外&#xff08;400-1000nm&#xff09;的高光谱分辨率&#xff08;可达3.5nm&#xff09;&#xff0c;精确识别矿物的“光谱指纹”。例如&#xff1a; ‌铜矿‌&#xff1a;在400-500nm波段反射率显著低于围…...

深入解析Java泛型:从定义到实战应用

目录 &#x1f680;前言&#x1f914;泛型的定义&#x1f427;泛型类&#x1f31f;泛型接口✍️泛型方法、通配符、上下限&#x1f4af;泛型方法&#x1f4af; 通配符与上下限⚙️通配符&#xff08;Wildcard&#xff09;⚙️泛型上下限⚙️应用场景 &#x1f99c;泛型支持的类…...

数据结构:绪论之时间复杂度与空间复杂度

作者主页 失踪人口回归&#xff0c;陆续回三中。 开辟文章新专栏——数据结构&#xff0c;恳请各位大佬批评指正&#xff01; 文章目录 作者主页 数据结构的基本知识数据&#xff1a;数据元素&#xff1a;数据对象&#xff1a;数据类型&#xff1a;数据结构&#xff1a;逻辑结…...

ARM Linux远程调试

准备 虚拟机既能ping通开发板,又能ping通外网,还要能ping通Windows主机(如果你有上位机通信(tftp、vsftp、ssh)的需求) VMware 添加网络适配器2用作桥接网卡,原有的网络适配器保持为NAT模式 打开虚拟网络编辑器,配置VMnet0为桥接模式,外部连接设置为Realtek PCIe G…...

PostgreSQL 14 pacemaker 高可用集群

核心架构原理 集群组成&#xff08;典型三节点结构&#xff09;&#xff1a; [Node1] PostgreSQL Pacemaker Corosync pcsd [Node2] PostgreSQL Pacemaker Corosync pcsd [Node3] PostgreSQL Pacemaker Corosync pcsd ↕ ↕ ↕ ← Corosync 多…...

英语学习5.21

Far from sensible 表示“很不明智的”、“离明智相去甚远”。这是一个固定表达&#xff0c;结构是 far from adj.&#xff0c;意思是“根本不……”&#xff0c;常见例子&#xff1a; far from perfect&#xff08;远非完美&#xff09; far from acceptable&#xff08;远…...

实现了TCP的单向通信

1. 客户端代码:Client.java package com.xie.javase.net1;import java.io.*; import java.net.*;public class Client {public static void main(String[] args) {Socket socket = null;BufferedWriter bw = null;try {// 1. 获取本机IP地址对象InetAddress localHost = Inet…...

华为云Flexus+DeepSeek征文 | 基于ModelArts Studio和Cherry Studio快速构建午餐管家助手

目录 一、前言 二、ModelArts Studio&#xff08;MaaS&#xff09;介绍与应用场景 2.1ModelArts Studio&#xff08;MaaS&#xff09;介绍 2.2 ModelArts Studio&#xff08;MaaS&#xff09;使用场景 2.3 开通MaaS服务 2.4 开通DeepSeek-V3商用服务 三、Cherry Studio简介和安…...

Spring AI 1.0 GA 正式发布

Spring AI 1.0 GA 正式发布 快速入门核心特性1. **增强型 LLM&#xff08;大语言模型&#xff09;**2. **MCP 协议支持**3. **RAG&#xff08;检索增强生成&#xff09;**4. **评估与监控**5. **智能代理&#xff08;Agents&#xff09;** 下一步计划 VMware Spring 团队 Mark …...

【计算机网络 第8版】谢希仁编著 第五章运输层 题型总结1 UDP和TCP报文格式

UDP报文 5.13 这一题可以先问AI&#xff1a; 但是问了AI&#xff0c;肯定想知道&#xff1a;这些知识点在书上哪里&#xff1f;怎么这么难找&#xff1f; 没错这题主要是靠IP地址&#xff0c;所以应该在第四章。 P136 P137 省流&#xff1a; 1.UDP的首部格式是8个字节&…...

华为云Flexus+DeepSeek征文 | 基于ModelArts Studio 的 DeepSeek API 实现行业深度搜索和分析

目录 一、前言 二、ModelArts Studio&#xff08;MaaS&#xff09;介绍与应用场景 2.1ModelArts Studio&#xff08;MaaS&#xff09;介绍 2.2 ModelArts Studio&#xff08;MaaS&#xff09;使用场景 2.3 开通MaaS服务 2.4 开通DeepSeek-V3商用服务 三、Deep Research简介和安…...

计算机网络——Session、Cookie 和 Token

在 Web 开发中&#xff0c;Session、Cookie 和 Token 是实现用户会话管理和身份验证的核心技术。它们既有联系&#xff0c;也有明显区别。以下从定义、原理、联系、区别和应用场景等方面详细解析。 一、基本定义与原理 1. Cookie 定义&#xff1a; 是浏览器存储在客户端的小…...

AAOS系列之----简介

一文讲透AAOS架构&#xff0c;点到为止不藏私 &#x1f4cc; AAOS是以一个系统APP的方式集成进安卓系统中,通过在SystemServer中启动其中的Service &#x1f4da; 1. CarServcie 是如何被启动的&#xff1f; AAOS中的核心服务是CarService,其描述如下: 代码路径如下: android1…...

CTF签到题

1.题目&#xff1a;VmxkMFUxVXhTbkpOU0dSVVZrWktWRlpyVm5kU2JGSnlWbXhhYkdKRlduaFpWVlpoVkcxRmQwMUlhRlpXTTFKUVZXdFZlR05zWkZsaVJrcG9ZbGRvUmxaR1dsZFVhekZIVW14V1lWSlZOVkJVVlZaV1RVWldjbFZzVGxOTlJGWlhWa1pvZDFWdFJuTlRhMVpXVm14YVIxUlVSa2RPYkVweVYyeENWMVpVUlhwV1ZtUjNVMj…...

甲骨文云服务器适合做网站吗

甲骨文云服务器&#xff1a;建网站&#xff0c;它到底是不是“神队友”&#xff1f; 各位想在网上“立门户”的老板、个人创作者们&#xff0c;大家好&#xff01;现在这年头&#xff0c;没个自己的网站&#xff0c;那感觉就像做生意没个店面、搞创作没个画廊一样&#xff0c;…...

性能测试场景题

题目 针对618&#xff0c;双十一活动的&#xff0c;一个电商系统&#xff0c;如何设计压力测试方案&#xff1f; 参考答案 针对618、双十一等高并发电商大促活动&#xff0c;压力测试方案需覆盖全链路性能瓶颈识别、容量评估和极端场景验证。以下为详细设计框架&#xff0c;…...

数智读书笔记系列033《软件设计的哲学(第2版)》:复杂性管理的艺术

《软件设计的哲学》(A Philosophy of Software Design)书籍简介 作者:约翰奥斯特豪特(John Ousterhout) 出版信息:第2版于2024年11月由人民邮电出版社出版,中文版由茹炳晟、王海鹏翻译。 作者背景 奥斯特豪特是斯坦福大学计算机科学教授、美国国家工程院院士,拥有丰…...

MySQL与Redis数据同步实践与优化

一、数据不一致的典型场景 写入顺序不一致 当业务逻辑需要同时更新数据库和缓存时&#xff0c;若出现"先删缓存后更新DB"或"先更新DB后删缓存"操作失败&#xff0c;会导致缓存与数据库数据版本不一致。 并发读写冲突 高并发场景下可能出现&#xff1a; …...

HarmonyOS 鸿蒙应用开发基础:EventHub,优雅解决跨组件通信难题

EventHub是鸿蒙开发中用于线程内通信的事件中心模块&#xff0c;基于发布订阅模式实现组件间的高效通信。它完美解决了传统回调方式在多层嵌套场景下的痛点&#xff0c;使得组件间的通信更加灵活和易于管理。 核心特性 事件中心机制&#xff1a;通过事件名进行通信&#xff0c…...

如何解决鸿蒙应用闪退问题

如何解决鸿蒙应用闪退问题 本文是一份面向 ArkTS&#xff0f;JavaScript&#xff0f;C 多语言开发者的综合性排查与优化手册&#xff0c;覆盖 HarmonyOS/OpenHarmony 5.x 时代 常见闪退根因、诊断流程、调试技巧、CI 监控及线上防护方案&#xff0c;力争帮你把 Crash 数量降到 …...

人民日报社主管媒体深度聚焦珈和科技“遥感+AI”农险精准化突破:首创“四维数据贯通”模式 树行业转型新标杆

近日&#xff0c;由人民日报社主管的《中国城市报》对珈和科技与国寿财险湖南省分公司联合打造的农业保险数字化标杆项目进行了深度报道。 作为"遥感AI"技术在农业风险管理领域的创新实践者&#xff0c;珈和科技依托自主构建的覆盖“天-空-地-人”的全维度智慧农业技…...

(1)深度学习基础知识(八股)——常用名词解释

1. FC FC全称是Fully Connect全连接层&#xff0c;也被称为Linear Layer线性层。 它的核心是&#xff1a;每个输入神经元 与 每个输出神经元 都要通过权重连接&#xff0c;适用于将输入特征映射到高维或者低维空间。 数学表示 对于一个输入向量,FC的计算方式是&#xff1a; 是…...

深度学习零基础入门(2)-实战1:激活函数、前向传播和反向传播

一、激活函数 激活函数的作用 激活函数在神经网络中起着至关重要的作用&#xff0c;主要用于引入非线性因素&#xff0c;使得神经网络能够学习和模拟复杂的非线性关系。如果没有激活函数&#xff0c;无论神经网络有多少层&#xff0c;最终都只能表示线性变换&#xff0c;无法…...

LeRobot的机器人控制系统(下)

目的和范围 机器人控制系统是 LeRobot 框架的核心组件&#xff0c;提供用于操作、标定和记录物理机器人数据的接口。该系统支持远程操作、记录演示数据集、重放动作以及在真实机器人上运行已训练的策略。它充当用户、物理机器人硬件和训练流程之间的桥梁。本文介绍机器人控制系…...

Linux Docker安装【再探完美版教程】

Dokcer安装 文章目录 Dokcer安装安装前准备安装前设置yum网络镜像源【重要】查看服务器系统版本以及内核版本查看服务器内核版本安装依赖包&#xff1a;设置阿里云docker-ce镜像源 安装Dockerdocker-ce安装启动docker并设置开机自启配置阿里云镜像测试&#xff1a; Docker概念&…...

Java-根据路径获取JSON字符串的value值

实现内容 入参: 一串json的字符串,根据传入的字符串路径和想要获取此路径下的key值 出参: 此路径下的key的value值 实现原理 采用一层一层获取的方式,判断第一层并且获取第一层的数据,放入到数组中,将该数组放到下一次循环,再获取下一层的数据 实现方法 /*** 根据路径获取…...

【小呆的随机振动力学笔记】随机过程基础【一】

文章目录 1. 随机过程基础1.1 随机过程的概率分布1.2 随机过程的统计特征1.3 平稳随机过程1.4 遍历过程平稳随机过程 1. 随机过程基础 \quad\quad 上一节&#xff0c;我们主要回顾了概率论知识&#xff0c;接下来我们来回顾随机过程基础理论&#xff08;或者叫随机场&#xff0…...

Java 内存模型中的读、写屏障

目录 1. 基本概念 1.1、读屏障 (Load Barrier) 1.2、写屏障 (Store Barrier) 1.3、咖啡店例子 2. 常见内存屏障 2.1、volatile 1、缓存可见性 2、指令重排序 3、内存屏障 2.2、final 2.3、synchronized关键字 2.4、手动内存屏障 3、不同屏障类型对比 4、实…...

AI 多 Agent 图形化开发深度解析:iVX IDE 与主流产品技术架构对比研究

随着人工智能技术的发展&#xff0c;软件开发正从手工编码向智能辅助开发演进。在 AI 多 Agent 图形化开发领域&#xff0c;iVX IDE 与 GitHub Copilot、Tabnine、CodeGeeX 等主流产品代表了不同的技术路线。本文从技术架构、功能实现、性能表现、生态建设等维度&#xff0c;对…...

微服务中的 AKF 拆分原则:构建可扩展系统的核心方法论

在数字化浪潮的推动下&#xff0c;互联网应用规模呈指数级增长&#xff0c;传统单体架构逐渐暴露出难以扩展、维护成本高等问题&#xff0c;微服务架构应运而生并成为企业应对复杂业务场景的主流选择。然而&#xff0c;随着业务的不断扩张和用户量的持续增加&#xff0c;如何确…...

MySQL迁移SSL报错

文章记录了之前tdsql迁移IDC过程中遇到的小问题 环境 xboss业务&#xff1a; tdsql未启用SSL&#xff0c; IDC-mysql启用了SSL: 原因分析 1&#xff0c; 迁移前&#xff1a; 因为tdsql未启用ssl&#xff0c; 且应用未显式配置ssl JDBC默认使用非SSL连接&#xff0c;因此可以正…...

Mysql的主从同步

一主一从 IP地址主机名master节点192.168.10.200mysql200slave节点192.168.10.201mysql201 master节点操作 配置文件增加两行参数 [rootmysql200 ~]# tail -n 2 /etc/my.cnf.d/mysql-server.cnf log-bin/mylog/mysql200 server-id200 [rootmysql200 ~]# systemctl restart …...

云原生微服务的前世今生

目录 Part1 时代背景 Part2 何为微服务&#xff1f; Part3 微服务出现的意义​ Part4 企业应用 京东&#xff1a;国内电商领域的微服务实践​ 阿里&#xff1a;微服务在复杂业务场景中的应用​ Part5 Istio&#xff1a;服务网格时代的微服务治理中枢​ Istio 的技术定位…...

Python之虚拟环境

文章目录 Python之虚拟环境虚拟环境核心概念为什么需要虚拟环境&#xff1f;虚拟环境注意事项 创建虚拟环境使用 venv (Python 3.3 内置)使用 virtualenv (第三方工具&#xff0c;支持Python 2/3)与 venv创建方式的区别Python 版本支持功能与兼容性依赖关系和性能命令行工具创建…...

【Java高阶面经:数据库篇】15. 零停机数据迁移:从双写到一致性校验

一、迁移架构设计:双写+增量同步的三层防护模型 1.1 核心架构流程图 #mermaid-svg-MfnakvBNrtFScrMe {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-MfnakvBNrtFScrMe .error-icon{fill:#552222;}#mermaid-svg-Mf…...

车载以太网网络测试-27【SOME/IP-SD简述】

文章目录 1 摘要2 SOME/IP-SD协议介绍2.1 定义与作用2.2 SOMEIP/SD协议通俗易懂的理解2.2.1 SOMEIP/SD协议是什么&#xff1f;2.2.2 通信流程&#xff08;简化&#xff09;2.2.3 车载功能示例2.2.4 类比理解 2.3 SOME/IP-SD报文结构2.3.1 Flags2.3.1.1 REBOOT (Bit 7)2.3.1.2 U…...

Ubuntu 22.04上升级Node.js版本

在Ubuntu 22.04上升级Node.js版本有几种方法&#xff0c;推荐使用NVM&#xff08;Node Version Manager&#xff09;&#xff0c;因为它可以让你轻松管理多个Node.js版本。 方法1: 使用NVM&#xff08;推荐&#xff09; 1. 安装NVM # 下载并安装NVM curl -o- https://raw.gi…...

软件设计师“面向对象设计”真题考点分析——求三连

一、考点分值占比与趋势分析 综合知识历年考察统计 年份考题数分值占比考察重点2018334%继承类型、设计原则2019445.3%多态实现、类关系2020556.7%设计模式应用、接口隔离2021334%消息通信、封装特性2022668%开闭原则、组合模式2023556.7%模板方法、适配器模式2024445.3%单一…...

flutter dart 函数语法

以下是 Dart 语言中函数语法的 详细实例说明&#xff0c;涵盖了所有常用写法 基本语法参数类型&#xff08;必选、可选、命名、默认值&#xff09;匿名函数、箭头函数高阶函数&#xff08;函数作为参数/返回值&#xff09;异步函数&#xff08;async / await&#xff09; 1. …...

鸿蒙Flutter实战:24-混合开发详解-4-初始化Flutter

概述 将 Flutter 模块添加至宿主鸿蒙项目中后&#xff0c;接下需要实现页面跳转、消息通信等功能&#xff0c;本文重点介绍如何初始化 Flutter。 项目配置 添加依赖 编辑 ohos_app/oh-package.json 文件 如果通过 Har 包方式引入 Flutter 模块&#xff0c;则需要添加如下内…...

微信小程序之Promise-Promise初始用

我们来尝试使用Promise。 1、需求&#xff0c;做个抽奖的按钮&#xff0c; 抽奖规则&#xff1a; 30%的几率中奖&#xff0c;中奖会提示恭喜恭喜&#xff0c;奖品为10万 RMB 劳斯莱斯优惠券&#xff0c;没中奖会提示再接再厉。 2、先搭界面&#xff1a; <view class&qu…...

工业 / 农业 / AR 场景怎么选?Stereolabs ZED 双目3D相机型号对比与选型建议

Stereolabs ZED 相机系列为视觉感知领域提供了多种创新解决方案&#xff0c;适用于不同应用场景。选择合适的 ZED 相机型号&#xff0c;需综合考虑分辨率、深度感知范围、接口类型等因素。 Stereolabs ZED 相机产品系列概览 ZED&#xff1a;首款立体视觉相机&#xff0c;专为高…...

(Git) 稀疏检出(Sparse Checkout) 拉取指定文件

文章目录 &#x1f3ed;作用&#x1f3ed;指令总览&#x1f477;core.sparseCheckout&#x1f477;sparse-checkout 文件 &#x1f3ed;实例演示⭐END&#x1f31f;交流方式 &#x1f3ed;作用 类似于 .gitignore 进行文件的规则匹配。 一般在需要拉取大型项目指定的某些文件…...

Nginx 部署前端项目dist文件到局域网然后ngrok部署到公网

①项目里面 npm run build 生成的dist文件 ②下载nginx: download 将dist文件夹放入html文件夹中 ③conf修改配置 里面有nginx.conf 文本修改④在此目录下 打开cmd 输入 start nginx.exe 启动代理 ⑤http://localhost:90/index.html即可或者域名换成你的ip地址也可以 …...

【sylar-webserver】9 网络模块

目录 Address 类图 知识点 常用结构体 常用函数 Socket 类图 主要功能 初始化 socket 流程&#xff1a; ByteArray 知识点 zigzag 算法 TLV 编码结构 Stream 类图 Stream 流结构&#xff0c;提供字节流读写接口 SocketStream TcpServer 类图 主要功能 Address…...