想问一下外键的主要主途是什么,在什么时候会用到?

denoxo 2004-09-15 09:30:17
感觉用外键很麻烦,当要删除主表数据时,还提示有外键关联无法删除。真不知什么时候用它最合适。各位能不能介绍一下经验。
...全文
278 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bernice99 2004-09-15
  • 打赏
  • 举报
回复
当有几个表有联系,要通过外键来连接起来。
比如一张学生信息表(学号,姓名),
成绩表(学号,课程号,成绩),
课程信息表(课程号,课程名,授课老师)。

这样的三张表,学生表通过学号和成绩表联系起来,成绩表通过课程号和课程信息表连接起来。
xuelanghun 2004-09-15
  • 打赏
  • 举报
回复
外键是用于建立和加强两个表数据之间的链接的一列或多列,通过它可以强制参照完整性
pbsql 2004-09-15
  • 打赏
  • 举报
回复
参照完整性
serverme 2004-09-15
  • 打赏
  • 举报
回复
主外健可以用做级联删除或级联更新

在主键发生变化后外键会相应变化
xiays 2004-09-15
  • 打赏
  • 举报
回复
成绩表的学号为学生信息表学号的外键,
成绩表的课程号为课程信息表中课程号的外键.
bernice99 2004-09-15
  • 打赏
  • 举报
回复
alter table 学生信息表 add constraint c_name1 foreign key(学号)
references 成绩表(学号)

alter table 成绩表 add constraint c_name2 foreign key(课程号)
references 课程信息表(课程号)
zh_zh_y 2004-09-15
  • 打赏
  • 举报
回复
以前我一直使用外键来进行表之间的关联,现在我在存储过程中来判断。
DeltaCat 2004-09-15
  • 打赏
  • 举报
回复
参照完整性,级联操作
denoxo 2004-09-15
  • 打赏
  • 举报
回复
如何用SQL语名创建这三张表,主要是外键的设置?
学生信息表(学号,姓名),
成绩表(学号,课程号,成绩),
课程信息表(课程号,课程名,授课老师)
bernice99 2004-09-15
  • 打赏
  • 举报
回复
参照完整性

比如上面删掉学生信息表的一条记录,那么在成绩表里相应的学号的记录便跟着删除;
比如在课程表里,删除某课程,那么成绩表里关于该成绩的信息都删除。

要做到这些联系,必须设置相关联的外键

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧