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

发布时间:2026/8/25 15:27:11
零基础学 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中条件查询、分组统计与多表连接》

相关新闻