外键的使用
Usage of Foreign Key
我正在尝试学习 SQL 服务器,但对外键的使用感到困惑。我擅长创建、更改和删除外键。我怀疑外键何时有用!
1st table 是 'subject',里面有 'subject'(主键)和 'teacher'。
第二个 table 是 'Class',具有 'Class'(主键)和 'Floor'.
我用 'class' 和 'subject' 制作了第 3 个 table 'Details'。
'details.subject' 是对 subject.subject 的外键引用,'details.class' 是对 'class.class' 的外键引用。现在我很困惑如何在一次执行中看到所有细节?
SELECT *
FROM Details
仅提供 class 和 table 'Details' 的主题。但是当我 运行 一个查询时,我想得到“ details.class, class.floor, details.subject, subject.teacher ”。如果我们仅在使用 'JOINS' 时得到上述输出,那么为什么我们应该使用 'Foreign Key' :o
我想你理解我的疑问..我卡住了,请帮忙:p
它用于防止破坏 table 之间链接的操作。 FOREIGN KEY 约束还可以防止将无效数据插入到外键列中,因为它必须是它指向的 table 中包含的值之一。
如果你在 2 table 之间有外键关系,你也是。并且您启用了删除时的级联,然后如果删除了父行,它将自动删除子 table.
中的相关行
我正在尝试学习 SQL 服务器,但对外键的使用感到困惑。我擅长创建、更改和删除外键。我怀疑外键何时有用!
1st table 是 'subject',里面有 'subject'(主键)和 'teacher'。
第二个 table 是 'Class',具有 'Class'(主键)和 'Floor'.
我用 'class' 和 'subject' 制作了第 3 个 table 'Details'。
'details.subject' 是对 subject.subject 的外键引用,'details.class' 是对 'class.class' 的外键引用。现在我很困惑如何在一次执行中看到所有细节?
SELECT *
FROM Details
仅提供 class 和 table 'Details' 的主题。但是当我 运行 一个查询时,我想得到“ details.class, class.floor, details.subject, subject.teacher ”。如果我们仅在使用 'JOINS' 时得到上述输出,那么为什么我们应该使用 'Foreign Key' :o
我想你理解我的疑问..我卡住了,请帮忙:p
它用于防止破坏 table 之间链接的操作。 FOREIGN KEY 约束还可以防止将无效数据插入到外键列中,因为它必须是它指向的 table 中包含的值之一。 如果你在 2 table 之间有外键关系,你也是。并且您启用了删除时的级联,然后如果删除了父行,它将自动删除子 table.
中的相关行