news 2026/10/17 5:20:02

MySQL零基础入门指南:从数据库概念到增删改查实操

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL零基础入门指南:从数据库概念到增删改查实操

作为一个在数据这个行当里摸爬滚打了十来年的人,我见过太多新手在数据库面前碰壁的样子。一提起 MySQL,不少刚入门的朋友脑子里蹦出来的就是“命令行”“黑窗口”“语法错误”这些让人头大的词。其实 MySQL 远没有想象中那么吓人,它本质上就是一个存放和管理数据的“大仓库”,我们平时写的订单记录、用户信息、文章内容,最终都要存进这种仓库里。这篇内容就是给完全零基础的朋友准备的 1.0 版本入门指南,我会用大白话把 MySQL 最核心的那点事儿讲清楚,从它到底是什么,到怎么装、怎么连、怎么建表、怎么往里塞数据再查出来,全程带着你走一遍。你看完不一定要变成高手,但一定能对数据库有个踏实的、不模糊的认识,至少自己动手把环境跑起来、把最基本的增删改查玩明白是没问题的。

1. 内容整体设计与思路拆解

1.1 先搞清楚 MySQL 到底是个什么东西

很多人第一次听到“数据库”仨字就发怵,觉得是特别高深的技术。打个比方你就明白了,你可以把 MySQL 想象成一个超级大的、带索引的 Excel 表格,但这个表格能同时被成千上万个人访问,而且读写速度极快,还能自动保证数据不乱、不丢。它和我们电脑上装的普通文件不一样,比如你写一个 Word 文档,只能你自己打开编辑,别人同时打开可能就冲突了。MySQL 是专门设计来处理“多人同时读写”这种场景的,它在幕后有一套复杂的锁机制和事务机制,保证大家各写各的互不干扰,万一写了一半程序崩了,数据也不会少半截。

那它和 Excel 相比到底强在哪?我简单列几个点你就明白了:

  • 并发处理能力:Excel 一秒钟能查几十条数据就卡得不行了,MySQL 处理几万、几十万条查询轻轻松松。
  • 数据安全性:MySQL 有用户权限系统,你可以精确控制某个用户只能看某些表、甚至只能看某一列,Excel 做不到。
  • 数据一致性:靠事务机制,比如转账操作,扣钱和加钱必须同时成功或同时失败,Excel 手动操作很容易弄成一边成功一边失败。
  • 海量数据存储:Excel 超过十万行基本就慢了,MySQL 存储上亿条记录也没问题。

所以你现在应该能理解,MySQL 本质就是一个“数据管家”,负责把数据有结构地存放起来,并且在你需要的时候快速找给你。

1.2 选 MySQL 而不选其他数据库的理由

说起数据库,市面上其实有好多选择:Oracle、SQL Server、PostgreSQL、MongoDB 等等。那为什么新手入门的首选普遍是 MySQL?我自己的体会是这几个原因最实在。

首先是它的开源免费,对于学习和个人项目来说,不用付出任何授权成本,随便下载随便用。其次是上手门槛低,MySQL 的语法非常标准,贴近通用的 SQL 语言规范,你学会了 MySQL,以后再去用 PostgreSQL 或者其他关系型数据库,几乎是无缝切换。再就是社区生态庞大,无论你在使用过程中遇到什么稀奇古怪的报错,去搜索引擎一搜,基本都能找到现成的解决方案,这一点对新手的友好程度真的是无法形容。最后是性能真的不差,很多互联网大厂的核心业务都在用 MySQL,只不过它们会在此基础上做各种分库分表、读写分离的架构优化,但单机版的 MySQL 对于中小型项目和个人项目来说完全够用。

所以我的建议是:不要纠结,新手入门数据库,直接选 MySQL 就是最优解。

1.3 从宏观到微观,整体学习路径怎么铺

很多初学者有个习惯,上来就找一堆视频猛刷,结果看完发现脑子里一团浆糊,好像什么都学了,但打开命令行啥也不会敲。这是因为缺少一条清晰的学习主线。按照我的经验,初识 MySQL 的阶段可以分成这么几步走:

  1. 先理解概念:数据库、表、字段、记录、SQL 这些词到底指什么。
  2. 把环境跑起来:在自己电脑上装好 MySQL,并能成功连接。
  3. 学会建库建表:这是所有操作的基础,就好比盖房子得先搭框架。
  4. 学会基本的增删改查:往表里塞数据、改数据、删数据、查数据。
  5. 理解约束和主键:知道为什么表不能乱建,怎么保证数据不重复。
  6. 最后做一个小练习:把上面学的东西串起来,模拟一个真实的场景。

这一篇就是带你走完第 1 到第 5 步的 1.0 小白板教程,把每一步都揉碎了讲。

2. 核心概念与基础理论详解

2.1 数据库、表、字段、记录,别再傻傻分不清

先花点时间把这些基础名词彻底弄明白,因为后面所有操作都是围绕它们展开的。我们拿一个最经典的例子来说:学生信息表。

  • 数据库(Database):就是一个大文件夹,里面可以放很多张表。比如你可以建一个“学校管理”数据库,里面放着“学生表”“教师表”“课程表”等。
  • 表(Table):就是那个具体的表格,有行有列,比如“学生表”。
  • 字段(Column / Field):就是表格的列,比如“学号”“姓名”“年龄”“性别”。字段定义了这张表能存什么样的数据。
  • 记录(Row / Record):就是表格的行,每行是一条完整的数据。比如“(001, 张三, 20, 男)”就是一条记录。

如果用 Excel 来类比,数据库就是一个工作簿,表就是其中的工作表,字段就是表头,记录就是数据行。这样是不是一下子就通了?SQL 语言其实就是用来操作这些东西的命令,它分为好几类:查询数据的叫 DQL,操作数据的叫 DML,定义结构的叫 DDL,控制权限的叫 DCL。小白阶段我们主要接触前三种。

2.2 数据类型怎么选,别把所有数据都塞进字符串

建表的时候最让人纠结的不是表结构怎么设计,而是字段类型怎么选。我刚接触 MySQL 的时候也犯过这种错:不管什么数据,统一用字符串(VARCHAR)存,后来发现查询速度越来越慢、排序也出了各种幺蛾子才后悔。

MySQL 常见的字段类型主要分几大类:

  • 整数类型:INT、BIGINT、SMALLINT 等。存年龄、数量、ID 这类整数值。
  • 小数类型:DECIMAL、FLOAT、DOUBLE。其中 DECIMAL 适合存金额,因为它能精确控制小数位数,不会出现浮点数误差。这个在我实际做项目时体会特别深,存钱千万别用 FLOAT,不然对不上账。
  • 字符串类型:CHAR、VARCHAR、TEXT 等。VARCHAR 是可变长度,适合存名字、地址这种长度不固定的内容;CHAR 是定长,适合存身份证号、手机号这类固定长度的内容。
  • 日期时间类型:DATE、DATETIME、TIMESTAMP 等。存生日用 DATE,存下单时间用 DATETIME,存记录最后修改时间用 TIMESTAMP。

选类型的基本原则是:能选小的就不选大的,能用整数就不用字符串,能用定长就不用变长。比如存性别,用 TINYINT 存 0 和 1 就行,别存“男”“女”这种字符串,既浪费空间,查询效率也打折。

2.3 主键、外键、索引,数据库的骨架

这三个概念是理解数据库的钥匙,尤其是主键,你必须彻底搞懂。

主键(Primary Key):简单说就是每条记录的唯一身份证号,表里不能有重复,也不能为空。比如学生表里的“学号”,每个学生只有一个学号,学号不能重复。建表时指定主键,可以保证数据的唯一性,查询时还能自动加速。

外键(Foreign Key):用来建立表与表之间关系的字段。比如“成绩表”里有个“学号”字段,它指向“学生表”的学号。通过外键,我们能知道某条成绩是哪个学生的。小白阶段先理解到这个程度就够了,等以后做复杂项目再深入去搞级联删除那些东西。

索引(Index):就像书的目录一样,能大幅加速查询。索引建立在某个字段上,查询时 MySQL 不用一行一行扫描整张表,直接像查字典一样定位。不过索引也不是越多越好,每建一个索引,写入数据时就要多维护一份,等于用空间换时间。

我们这次入门只需要把主键这个点吃透,因为建表的时候每张表都应该有主键,这是一个你从一开始就要养成的习惯。

2.4 SQL 语言的分类和基本语法规则

SQL 本身不分大小写,但行业惯例是把关键字大写,把表名、字段名小写,方便阅读。并且每条语句一般用分号结尾。刚开始可能觉得不习惯,但这是以后写存储过程、写复杂查询的基础,最好从第一句 SQL 就养成规范习惯。

SQL 按功能分的那几类,对应的常用命令大概是这样:

  • DDL(定义语言):CREATE DATABASE、CREATE TABLE、ALTER TABLE、DROP TABLE
  • DML(操作语言):INSERT(插入)、UPDATE(修改)、DELETE(删除)
  • DQL(查询语言):SELECT,这个是最常用也最复杂的

还有一个顺手要掌握的:TRUNCATE,它是清空表数据用的,和 DELETE 有个很大区别是它不能带 WHERE 条件,直接把表重置到刚建完的干净状态。

3. 环境准备与 MySQL 安装实操

3.1 下载安装包,哪来的版本,如何选择

这一步看着简单,实际上坑不少。我见过很多朋友栽在版本选择上,装了最新版结果一堆兼容问题。MySQL 的版本号里,5.7 和 8.0 是两个大时代,8.0 是目前的主流。如果你是刚接触,直接选 8.x 最新的稳定版就行,因为 5.7 已经停止官方维护了。

下载去官网找社区版(Community Server)就行,它是免费的。这里有个小提醒:安装方式有 ZIP 解压版和 MSI 安装版。MSI 版有图形向导,适合小白,一路下一步就行。ZIP 版适合喜欢手动配置环境变量的老手,能更清楚地知道每个配置文件是干嘛的。我第一次装的时候用的 ZIP 版,后来发现对小白来说 MSI 版是更稳妥的选择,没必要一上来就跟配置文件较劲。

3.2 Windows 平台手把手安装过程

以 Windows 系统为例,下载好 MSI 安装包之后,双击运行。在选择安装类型时,小白选Developer Default就够了,它会默认把 MySQL Server 和一些常用工具(比如 MySQL Shell)装好。接下来几步关键的地方我标一下:

  • 端口设置:默认 3306,不用改。
  • 认证方式:这一步会问用不用强密码认证组件,一般选“Use Strong Password Encryption”那个推荐的就行。
  • 设置 root 密码:这是数据库超级管理员密码,一定要记住,最好写到备忘录里。同时也可以顺手创建一个普通用户,以后我们日常操作尽量别用 root,方便权限管理。
  • 配置 Windows 服务:建议把 MySQL 设置为开机自动启动服务,这样以后不用每次手动去启动数据库。

安装完成后,验证是否成功的方法是:打开命令行输入mysql -u root -p,然后输入刚才设置的密码,如果看到如下信息:

Welcome to the MySQL monitor. Commands end with ; or \g.

说明你已经成功进入了 MySQL 环境,第一步就算圆满完成了。

3.3 启动与连接,遇到“命令找不到”怎么办

很多新手在连接的时候会报“mysql 不是内部或外部命令”,这不是安装失败了,而是因为系统不知道去哪找 mysql.exe 这个程序。解决办法有两个:

一是用管理员身份打开命令行,输入:

cd C:\Program Files\MySQL\MySQL Server 8.0\bin

然后在这个目录下再执行mysql -u root -p,这样就绝对能找到。

二是把 MySQL 的 bin 目录手动加到系统的环境变量 Path里去,一劳永逸。右键“此电脑”→属性→高级系统设置→环境变量,在系统变量里找到 Path,把刚才那个 bin 路径添加进去。设置了之后新开的命令行窗口就能直接识别 mysql 命令了。

这点我建议直接换第二个办法,因为以后我们要频繁使用命令行工具,每次先 cd 到 bin 目录实在太折磨人。

4. 核心实操:从建库到增删改查

4.1 创建你的第一个数据库和表

进入 MySQL 命令行后,看到的提示符是mysql>,在这里面输入的每一条 SQL 都以分号结尾。第一步先建一个数据库:

CREATE DATABASE school;

敲完回车,它会提示Query OK, 1 row affected,说明创建成功。然后用一条命令选中使用这个库:

USE school;

接下来我们建一张学生表,这是整个入门过程中最重要的一个实操环节:

CREATE TABLE student ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, age INT, gender TINYINT, enroll_date DATE );

我来逐行解释一下这个建表语句的含义,这是新手最容易看不懂的地方。id字段设置成INT整数类型,PRIMARY KEY表示把它设为主键,AUTO_INCREMENT表示自增,也就是说你插入数据时不用手动填 id,数据库会自动按 1、2、3、4 顺序递增。这个设计非常常用,因为它完美解决了“如何保证主键不重复”的问题。name字段用VARCHAR(50),表示最长允许 50 个字符。NOT NULL的意思是插入数据时这个字段不能为空,如果你强行插入空值,数据库会报错。age用INT存整数,gender用TINYINT存 0 表示女、1 表示男,enroll_date用DATE存日期。

创建成功后会提示Query OK。这时候你可以用:

SHOW TABLES;

查看当前数据库里有哪些表,里面就能看到student了。

4.2 插入数据、修改数据、删除数据

表建好以后就可以往里塞数据了,插入语句的语法是:

INSERT INTO student (name, age, gender, enroll_date) VALUES ('张三', 20, 1, '2024-09-01');

这里要注意一个细节:我们列出字段的时候特意没写id,因为它是自增的。如果你写INSERT INTO student VALUES ('张三', ...)而不带字段列表,MySQL 会默认你要给每一列都提供值,这样就得连 id 一起写上,很容易出错。所以我强烈建议:写 INSERT 时务必带字段列表,不要省这个括号。

插入多条记录的写法是在 VALUES 后面用逗号分隔多组括号:

INSERT INTO student (name, age, gender, enroll_date) VALUES ('李四', 22, 1, '2024-09-02'), ('王五', 21, 0, '2024-09-03');

改数据用 UPDATE,语法为:

UPDATE student SET age = 23 WHERE name = '李四';

这里WHERE是灵魂,它指定了“只更新哪一行”。如果你不小心把 WHERE 漏了,MySQL 会更新表里所有行的 age 字段!这是新手特别容易犯的严重错误,我早年一次操作就把整个表的某个字段全覆盖了。所以在执行 UPDATE 或 DELETE 之前,先写 SELECT 查一遍要影响的行,养成这个习惯之后再写更新。

删除数据用 DELETE:

DELETE FROM student WHERE id = 3;

同样,WHERE 条件一定要写,否则就是清空整张表。这听起来像是废话,但我见过的实际生产事故里,一大半都是因为漏了 WHERE。

4.3 查询数据,最常用的 SELECT 全家桶

查询是 MySQL 里最核心也最需要花心思的地方。最简单的是全表查询:

SELECT * FROM student;

其中星号代表所有列。但我得提醒你,实际项目里写SELECT *多数情况下是不推荐的,因为有些表字段很多,有些字段占了非常大的存储,无脑把全字段查出来既浪费带宽又拖慢速度。正确做法是只查你需要的字段:

SELECT name, age FROM student;

带条件查询用 WHERE:

SELECT name, age FROM student WHERE age > 20;

排序用 ORDER BY,默认升序,加 DESC 是降序:

SELECT name, age FROM student ORDER BY age DESC;

限制返回条数用 LIMIT:

SELECT name, age FROM student ORDER BY age DESC LIMIT 2;

这条的意思是把学生按年龄从大到小排,只要前两条。LIMIT 在分页查询中也极其常用,比如每页显示 10 条,第一页就是LIMIT 0, 10,第二页是LIMIT 10, 10,第三页是LIMIT 20, 10,起点是“(页码-1)乘以每页条数”。

4.4 用一个小场景串起所有操作

理论知识过了很多遍,不如实际拿一个场景走一遍。我们就用前面的 school 数据库做一个“学生入学登记”的小项目练习。假设现在有两个学生报名,需要录入他们的姓名、年龄、性别、入学日期,然后需要查一下“男学生有哪些”。

完整操作的流程是这样的:

USE school; INSERT INTO student (name, age, gender, enroll_date) VALUES ('赵六', 19, 1, '2024-09-05'), ('孙七', 20, 0, '2024-09-06'); SELECT * FROM student WHERE gender = 1;

执行完最后一条,你就能看到只包含两位男同学的记录列表。这个过程虽然简单,但已经覆盖了建库、建表、插入数据、带条件查询一整条链路,这就是后续所有复杂操作的底子。

5. 常见问题与排查技巧实录

5.1 中文乱码问题

这是入门的第一个大坑,花两分钟彻底解决掉。出现乱码的原因一般是客户端和数据库之间的字符集不一致。在 MySQL 8.0 里,默认字符集已经改成了 utf8mb4,正常情况下不会再乱码。但如果你的客户端不是 UTF-8,就会出问题。

解决办法是连接后在语句前加一句:

SET NAMES utf8mb4;

这句的作用是告诉服务器“当前这个连接要用 utf8mb4 编码来沟通”。临时会话里执行一下就好,下次重连要重新执行。如果你不希望每次连接都手动设置,可以在 MySQL 配置文件my.ini的 [mysqld] 段下面加上:

character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci

然后重启 MySQL 服务生效。这一条对存储中文数据至关重要,我建议新手从一开始就把这个配置加好,能少掉很多头发。

5.2 无法连接服务器:2003 和 1045 错误

连接时报ERROR 2003 (HY000): Can't connect to MySQL server通常说明 MySQL 服务没启动,或者端口不对。在 Windows 上可以打开“服务”管理器,找到 MySQL 相关的服务项,右键启动。如果是端口不对,检查一下你是不是在安装时改过 3306 这个默认端口,或者本机已经被其他 MySQL 实例占用了。

报ERROR 1045 (28000): Access denied for user 'root'@'localhost'则说明密码或者用户名不对。最常见的场景是你明明输入了安装时设的密码,却仍然报这个错。这时候不要反复试,直接进入“忘记密码重置”流程:以管理员身份停掉 MySQL 服务,然后以跳过权限验证的方式启动,改完密码再正常启动。

这个操作细节比较多,但网上有非常成熟的资料。我给你的建议是,遇到这个情况先深呼吸,然后严格照着官方文档的步骤来,这种问题多半是因为安装过程某个环节操作过快导致的,解决一次之后就轻车熟路了。

5.3 忘记 root 密码如何重置

到了这一步,说明前面的密码已经找不回来了。按下面的步骤可以重置到新密码,这在平时日常维护中也是一招重要的兜底手段:

  1. 以管理员身份打开命令行,停掉 MySQL 服务:net stop mysql(服务名不一定叫这个,看你安装时填的)。
  2. 进入 MySQL 安装目录的 bin 目录,执行带--skip-grant-tables参数的启动命令,这个参数的意思是启动时跳过权限验证。
  3. 这时候再开一个命令行窗口,输入mysql -u root就能直接免密进去了。
  4. 进去之后先执行FLUSH PRIVILEGES;重新加载权限表,然后执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
  1. 最后正常重启 MySQL 服务,用新密码登录即可。

需要注意第 2 步的启动方式比较讲究一点,Windows 下一般用命令行前台方式启动,保持那个窗口开着,重置完密码再关掉那个窗口,服务就会恢复正常流程。

5.4 语法错误提示都没看懂,如何快速自我排查

执行 SQL 报语法错误时,MySQL 会给出一个ERROR 1064之类的提示,后面跟着一堆英文。很多新手一看到长报错就慌,其实只需要关注几个关键点:

  • 看箭头位置:MySQL 的错误提示里通常会有一个箭头^指向出错字符位置,往上往前看几句就能发现问题。
  • 查括号和分号:新手最常见的错误就是括号没配对,或者字符串引号没闭合。比如VALUES ('张三', 20);少了右括号或分号,就会报语法错。
  • 排除英文符号问题:SQL 语句中的括号、引号、逗号、分号全部必须是英文半角字符。我见过很多朋友在中文输入法下敲出中文逗号和中文括号,导致语句怎么都执行不过去,这个坑防不胜防。
  • 关键字冲突:如果表名或字段名恰好叫order、desc、group这类关键字,需要加反引号(键盘数字 1 左边那个键)包住,比如:
SELECT * FROM `order`;

这几个问题涵盖了新手报错的绝大部分情况,记下来能省掉不少百度时间。

5.5 表结构与初始设计失误,后面能调整吗

这个问题很多人会遇到但不敢操作。比如建表时忘了加一个字段,或者字段类型设置得太小,存不下电话号码。解决方案是用 ALTER TABLE 调整,不需要重新建表:

ALTER TABLE student ADD COLUMN phone VARCHAR(20);

这是在表末尾加一个 phone 字段。如果想把 phone 字段放到 name 字段后面,可以加AFTER name关键字,这个细节少有人提,但对表结构洁癖的人来说很有用:

ALTER TABLE student ADD COLUMN phone VARCHAR(20) AFTER name;

修改字段类型是:

ALTER TABLE student MODIFY COLUMN phone VARCHAR(30);

删除某个字段是:

ALTER TABLE student DROP COLUMN phone;

这些操作在执行后都会直接生效,但在真实项目中要谨慎,因为生产环境的表里已经有数据了,贸然改类型有可能导致数据损坏或丢失。小白练习阶段就没这么多顾虑,随便折腾。

6. 一些进阶方向与后续学习路径建议

走到这里,你已经掌握了 MySQL 最基本也是最核心的日常操作链路:安装、连接、建库、建表、增删改查。这就像学车学会了挂挡、踩油门、踩刹车,能在场地上开起来了。但真要上路跑,还差很多东西。我说几个接下来值得深入的方向,你按自己的需求挑着学。

第一个方向是数据库设计。怎么合理地设计多张表、怎么用外键关联表之间的关系、什么叫第一范式第二范式第三范式、字段类型怎么取舍。这些内容决定了一个项目的数据层是否牢固,属于内功范畴,值得花时间好好学。

第二个方向是查询优化。同样的数据,索引建得好不好,SQL 语句写得好不好,执行效率可能差几十倍。可以学学 EXPLAIN 怎么用、慢查询日志怎么分析、常见的索引失效场景有哪些。这些都是进阶路上必过的关卡。

第三个方向是事务与隔离级别。银行转账的经典场景能用事务解释得明明白白,隔离级别影响到并发时数据是否会产生脏读、幻读。这个方向对想进公司做业务开发的人来说是必学内容。

第四个方向是备份与恢复。数据库里最贵的永远是数据本身,学会用 mysqldump 做逻辑备份,学会 binlog 的基本概念,这会让你的数据安全感提升一个量级。

我个人一路走下来的体会是:学数据库没有捷径,但有一条最有效率的路,就是边踩坑边进步。现在你尽管在本地把数据弄乱、把表删了重建、把类型改成错的故意触发报错,每解决一个问题,你对 MySQL 的理解就深一层。等到你亲手维护过几个真实项目的数据之后,再回头看今天这些“小白板”内容,会有一种茅塞顿开的通透感。

最后再分享一个我自己的小习惯:在写完任何一条 SQL 之前,我都会先在前面加一个SELECT确认范围,然后再转成 UPDATE 或 DELETE。多写这一行,看起来耽误几秒钟,实际上可能帮你躲过一次难以挽回的失误。希望这篇 1.0 小白板能帮你稳稳迈出第一步,后面的路咱们一步一步走。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/17 5:19:24

Python深度学习入门到实战:从搭建环境到模型部署

项目标题: Python深度学习:从入门到实战1. 先聊两句:为什么是"Python深度学习"这个组合我最早接触深度学习是上学时被导师安排去研究一个图像识别的课题,当时第一反应是"这玩意儿是不是得数学特别好才能碰?"说…

作者头像 李华
网站建设 2026/10/17 5:19:23

Claude Code 模板库搭建指南:分层规则、Skills 联动与实战避坑

我是在第三个项目里,把同一套需求分析、代码审查、重构指令重新敲到第四遍的时候,才真正意识到 claude-code-templates 这个东西的价值。之前我跟很多人一样,觉得让 Claude Code 干活不就是把需求讲清楚吗?后来发现,讲…

作者头像 李华
网站建设 2026/10/17 5:19:08

PyTorch中Tensor.contiguous()详解:内存布局、性能陷阱与最佳实践

在PyTorch里写模型代码,十有八九你会在某个时刻遇到这样一行报错:RuntimeError: input is not contiguous。第一次看到这个提示的人往往会愣住——张量不就是一块内存吗,连不连续是什么意思?更让人困惑的是,有时候明明…

作者头像 李华
网站建设 2026/10/17 5:17:43

Ethernet/IP Tool V2.2.0:工业现场EtherNet/IP协议调试黑匣子

简介:Ethernet/IP Tool V2.2.0 是一款面向工业自动化工程师与现场调试人员的专用协议调试工具,用于快速发现、通信测试、参数配置及故障诊断Ethernet/IP网络设备,显著降低CIP协议层开发与集成门槛。资源为完整可执行工具包,共20个…

作者头像 李华
网站建设 2026/10/17 5:17:42

Apollo自动驾驶平台深度解析:架构、核心模块与实战部署

1. 为什么值得花时间啃透Apollo平台如果你正在做自动驾驶相关的开发,或者打算从传统嵌入式、机器人方向往自动驾驶转,Apollo这个名字你一定绕不开。它是一个开源的自动驾驶开发平台,把感知、定位、预测、规划、控制这五大核心模块全部打包好了…

作者头像 李华
网站建设 2026/10/17 5:17:12

H5唤起APP方案:自定义协议与超时兜底实战

1. 从浏览器到原生应用:call-app 方案到底在解决什么问题做过移动端 Web 的人大概率都碰过这个场景:用户在手机浏览器里打开一个活动页、分享页或者广告落地页,页面上有个醒目的“打开APP”按钮,点下去之后,理想状态是…

作者头像 李华