一、前言在上一篇中我们已经完成了MySQL的环境搭建、基础配置和客户端连接成功搭建好了学习和实战的“基础设施”能够正常连接数据库并执行简单的测试命令。本篇作为系列第二篇将进入MySQL最核心、最常用的基础操作——CRUD实战。CRUD分别对应“创建Create、查询Read、修改Update、删除Delete”这四个动作是数据库操作的基石也是90%以上业务开发如用户注册、订单管理、数据统计的核心逻辑更是后端开发、测试、DBA等岗位必须熟练掌握的基本功。本文将从“数据库操作→数据表操作→数据CRUD操作”逐步展开结合实操案例、避坑提示全程使用上一篇创建的test_db测试库确保零基础学习者能跟着操作、落地生效同时规避新手最容易踩的“误删数据”“全表修改”等坑。二、数据库Database核心操作数据库是数据表的容器先有数据库才能创建数据表、存储数据。在上一篇中我们已经初步使用过创建数据库的命令本篇将详细讲解数据库的“增、查、删、切”四大核心操作覆盖日常开发中所有数据库相关场景。提示所有操作均在MySQL客户端命令行或图形化工具中执行执行前需确保已连接MySQL且命令结尾必须加分号;否则命令不会执行。2.1 创建数据库Create核心需求创建一个新的数据库用于存储特定业务的数据如用户库、订单库。1. 基本语法-- 基础语法若数据库已存在会报错 CREATE DATABASE 数据库名;-- 推荐语法IF NOT EXISTS若数据库不存在则创建避免报错新手必用 CREATE DATABASE IF NOT EXISTS 数据库名;2. 实操案例-- 案例1创建名为mydb的数据库推荐写法 CREATE DATABASE IF NOT EXISTS mydb;-- 案例2创建名为user_db的数据库用于存储用户相关数据 CREATE DATABASE IF NOT EXISTS user_db;3. 避坑提示数据库名不能包含特殊字符如、#、空格建议使用小写字母下划线如user_db避免与MySQL关键字如SELECT、DATABASE重名新手建议始终使用“IF NOT EXISTS”避免因重复创建数据库导致报错影响操作节奏。2.2 查看数据库Read核心需求查看当前MySQL中所有已创建的数据库确认数据库是否创建成功。1. 基本语法-- 查看所有数据库 SHOW DATABASES;2. 实操案例-- 查看所有数据库确认mydb、user_db是否创建成功 SHOW DATABASES;执行结果说明会显示MySQL默认数据库如information_schema、mysql、sys和我们创建的mydb、user_db若能看到目标数据库说明创建成功。2.3 切换/使用数据库核心操作核心需求后续操作创建表、操作数据都需要针对某个具体的数据库因此必须先“切换”到目标数据库相当于“进入某个文件夹”。1. 基本语法USE 数据库名;2. 实操案例-- 切换到mydb数据库后续操作均针对该数据库 USE mydb;-- 验证是否切换成功查看当前使用的数据库 SELECT DATABASE();执行结果说明若SELECT DATABASE()返回“mydb”说明切换成功若提示“Unknown database ‘xxx’”说明数据库不存在需重新检查数据库名。2.4 删除数据库Delete核心需求删除无用的数据库谨慎操作删除后数据库内所有数据、表都会被彻底删除无法恢复。1. 基本语法-- 基础语法若数据库不存在会报错 DROP DATABASE 数据库名;-- 推荐语法IF EXISTS若数据库存在则删除避免报错 DROP DATABASE IF EXISTS 数据库名;2. 实操案例-- 案例删除名为user_db的数据库谨慎执行 DROP DATABASE IF EXISTS user_db;-- 验证是否删除成功 SHOW DATABASES;3. 避坑重点重中之重⚠️ 警告删除数据库是高危操作一旦执行数据库内所有数据、表会被彻底删除无默认恢复机制学习阶段删除数据库前确认该数据库无重要数据建议先执行SHOW DATABASES确认数据库名避免误删生产环境严禁随意执行DROP DATABASE命令如需删除需先备份数据且经过审批后再操作。三、数据表Table核心操作数据表是存储数据的载体相当于“数据库这个文件夹里的表格”每个表对应一种业务实体如用户表、订单表表内包含多个字段如用户表的姓名、年龄、手机号。本节将讲解数据表的“增、查、改、删”重点是“创建表”最核心和“修改表”删除表同样需谨慎操作。提示所有表操作必须先执行USE 数据库名切换到目标数据库后再执行。本节均以mydb数据库为例。3.1 创建数据表Create核心创建表是最核心的表操作需要定义表名、字段名、字段类型、字段约束如主键、非空字段的设计直接影响后续数据存储和查询效率。1. 基本语法CREATE TABLE IF NOT EXISTS 表名(字段名1 字段类型 字段约束, 字段名2 字段类型 字段约束, 字段名3 字段类型 字段约束,... 字段名n 字段类型 字段约束);2. 核心概念新手必懂字段类型规定该字段能存储的数据类型如INT存储整数、VARCHAR存储字符串、DATE存储日期后续会重点讲解常用类型字段约束对字段的限制如主键约束、非空约束、唯一约束确保数据的合法性和完整性主键PRIMARY KEY表的唯一标识每个表必须有一个主键主键字段的值不能重复、不能为NULL如用户表的id字段。3. 常用字段类型新手必记字段类型说明示例INT整数类型可存储正数、负数、0适合存储年龄、ID等age INT存储年龄VARCHAR(n)字符串类型n表示最大长度0-65535适合存储姓名、手机号等name VARCHAR(20)姓名最长20个字符DATE日期类型格式YYYY-MM-DD适合存储生日、注册日期等birthday DATEDATETIME日期时间类型格式YYYY-MM-DD HH:MM:SS适合存储创建时间、更新时间等create_time DATETIME4. 常用字段约束新手必记PRIMARY KEY主键约束唯一标识一条数据不能重复、不能为NULLAUTO_INCREMENT自增约束仅用于INT类型插入数据时无需手动输入自动生成递增的数值如id自增从1开始每次1NOT NULL非空约束该字段不能为NULL必须填写数据UNIQUE唯一约束该字段的值不能重复如手机号、邮箱。5. 实操案例核心重点创建一个用户表user包含id主键自增、name姓名非空、age年龄、phone手机号唯一、birthday生日贴合真实业务场景-- 切换到mydb数据库 USE mydb;-- 创建user表推荐写法IF NOT EXISTS避免重复创建 CREATE TABLE IF NOT EXISTS user(idINT PRIMARY KEY AUTO_INCREMENT, -- 主键自增唯一标识用户 name VARCHAR(20)NOT NULL, -- 姓名非空必须填写 age INT, -- 年龄可空可选填写 phone VARCHAR(11)UNIQUE, -- 手机号唯一不能重复 birthday DATE -- 生日可空);执行说明若提示“Query OK, 0 rows affected”说明表创建成功若提示“Table ‘user’ already exists”说明表已存在可忽略或删除后重新创建。3.2 查看数据表Read核心需求查看数据库内所有表、查看表结构确认字段名、类型、约束验证表是否创建成功。1. 查看数据库内所有表-- 切换到mydb数据库 USE mydb;-- 查看所有表 SHOW TABLES;执行结果会显示mydb数据库内所有表如user表若能看到目标表说明表创建成功。2. 查看表结构核心查看表的字段名、字段类型、约束确认表结构是否符合预期是后续操作数据的前提。-- 语法1推荐简洁明了 DESC 表名;-- 语法2详细显示表结构 DESCRIBE 表名;-- 实操案例查看user表结构 DESC user;执行结果说明会显示字段名、类型、是否允许为NULL、默认值、约束等信息可对照创建表时的定义确认是否一致。3. 修改数据表Update核心需求表创建后若字段设计不合理如字段类型错误、缺少字段、多余字段需要修改表结构常用操作包括“添加字段、删除字段、修改字段类型/约束”。1. 添加字段最常用-- 基本语法ALTER TABLE 表名 ADD 字段名 字段类型 字段约束;-- 实操案例给user表添加email字段字符串类型唯一可空 ALTER TABLE user ADD email VARCHAR(50)UNIQUE;2. 删除字段-- 基本语法ALTER TABLE 表名 DROP COLUMN 字段名;-- 实操案例删除user表的email字段 ALTER TABLE user DROP COLUMN email;3. 修改字段类型/约束-- 基本语法ALTER TABLE 表名 MODIFY 字段名 新字段类型 新约束;-- 实操案例将user表的age字段改为非空约束 ALTER TABLE user MODIFY age INT NOT NULL;4. 避坑提示修改表结构时若表内已有数据需注意字段类型转换的兼容性如INT不能直接改为VARCHAR可能导致数据丢失删除字段时该字段内所有数据会被一并删除需谨慎操作。3.3 删除数据表Delete核心需求删除无用的数据表谨慎操作删除后表内所有数据会被彻底删除无法恢复。1. 基本语法-- 基础语法若表不存在会报错 DROP TABLE 表名;-- 推荐语法IF EXISTS若表存在则删除避免报错 DROP TABLE IF EXISTS 表名;2. 实操案例-- 案例删除名为test_table的表谨慎执行 DROP TABLE IF EXISTS test_table;-- 验证是否删除成功 SHOW TABLES;3. 避坑重点⚠️ 警告删除数据表是高危操作删除后表内所有数据会被彻底删除无默认恢复机制学习阶段删除表前确认表内无重要数据生产环境删除表前必须备份数据且经过审批。四、数据增删改查CRUD核心中的核心数据表创建完成后核心操作就是对“数据”进行CRUD这是日常开发中使用频率最高的操作本节将结合user表详细讲解每一步操作重点规避新手最容易踩的坑。提示所有数据操作必须先执行USE 数据库名、确认表存在后再执行本节均以mydb数据库的user表为例。4.1 新增数据Create核心需求向数据表中插入一条或多条数据是业务开发中“新增记录”如用户注册、新增订单的核心操作。1. 单条插入最常用-- 基本语法INSERT INTO 表名(字段1, 字段2,...)VALUES(值1, 值2,...);-- 实操案例向user表插入一条用户数据id自增无需手动输入 INSERT INTO user(name, age, phone, birthday)VALUES(张三,20,13800138000,2004-01-01);2. 批量插入高效当需要插入多条数据时批量插入比单条插入更高效避免多次执行INSERT命令。-- 基本语法INSERT INTO 表名(字段1, 字段2,...)VALUES(值1, 值2,...),(值1, 值2,...);-- 实操案例向user表批量插入2条用户数据 INSERT INTO user(name, age, phone, birthday)VALUES(李四,21,13900139000,2003-02-02),(王五,22,13700137000,2002-03-03);3. 避坑提示字段与值的数量、顺序必须一致如name对应’张三’age对应20否则会报错非空字段如name必须填写值不能为NULL否则会报错唯一约束字段如phone的值不能重复否则会报错日期类型的值需符合格式YYYY-MM-DD否则会插入失败。4.2 查询数据Read最常用核心需求从数据表中查询所需数据如查询所有用户、查询指定条件的用户是业务开发中“查看数据”如查看用户信息、查询订单列表的核心操作。1. 查询所有数据基础-- 基本语法SELECT * FROM 表名;*表示查询所有字段 -- 实操案例查询user表所有用户数据 SELECT * FROM user;执行结果会显示user表内所有用户的所有字段数据id、name、age、phone、birthday。2. 查询指定字段推荐实际开发中不需要查询所有字段只查询所需字段如只查询姓名和年龄可提升查询效率。-- 基本语法SELECT 字段1, 字段2,... FROM 表名;-- 实操案例查询user表中所有用户的姓名和年龄 SELECT name, age FROM user;3. 条件查询核心根据指定条件查询数据如查询年龄大于20的用户、查询姓名为张三的用户是最常用的查询场景。-- 基本语法SELECT 字段 FROM 表名 WHERE 条件;-- 实操案例1查询姓名为张三的用户精确匹配 SELECT * FROM user WHEREname张三;-- 实操案例2查询年龄大于20的用户 SELECT name, age FROM user WHERE age20;-- 实操案例3查询手机号为13900139000的用户 SELECT * FROM user WHEREphone13900139000;4. 避坑提示字符串条件如name、phone必须加单引号‘’否则会报错SELECT * 虽然便捷但查询效率低实际开发中尽量指定所需字段。4.3 修改数据Update核心需求修改表中已存在的数据如修改用户年龄、修改手机号是业务开发中“更新记录”如用户修改个人信息的核心操作。1. 基本语法-- 基本语法UPDATE 表名 SET 字段1值1, 字段2值2,... WHERE 条件;-- 实操案例1将张三的年龄改为22 UPDATE user SETage22WHEREname张三;-- 实操案例2将王五的手机号改为13600136000生日改为2002-04-04 UPDATE user SETphone13600136000,birthday2002-04-04WHEREname王五;2. 避坑重点重中之重⚠️ 警告修改数据时必须加WHERE条件否则会修改表内所有数据造成严重后果-- 错误示例严禁执行会将user表所有用户的年龄改为25 UPDATE user SETage25;-- 正确示例加WHERE条件只修改指定用户 UPDATE user SETage25WHEREid1;补充使用id作为WHERE条件如WHERE id1是最安全的因为id是主键唯一标识一条数据不会误改其他数据。4.4 删除数据Delete核心需求删除表中不需要的数据如删除无效用户、删除过期订单是业务开发中“删除记录”的核心操作。1. 基本语法-- 基本语法DELETE FROM 表名 WHERE 条件;-- 实操案例删除姓名为王五的用户 DELETE FROM user WHEREname王五;2. 避坑重点重中之重⚠️ 警告删除数据时必须加WHERE条件否则会清空表内所有数据无法恢复-- 错误示例严禁执行会清空user表所有数据 DELETE FROM user;-- 正确示例加WHERE条件只删除指定用户 DELETE FROM user WHEREid3;补充清空表的另一种方式TRUNCATE但TRUNCATE会删除表内所有数据且无法恢复比DELETE更彻底新手慎用-- 清空user表所有数据慎用无法恢复 TRUNCATE TABLE user;五、本篇总结本篇作为系列第二篇核心围绕MySQL最基础、最常用的CRUD操作展开重点掌握以下内容确保能独立完成单表业务开发数据库操作掌握“创建、查看、切换、删除”四大操作重点记住“IF NOT EXISTS”避坑删除数据库需谨慎数据表操作核心是“创建表”掌握字段类型、字段约束的常用用法能根据业务需求设计简单的表结构同时掌握添加、删除、修改字段的方法数据CRUD操作这是本篇的核心重点掌握新增单条插入、批量插入注意字段与值的匹配、非空和唯一约束查询查询所有、查询指定字段、条件查询避免使用SELECT *修改必须加WHERE条件优先使用id作为条件避免误改全表删除必须加WHERE条件严禁无条件删除区分DELETE和TRUNCATE的区别。至此你已经掌握了MySQL的核心基础操作能够独立完成“数据库→数据表→数据”的全流程操作这是后续学习进阶查询、索引、事务等知识点的基础也是日常开发中最常用的核心技能。六、下一篇预告下一篇我们将进入MySQL进阶阶段——MySQL进阶查询条件、排序、分组、多表连接。单表查询只能满足简单的业务需求实际开发中我们经常需要处理更复杂的查询场景如查询年龄大于20且手机号以138开头的用户、按年龄分组统计用户数量、关联用户表和订单表查询用户的订单信息。下一篇将详细讲解高级条件查询、排序、分页、分组聚合以及核心的多表连接内连接、左连接、右连接彻底搞定复杂查询场景满足真实业务的查询需求让你的SQL查询能力再上一个台阶。