如果我查询一个带有外键的列,我是否需要加入引用的表?

时间:2015-06-06 12:30:32

标签: sql-server

假设我有一个表(table1),它有一个列(column1),其上有一个引用另一个表(table2)的外键。如果我想要的只是column1中的数据,我是否需要连接table1和table2?那么以下代码就足够了:

SELECT column1
FROM table1;

1 个答案:

答案 0 :(得分:1)

是的,这就足够了 然而,与stan在他的评论中所写的不同,外键约束用于连接 它们是强制执行称为参照完整性的数据完整性的数据库方式 外键的含义是数据库不允许“子”表中的“孤立”记录 - 这意味着如果引用的表中不存在fk列的值,则无法将记录插入表中。
更新也是如此 此外,您无法删除具有fk引用它的记录。

联接与fk约束无关,尽管它们经常使用与fk相同的列。您可以将每个表连接到每个其他表或视图。实际上,某些连接类型甚至没有连接条件。