零基础学 MySQL(上):从建库建表到增删改查,一篇搭好 SQL 基础

发布时间:2026/10/30 7:45:34

零基础学 MySQL(上):从建库建表到增删改查,一篇搭好 SQL 基础 点击进入作者专栏《Java 技术精讲并发与核心组件》 ✅文章目录一、先弄清 4 个基本概念MySQL 和 SQL 有什么区别二、创建第一个数据库三、设计并创建学生表四、掌握最核心的 CRUD1. 新增数据INSERT2. 查询数据SELECT3. 修改数据UPDATE4. 删除数据DELETE五、初学者最容易踩的 5 个坑1. 忘记选择数据库2. 字符串没有加单引号3. UPDATE 或 DELETE 忘记写 WHERE4. 把 NULL 当成空字符串5. 用姓名代替唯一编号定位学生六、基础语法速查七、动手练习八、写在最后本文适合 MySQL 零基础、数据库课程学习、期末复习和后端入门。学完后你可以独立创建数据库和数据表并完成最常用的增、删、改、查操作。第一次学 MySQL最容易陷入一个误区背了很多命令却不知道这些命令为什么要这样写。这篇文章不零散讲语法而是围绕一个简化的“学生选课管理系统”完成第一轮实战先设计一张学生表再把数据写进去、查出来、改正确、删干净。一、先弄清 4 个基本概念假设学校需要保存学生信息可以把数据组织成下面这张表idnamegenderageclass_name1张三男19软件1班2李四女20软件1班从这张表可以理解数据库中的四个核心概念数据库Database存放和管理数据的仓库例如school_db。数据表Table保存某一类数据的结构例如学生表student。字段Column表中的一列例如姓名字段name。记录Row表中的一行例如张三的完整信息。一句话记忆一个数据库包含多张表一张表包含多个字段和多条记录。MySQL 和 SQL 有什么区别MySQL 是数据库管理系统SQL 是操作关系型数据库的语言。我们安装和使用的是 MySQL写下的CREATE、INSERT、SELECT等命令属于 SQL。初学阶段常见的 SQL 可以简单分为类型作用常见命令DDL定义数据库结构CREATE、ALTER、DROPDML增删改表中数据INSERT、UPDATE、DELETEDQL查询数据SELECT不必急着背分类先会使用再回头总结会更自然。二、创建第一个数据库创建用于练习的数据库CREATEDATABASEIFNOTEXISTSschool_dbDEFAULTCHARACTERSETutf8mb4;其中IF NOT EXISTS数据库不存在时才创建避免重复执行时报错utf8mb4能够完整保存中文和常见特殊字符。创建后必须选择数据库否则 MySQL 不知道接下来的表要放在哪里USEschool_db;可以用下面的语句确认当前正在使用哪个数据库SELECTDATABASE();三、设计并创建学生表建表前先确定“要存什么”和“用什么类型存”。字段类型含义设计理由idINT学生编号整数便于排序和关联nameVARCHAR(20)姓名文本长度不固定genderVARCHAR(10)性别示例中直接保存文字ageTINYINT UNSIGNED年龄非负且数值范围较小class_nameVARCHAR(30)班级班级名称属于文本创建表CREATETABLEstudent(idINTPRIMARYKEYAUTO_INCREMENT,nameVARCHAR(20)NOTNULL,genderVARCHAR(10),ageTINYINTUNSIGNED,class_nameVARCHAR(30));这里先记住三个最常用的规则PRIMARY KEY主键每条记录的id必须唯一AUTO_INCREMENT插入数据时不写idMySQL 会自动递增编号NOT NULL姓名不能为空。查看表结构DESCstudent;建表不是把所有字段都写成VARCHAR。数字是否要计算、文本最长多长、字段能否为空都会影响类型选择。四、掌握最核心的 CRUDCRUD 是四类基础操作的缩写Create新增、Read查询、Update修改、Delete删除。几乎所有管理系统都离不开它们。1. 新增数据INSERT一次插入三名学生INSERTINTOstudent(name,gender,age,class_name)VALUES(张三,男,19,软件1班),(李四,女,20,软件1班),(王五,男,18,软件2班);推荐始终写出字段名。这样即使以后调整表结构也能清楚知道每个值对应哪个字段。2. 查询数据SELECT查看全部字段和全部记录SELECT*FROMstudent;实际开发中更推荐只查询需要的字段SELECTname,class_nameFROMstudent;按条件查询年龄不小于 19 岁的学生SELECTid,name,ageFROMstudentWHEREage19;WHERE决定“操作哪些记录”是查询、修改和删除时最重要的条件关键字。3. 修改数据UPDATE把张三的年龄改为 20UPDATEstudentSETage20WHEREid1;修改前最好先用相同条件查询SELECT*FROMstudentWHEREid1;确认查询结果正是目标记录再执行UPDATE可以显著减少误操作。4. 删除数据DELETE删除王五的记录DELETEFROMstudentWHEREid3;DELETE删除的是记录不是数据表。删除表结构使用的是DROP TABLE两者不要混淆。五、初学者最容易踩的 5 个坑1. 忘记选择数据库出现“No database selected”时先执行USEschool_db;2. 字符串没有加单引号错误INSERTINTOstudent(name)VALUES(张三);正确INSERTINTOstudent(name)VALUES(张三);数字通常直接写字符串和日期通常使用单引号。3.UPDATE或DELETE忘记写WHEREUPDATEstudentSETage20;这条语句会把所有学生的年龄都改为 20。执行修改或删除前应检查三件事是否写了WHERE、条件是否准确、是否先用SELECT验证过。4. 把NULL当成空字符串NULL表示未知或缺失表示一个长度为 0 的字符串它们不是一回事。判断空值应使用SELECT*FROMstudentWHEREgenderISNULL;5. 用姓名代替唯一编号定位学生真实系统可能存在同名学生修改和删除时更稳妥的做法是使用主键id不要只凭姓名定位记录。六、基础语法速查需求SQL 模板创建数据库CREATE DATABASE 数据库名;选择数据库USE 数据库名;创建表CREATE TABLE 表名 (...);插入数据INSERT INTO 表名 (字段) VALUES (值);查询数据SELECT 字段 FROM 表名 WHERE 条件;修改数据UPDATE 表名 SET 字段值 WHERE 条件;删除数据DELETE FROM 表名 WHERE 条件;七、动手练习不要只看代码建议亲自完成下面 4 个任务新增学生“赵六”女19 岁软件2班查询软件1班学生的姓名和年龄把id 2的学生年龄改为 21删除id 3的学生并查询剩余数据。参考答案INSERTINTOstudent(name,gender,age,class_name)VALUES(赵六,女,19,软件2班);SELECTname,ageFROMstudentWHEREclass_name软件1班;UPDATEstudentSETage21WHEREid2;DELETEFROMstudentWHEREid3;SELECT*FROMstudent;八、写在最后学完这一篇你已经完成了 MySQL 的第一条完整操作链设计字段 → 创建数据库 → 创建数据表 → 插入数据 → 查询验证 → 修改和删除。但真实系统不会只有一张表也不会永远只查全部数据。下一篇将继续使用学生选课系统讲清条件查询、排序、聚合、分组和多表连接让你从“会查数据”进阶到“能从数据中得到结果”。前路漫漫同频的人终会奔赴同一个方向✨如果这篇内容对你有所启发麻烦点个赞、关注博主干货建议先收藏避免之后找不到。后续还会持续输出更多实用教程创作不易还请多多支持专栏下一篇《零基础学 MySQL中条件查询、分组统计与多表连接》
延伸阅读

更多相关文章

2026/10/27 11:22:40

深入浅出 STM32(十八):时钟树、总线与寄存器的底层联动机制

目录前言一、MCU内部架构与时钟树的深度打通1.1 从“两张皮”到“合二为一”的认知跨越1.2 官方资料的局限性与自建理解模型1.3 总线的本质:三类信号线的集合1.4 寄存器统一编址与CPU访问机制1.5 设备协同与时钟同步的关键作用二、时钟树如何驱动整个MCU2.1 时钟树与…

2026/10/30 5:25:13

UVM 虚拟序列 vsequence 与 vsequencer:SOC 验证的“调度艺术”

从单个 Agent 到多 Agent 协同,需要一位“总指挥” 在模块级验证中,一个 uvm_sequence 运行在对应 Agent 的 sequencer 上,产生激励,一切顺理成章。但到了 SOC 级验证,系统由 CPU、DMA、IO 等多个子模块组成,每个子模块都有自己的 agent 和 sequencer。测试用例往往需要…

2026/10/24 6:34:59

医疗AI可扩展网格信息系统中网格计算技术的智能优化

研究综述 证据分级 | 主题:架构范式 智能优化 临床转化 | 编制:Buddy | 日期:2026-08-21 本报告围绕"医疗AI可扩展网格信息系统"中网格计算技术的智能优化展开,覆盖四条主线:①架构范式演进(c…

2026/10/30 7:41:17

ESP32模组料号编码规则详解:Flash、PSRAM、温度与认证选型指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 7:41:17

ESP32开发进阶:从Arduino到ESP-IDF官方构建方案实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 7:41:17

PLC梯形图与ST语言混编实战:三种主流写法与选型建议

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 7:41:17

ESP32在线开发:基于WebSerial与Wokwi的浏览器即开即用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 7:36:17

深度学习在转子故障诊断中的应用与优化

1. 项目概述:基于深度学习的转子故障诊断实战去年参与某电厂设备监测系统升级时,我第一次接触到西安交大的转子数据集。这个包含多种故障类型的实测数据,配合MSCNN-LSTM-注意力机制的混合模型架构,在轴承故障分类任务中实现了98.7…

2026/10/29 17:05:52

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/29 17:06:02

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/29 17:06:13

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/30 0:00:46

NCP1342高频准谐振反激控制器:从设计约束到验收的完整方案

简介:NCP1342 高频准谐振反激控制器应用介绍译文文档,面向电源设计工程师、硬件研发人员及开关电源学习者,帮助读者跨越英文原版资料的语言门槛,系统理解这款高集成度 QR Flyback 控制器的设计要点。文档围绕芯片核心特性展开&…

2026/10/30 0:00:46

NCP1342准谐振反激电源设计:从选型到验收的全流程解析

简介:这份文档面向电源设计工程师与开关电源学习者,系统梳理NCP1342高频准谐振反激控制器的应用要点,帮助读者快速理解这款高集成度离线电源变换器控制芯片的工作机制与设计方法。内容涵盖芯片核心特性、引脚功能定义、电气特性参数表、最大额…

2026/10/30 0:00:46

Web系统自动登出机制设计与实现全解析

1. 系统自动登出机制的设计初衷在各类Web应用和后台管理系统中,自动登出功能早已成为标配。这个看似简单的功能背后,实际上涉及用户安全、资源管理和体验优化的多重考量。作为从业十多年的老开发,我见过太多因为登出逻辑设计不当导致的安全事…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑