返回介绍

5 资料维护与子查询

发布于 2025-02-20 13:00:30 字数 3707 浏览 0 评论 0 收藏 0

在使用“INSERT”、“UPDATE”与“DELETE”叙述执行新增、修改与删除资料时,也可以依照需要使用子查询来简化资料维护的叙述。

5.1 新增

一般来说,使用“INSERT”叙述执行新增纪录的工作时,通常是直接指定新增纪录的资料;如果你要新增的资料,可以执行一个查询来取得的话,就可以搭配子查询来简化新增纪录的工作:

mysql_10_snap_33

以下列这个储存国家资料的表格(world.mycountry) 来说:

mysql_10_snap_34

如果你想要新增亚洲国家的资料到“mycountry”表格中,你可以使用子查询传回新增纪录需要的资料给“INSERT”叙述使用:

mysql_10_snap_35

使用子查询提供“INSERT”叙述需要的资料,要特别注意子查询回传的字段资料:

mysql_10_snap_36

注:搭配“ON DUPLICATE KEY UPDATE”的效果在“资料维护、新增、索引值与 ON DUPLICATE KEY UPDATE”中讨论。

MySQL 另外一种新增纪录的“REPLACE”叙述,也可以使用子查询提供需要的资料:

mysql_10_snap_37

5.2 修改

使用“UPDATE”叙述执行修改资料时,如果没有使用“WHERE”子句指定修改的条件,“UPDATE”叙述会修改表格中所有的纪录;所以执行修改纪录资料的时候,通常会使用“WHERE”子句指定修改的条件。在“UPDATE”叙述的“WHERE”子句中,也可以使用子查询提供判断条件的资料:

mysql_10_snap_41

如果要执行“SALES 部门的员工加薪百分之五”,因为你需要先知道“SALES”部门的编号,所以你可以使用子查询传回“SALES”部门的编号,给“UPDATE”叙述中的“WHERE”子句设定部门编号的条件:

mysql_10_snap_42

MySQL 在“UPDATE”叙述中的子查询有一个特别的规定:

mysql_10_snap_40

5.3 删除

使用“DELETE”叙述执行删除纪录时,如果没有使用“WHERE”子句指定删除的条件,“DELETE”叙述会删除表格中所有的纪录;所以执行删除纪录的时候,通常会使用“WHERE”子句指定删除的条件。在“DELETE”叙述的“WHERE”子句中,也可以使用子查询提供判断条件的资料:

mysql_10_snap_41

如果要执行“删除 SALES 部门员工”,因为你需要先知道“SALES”部门的编号,所以你可以使用子查询传回“SALES”部门的编号,给“DELETE”叙述中的“WHERE”子句设定部门编号的条件:

mysql_10_snap_42

MySQL 在“DELETE”叙述中出现的子查询有一个特别的规定:

mysql_10_snap_43

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文