5 资料维护与子查询
在使用“INSERT”、“UPDATE”与“DELETE”叙述执行新增、修改与删除资料时,也可以依照需要使用子查询来简化资料维护的叙述。
5.1 新增
一般来说,使用“INSERT”叙述执行新增纪录的工作时,通常是直接指定新增纪录的资料;如果你要新增的资料,可以执行一个查询来取得的话,就可以搭配子查询来简化新增纪录的工作:
以下列这个储存国家资料的表格(world.mycountry) 来说:
如果你想要新增亚洲国家的资料到“mycountry”表格中,你可以使用子查询传回新增纪录需要的资料给“INSERT”叙述使用:
使用子查询提供“INSERT”叙述需要的资料,要特别注意子查询回传的字段资料:
注:搭配“ON DUPLICATE KEY UPDATE”的效果在“资料维护、新增、索引值与 ON DUPLICATE KEY UPDATE”中讨论。
MySQL 另外一种新增纪录的“REPLACE”叙述,也可以使用子查询提供需要的资料:
5.2 修改
使用“UPDATE”叙述执行修改资料时,如果没有使用“WHERE”子句指定修改的条件,“UPDATE”叙述会修改表格中所有的纪录;所以执行修改纪录资料的时候,通常会使用“WHERE”子句指定修改的条件。在“UPDATE”叙述的“WHERE”子句中,也可以使用子查询提供判断条件的资料:
如果要执行“SALES 部门的员工加薪百分之五”,因为你需要先知道“SALES”部门的编号,所以你可以使用子查询传回“SALES”部门的编号,给“UPDATE”叙述中的“WHERE”子句设定部门编号的条件:
MySQL 在“UPDATE”叙述中的子查询有一个特别的规定:
5.3 删除
使用“DELETE”叙述执行删除纪录时,如果没有使用“WHERE”子句指定删除的条件,“DELETE”叙述会删除表格中所有的纪录;所以执行删除纪录的时候,通常会使用“WHERE”子句指定删除的条件。在“DELETE”叙述的“WHERE”子句中,也可以使用子查询提供判断条件的资料:
如果要执行“删除 SALES 部门员工”,因为你需要先知道“SALES”部门的编号,所以你可以使用子查询传回“SALES”部门的编号,给“DELETE”叙述中的“WHERE”子句设定部门编号的条件:
MySQL 在“DELETE”叙述中出现的子查询有一个特别的规定:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论