今天看了看印度兄弟的培训材料,被整懵了。。。然后认认真真百度一番,总结一下。虽然上学时都学过,但是真是没往心里去啊!!报应。
直接上例子,比一堆复杂的定义清楚多了。
宿舍楼信息表
宿舍楼号(主键)
宿舍位置
学生住宿表
学号(主键)
宿舍楼号(外键)
这里,宿舍楼信息表就是主表,学生住宿表就是从表。从表的外键引用了主表的主键。简而言之,有外键的表就是从表。。。为什么要有设置外键?
经过楼主认真思索,发现,原因是这样的:咱们学校一共就7栋宿舍楼,1~7。那么学生住宿表里,宿舍楼号必须也是1~7,或者留空。
如果insert into 学生住宿表 values(1,9),指定是插入不了的,数据库会报错的~~
当删除表,如:drop table 宿舍楼信息表,Oracle是不会同意的。
此时需要使用drop table 宿舍楼信息表 cascade,数据库会将这个外键限制同时删除。但这不会影响到学生住宿表,宿舍楼号的属性值。
完毕。