数据库 主键-外键 的建立到底都有哪些用处?
1个回答
展开全部
主键用于确保数据的唯一性
例如:
一个学生表。 里面有多个 叫 张三 的学生。
如果没有主键的话,
那么,假如今天一个叫张三的人,去图书馆借书。
图书馆怎么判断,这个 张三, 是这么多 张三中的哪一个呢?
但是如果有一个主键。比如 学号。
那么这个 张三去借书, 图书馆直接 通过学号,可以确认唯一的一个人。
外键用于确保数据完整性。
例如:
一个班级表,一个学生表。 两者建立外键的关系后。
如果班级表里面,只有1班,2班。 那么你尝试插入一条 3班的学生,是不允许的。
又比如,假如 1班下面,有5条学生记录, 你现在要 删除 1班这条班级的记录。
那么根据外键的创建机制
你可能 不允许删除,必须先删除学生记录,后删除班级记录
或者,删除班级记录同时,一起删除学生记录
或者,删除班级记录同时,将学生表的 班级ID那个外键的字段,设置为 NULL.
例如:
一个学生表。 里面有多个 叫 张三 的学生。
如果没有主键的话,
那么,假如今天一个叫张三的人,去图书馆借书。
图书馆怎么判断,这个 张三, 是这么多 张三中的哪一个呢?
但是如果有一个主键。比如 学号。
那么这个 张三去借书, 图书馆直接 通过学号,可以确认唯一的一个人。
外键用于确保数据完整性。
例如:
一个班级表,一个学生表。 两者建立外键的关系后。
如果班级表里面,只有1班,2班。 那么你尝试插入一条 3班的学生,是不允许的。
又比如,假如 1班下面,有5条学生记录, 你现在要 删除 1班这条班级的记录。
那么根据外键的创建机制
你可能 不允许删除,必须先删除学生记录,后删除班级记录
或者,删除班级记录同时,一起删除学生记录
或者,删除班级记录同时,将学生表的 班级ID那个外键的字段,设置为 NULL.
参考资料: http://hi.baidu.com/wangzhiqing999/blog/item/969f70fa84e2873e5d600821.html
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询