MySQL 基础学习(4):条件查询(WHERE)更新操作(UPDATE)删除操作(DELETE)分页查询(LIMIT)

在本篇文章中,我们将深入探讨 MySQL 的 WHERE 条件查询、更新操作(UPDATE)以及删除操作(DELETE),并通过实例帮助你更好地掌握这些功能。

一、条件查询(WHERE)

WHERE 子句用于筛选符合特定条件的数据,是 MySQL 查询中最重要的部分之一。

1. 比较运算符

以下是常用的比较运算符及其含义:

运算符 说明
>, >=, <, <= 大于,大于等于,小于,小于等于
= 等于
!=, <> 不等于
BETWEEN a AND b 范围匹配,a <= value <= b
IN (a, b, c) 值是否在列表中
IS NULL 判断值是否为 NULL
LIKE 模糊匹配(% 表示任意字符)
示例
  1. 查询英语成绩小于 60 的学生:
sql 复制代码
SELECT name, english FROM exam_result WHERE english < 60;
  1. 查询语文成绩大于英语成绩的学生:
sql 复制代码
SELECT name, chinese, english FROM exam_result WHERE chinese > english;
  1. 查询总分小于 200 的学生:
sql 复制代码
SELECT name, chinese + math + english AS total FROM exam_result WHERE chinese + math + english < 200;

2. 逻辑运算符

运算符 说明
AND 所有条件为真时,结果为真
OR 任意条件为真时,结果为真
NOT 条件为真时,结果为假
示例
  1. 查询语文和英语成绩都大于 80 的学生:
sql 复制代码
SELECT * FROM exam_result WHERE chinese > 80 AND english > 80;
  1. 查询语文成绩大于 80 或英语成绩大于 80 的学生:
sql 复制代码
SELECT * FROM exam_result WHERE chinese > 80 OR english > 80;
  1. 查询语文成绩不在 80 到 90 之间的学生:
sql 复制代码
SELECT name, chinese FROM exam_result WHERE NOT (chinese BETWEEN 80 AND 90);

3. 模糊查询

模糊查询使用 LIKE,结合 %_ 实现灵活匹配。

  • %:匹配任意字符(包括 0 个字符)。
  • _:匹配任意单个字符。
示例
  1. 查询名字以"张"开头的学生:
sql 复制代码
SELECT name FROM exam_result WHERE name LIKE '张%';
  1. 查询名字中包含"李"的学生:
sql 复制代码
SELECT name FROM exam_result WHERE name LIKE '%李%';
  1. 查询名字为三个字的学生:
sql 复制代码
SELECT name FROM exam_result WHERE name LIKE '___';
  1. 查询名字以"张"开头且为两个字的学生:
sql 复制代码
SELECT name FROM exam_result WHERE name LIKE '张_';
  1. 查询名字以"李"结尾且中间包含任意多个字符的学生:
sql 复制代码
SELECT name FROM exam_result WHERE name LIKE '%李';

二、更新操作(UPDATE)

UPDATE 语句用于修改表中的数据,基本语法如下:

sql 复制代码
UPDATE 表名 SET 列名 = 值 [, 列名 = 值 ...] WHERE 条件;
示例
  1. 将名字为"孙悟空"的学生数学成绩更新为 80:
sql 复制代码
UPDATE exam_result SET math = 80 WHERE name = '孙悟空';
  1. 将所有学生的语文成绩增加 10 分:
sql 复制代码
UPDATE exam_result SET chinese = chinese + 10;
  1. 将总分排名前三的学生数学成绩增加 30 分:
sql 复制代码
UPDATE exam_result SET math = math + 30 ORDER BY chinese + math + english LIMIT 3;

三、删除操作(DELETE)

DELETE 语句用于删除表中的数据,基本语法如下:

sql 复制代码
DELETE FROM 表名 WHERE 条件;
示例
  1. 删除名字为"孙悟空"的学生记录:
sql 复制代码
DELETE FROM exam_result WHERE name = '孙悟空';
  1. 删除所有英语成绩低于 60 的学生记录:
sql 复制代码
DELETE FROM exam_result WHERE english < 60;
  1. 清空表中所有数据(不删除表结构):
sql 复制代码
TRUNCATE TABLE exam_result;

四、分页查询与性能优化

分页查询(LIMIT)

分页查询用于限制返回的记录条数,语法如下:

sql 复制代码
SELECT * FROM 表名 LIMIT 偏移量, 行数;
示例
  1. 查询前 3 条记录:
sql 复制代码
SELECT * FROM exam_result LIMIT 3;
  1. 查询第 4 到第 6 条记录:
sql 复制代码
SELECT * FROM exam_result LIMIT 3, 3;

性能优化建议

  1. WHERE 子句优化:尽量使用索引列参与条件判断。
  2. 避免全表扫描 :通过 EXPLAIN 分析查询计划,优化慢查询。
  3. 分页优化:对于大表分页查询,避免使用较大的偏移量,可以结合子查询优化。

五、总结

在 MySQL 的数据操作中,条件查询、更新和删除是最常用的功能。熟练使用 WHERE 子句可以帮助我们快速筛选所需数据,而 UPDATEDELETE 操作需要特别注意条件的准确性,以免误操作导致数据丢失。在实际开发中,还需结合性能优化方法,确保数据库的高效运行。

希望本文对你理解 MySQL 操作有所帮助!如果你有任何疑问或补充,欢迎在评论区留言讨论!

相关推荐
DKPT1 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式
好奇的菜鸟3 小时前
如何在IntelliJ IDEA中设置数据库连接全局共享
java·数据库·intellij-idea
tan180°3 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
满昕欢喜3 小时前
SQL Server从入门到项目实践(超值版)读书笔记 20
数据库·sql·sqlserver
DuelCode4 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
好好研究4 小时前
学习栈和队列的插入和删除操作
数据结构·学习
幽络源小助理4 小时前
SpringBoot基于Mysql的商业辅助决策系统设计与实现
java·vue.js·spring boot·后端·mysql·spring
Hello.Reader5 小时前
Redis 延迟排查与优化全攻略
数据库·redis·缓存
新中地GIS开发老师5 小时前
新发布:26考研院校和专业大纲
学习·考研·arcgis·大学生·遥感·gis开发·地理信息科学
简佐义的博客5 小时前
破解非模式物种GO/KEGG注释难题
开发语言·数据库·后端·oracle·golang