衔肉的狗的寓意是什么:数据库中的外分健是做什么用的?

来源:百度文库 编辑:高校问答 时间:2024/05/07 04:27:06
我有一个数据库reg里面有二个表province和city
province 里面有字段proID,proName 而city表里面有cityID,cityName,proID字段,我刚开始是把proID字段与province表中的proID字段与关连,然后我用
select*from province a,city b where a.proID=b.proID语句来执行操作,可以查出对应的省和份,后来我发现不建立proID字段的关连也可以查出结果来,那么请问建立外健有什么用

外键是一种保证数据完整性的手段,你的查询是join操作,与外键无关。以下是SQL SERVER帮助中的说明,我直接copy过来了:),其实有问题还是看看帮助吧,这个帮助很好的。
----------------------------------

尽管 FOREIGN KEY 约束的主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改。例如,如果在 publishers 表中删除一个出版商,而这个出版商的 ID 在 titles 表中记录书的信息时使用了,则这两个表之间关联的完整性将被破坏,titles 表中该出版商的书籍因为与 publishers 表中的数据没有链接而变得孤立了。FOREIGN KEY 约束防止这种情况的发生。如果主键表中数据的更改使之与外键表中数据的链接失效,则这种更改是不能实现的,从而确保了引用完整性。如果试图删除主键表中的行或更改主键值,而该主键值与另一个表的 FOREIGN KEY 约束值相关,则该操作不可实现。若要成功更改或删除 FOREIGN KEY 约束的行,可以先在外键表中删除外键数据或更改外键数据,然后将外键链接到不同的主键数据上去。