文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL学习之数据更新操作详解

2022-08-08 12:58

关注

UPDATE 语句

UPDATE 语句用于修改表的记录,语法如下

UPDATE IGNORE 表名
SET 字段1=值1, 字段2=值2, 字段3=值3, ......
WHERE 条件1 ......
ORDER BY ......
LIMIT ......;

-- 注意:IGNORE - 是可选条件,使用后,会针对有冲突的修改记录忽略
-- 注意:WHERE - 也是可选条件,使用了就是有条件的修改记录;不使用就是无条件的修改记录,也就是针对全表范围进行记录的修改 
-- 注意:ORDER BY - 之所以使用排序主要是针对类似多条记录,批量递增的形式去修改(比如说员工工资的统一普调,员工工号的递增加1)。
-- 注意:LIMIT - UPDATE 语句中的 LIMIT 子句只能写一个参数,不能像之前那样写两个参数。

UPDATE 语句的执行顺序:UPDATE ---> WHERE ---> ORDER BY ---> LIMIT ---> SET

UPDATE 语句练习①

把每个员工的编号和上司的编号 +1 ,利用 “ORDER BY” 子句完成。

“UPDATE” - SQL语句演示案例①:

UPDATE t_emp
SET empno = empno + 1, mgr = mgr + 1
ORDER BY empno DESC;

-- 这里解释一下,为什么会这样。
-- 当我们更新第一个员工的工号 +1 的时候,实际上他的下一位员工编号是与当前员工编号 +1 的结果是冲突的,这就是我们使用 ORDER BY 的原因

MySQL学习之数据更新操作详解

UPDATE 语句练习②

将月收入前3名的员工月薪减 100 ,使用 LIMIT 子句完成。

“UPDATE” - SQL语句演示案例②:(首先按照月收入排成降序,然后取前3条记录,然后再执行 "UPDATE" 的操作)

UPDATE t_emp
SET sal = sal - 100
ORDER BY sal + IFNULL(comm,0) DESC
LIMIT 3;

MySQL学习之数据更新操作详解

UPDATE 语句练习③

将 10 部门中,工龄超过 20 年的员工,底薪增加 200 。

“UPDATE” - SQL语句演示案例③:(筛选 10 部门与工龄超过20年的员工写在 "WHERE" 子句即可,底薪增加 200 写在SET子句)

UPDATE t_emp
SET sal = sal + 200
WHERE deptno=10
AND DATEDIFF(NOW(),hiredate)/365 >= 20;

MySQL学习之数据更新操作详解

UPDATE 语句的表连接

因为相关子查询的效率非常低,所以我可以利用表连接的方式来改造 “UPDATE” 语句。

表连接的 “UPDATE” 语句可以修改多张表的记录。

UPDATE 语句的表连接的语法如下:(内连接方式)

UPDATE 表1 JOIN 表2 ON 条件
SET 字段1=值1, 字段2=值2, ......;

-- 这里的字段是比较有意思的,不是说 SET 关键字修改的字段只能来自一张表,它可以来自 被关联的任意一张表。

UPDATE 语句的表连接的语法如下:(内连接变种方式)

UPDATE 表1, 表2 
SET 字段1=值1, 字段2=值2, ......
WHERE 连接条件;

UPDATE 语句练习④

把 ALLEN 调往 “RESEARCH” 部门,职务调整为 “ANALYST”。

这个需求的 SQL 语句牵扯到两张表,这里呢我们可以通过子查询的方式来实现。但是 UPDATE 语句中的子查询为相关子查询,所以并不建议使用。比较合适的方式就是实用 “表连接” 的方式来实现,具体参考 “UPDATE 语句的表连接” 语法。

通过练习题的方式更鼓 “UPDATE” 的语法还是挺有意思的,可以开阔思路,有助于我们巩固 “UPDATE” 的语法。

到此这篇关于mysql学习之数据更新操作详解的文章就介绍到这了,更多相关MySQL数据更新内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯