我可以使用自然连接代替主键和外键吗?
如果我使用自然连接,那么主键和外键有什么用?
If i use Natural joins than what is the use of primary key and foreign key?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如果我使用自然连接,那么主键和外键有什么用?
If i use Natural joins than what is the use of primary key and foreign key?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
主键和外键是数据库的约束类型:它们的目的是保证数据的完整性,而不是为了方便连接。
主键:主键列的值相同的行不得超过一行。
外键:每行的外键列中的每个值都必须对应于引用/父表中的行的主(或唯一)键。
Primary keys and foreign keys are types of database constraint: their purpose is to ensure the integrity of the data, not to facilitate joins.
Primary Key: there must not be more than one row with the same value for the primary key column(s).
Foreign Key: every value in the foreign key column(s) of each row must correspond to the primary (or unique) key of a row in the referenced/parent table.
不太确定你在问什么。连接的作用与 PK/FK 不同 - 并且它们显然不能相互替代。 PK 和 FK 实施约束以确保数据的正确性。连接是一种查询操作。
Not sure quite what you are asking. Joins do something different to PKs/FKs - and they are clearly not a substitute for each other. PKs and FKs implement constraints to ensure correctness of the data. Joins are a type of query operation.
自然连接通常不是一个好主意。您可能会意外地加入到错误的字段,然后您的结果都是错误的,但可能看起来是正确的。即使它们一开始有效,稍后对数据库的更改也可能会极大地改变您的查询结果并且很难弄清楚。在任何情况下我都不会使用自然连接。
PK 和 Fks 的作用是强制数据完整性,无论是否使用自然连接,删除它们都是一个非常糟糕的主意。没有适当的 PKS 和 FK 的数据库几乎总是会包含错误数据。
Natural joins are usually a bad idea. You can accidentally join to the wrong field and then your results are all wrong but may appear to be right. Even if they work at first, changes to the database at a later time could drastically alter your query results and be hard to figure out. I would under no circumstances use a natural join.
The PKs and Fks are there to enforce data integrity, it would be an extremely bad idea to remove them whether you use natural joins or not. Databases without proper PKS and FKs almost always end up containing bad data.