当你想在你的代码中找到一个错误时,这很难;当你认为你的代码是不会有错误时,这就更难了。

SQL-我可以用自然连接代替主键和外键吗?

admin 187℃
如果我使用自然连接,那么主键和外键的用途是什么?

主键和外键是数据库约束的类型:它们的目的是确保数据的完整性,而不是方便连接。

主键:主键列不能有多个值相同的行。

外键:每一行外键列中的每个值都必须对应于被引用/父表中某一行的主键(或唯一键)。

不太清楚你在问什么。joins做了一些与pks/fks不同的事情——它们显然不是彼此的替代品。pks和fks实现约束以确保数据的正确性。联接是一种查询操作。

自然连接通常是个坏主意。您可能会意外地加入到错误的字段,然后您的结果都是错误的,但可能看起来是正确的。即使它们一开始起作用,以后对数据库的更改可能会极大地改变查询结果,而且很难找出答案。在任何情况下我都不会使用自然连接。

pks和fks是用来增强数据完整性的,不管您是否使用自然连接,删除它们都是一个非常糟糕的主意。没有正确pks和fks的数据库几乎总是包含错误的数据。

转载请注明:我的代码 » SQL-我可以用自然连接代替主键和外键吗?