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 操作有所帮助!如果你有任何疑问或补充,欢迎在评论区留言讨论!

相关推荐
qq_3129201126 分钟前
MySQL在Linux环境下的性能调优
linux·mysql·adb
····懂···43 分钟前
开源数据库PostgreSQL专家技术
数据库·postgresql·开源
Asu52021 小时前
思途SQL学习 0729
数据库·sql·学习
北亚数据恢复1 小时前
服务器数据恢复—RAID上层部署的oracle数据库数据恢复案例
数据库·oracle·服务器数据恢复·北亚数据恢复
不辉放弃2 小时前
kafka的消息存储机制和查询机制
数据库·kafka·pyspark·大数据开发
一位搞嵌入式的 genius2 小时前
暑期自学嵌入式——Day10(C语言阶段)
linux·笔记·学习·嵌入式c语言
ZZH1120KQ3 小时前
ORACLE的用户维护与权限操作
数据库·oracle
妮妮喔妮4 小时前
图片上传 el+node后端+数据库
javascript·数据库·vue.js
晨非辰4 小时前
#C语言——学习攻略:深挖指针路线(三)--数组与指针的结合、冒泡排序
c语言·开发语言·数据结构·学习·算法·排序算法·visual studio
先生沉默先4 小时前
Docker学习日志-Docker容器配置、Nginx 配置与文件映射
学习·nginx·docker