跟我学SQL:(七)从子表里删除数据

文章作者 100test 发表时间 2007:03:10 18:25:27
来源 100Test.Com百考试题网


在这篇文章里我要描述一下如何从表格里删除列,要删除的这些列同时还要依赖于其他表格的标准。要解决这个问题就需要一个很聪明而且完全遵守SQL92子查询声明的应用程序。
我必须提醒读者的是,尽管查询可能会遵守SQL的标准,但是众多的数据库生产商会以不同的句法支持实现SQL。以下这个解决方案应该适合于大多数数据库;但是,如果你的结果有出入,就还是应该查看一下文档。同时,由于这个查询要处理DELETE声明,所以你应该在将其应用于真实的生产环境以前在实验数据上进行测试。

需要更多的背景信息?
查看这些文章就能快速上路:
《SQL基础I查数据查询》涉及到了DELETE查询的使用。
《使用SQL子选项来合并查询》说明子选项查询能够减少对数据库请求的数量,并提供了例子。
《SQL基础:查询多个表》提供了更多关于子选项的信息,还讲到了使用单个查询就能访问多个表格的多种其他方法。

宠物店的例子
要解释如何进行这种类型的列删除,我会使用如下这个数据库的表格,该数据库叫做PetStore,并包含有清单(inventory)信息。在叫做“品种(breed)”的表A里,我存储有每种动物的信息和宠物店库存的信息。在叫做“清单”的表B里,包含有商店里特定动物的信息。

在这个例子里,我们先假设商店把整窝Shitzu小狗都卖完了。我可以使用breed表格里的breed_id字段来删除Shitzu清单里的所有项目,就像这样:

DELETE FROM inventory WHERE breed_id IN
(SELECT breed_id FROM breed WHERE breed_name = ‘Shitzu’).

相关文章


跟我学SQL:(六)串行数据类型
跟我学SQL:(八)数值数据类型
跟我学SQL:(七)从子表里删除数据
数据结构教程第二课抽象数据类型的表示与实现
数据结构教程第一课数据结构的基本概念和术语
等级考试三级数据库考点分析之数据结构与算法
计算机等级三级数据库:全面接触SQL语法
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛