主从表是靠外键联系的。
外键就是避免外键表与主键表上的主键字段数据有差异。
举个例子,你现在有一个主表tab_A,主键t_id,外键表tab_B,t_id是tab_A的t_id外键。那么你就不能先insert tab_B 或者delete tab_B,因为t_id在tab_A中没有值。这样就违反了外键约束。例:
建班级表
create table class(
classid int primary key,--定义班级ID为主键
classname varchar(15)
)
建学生表
create table students(
studentid int primary key,--定义学生ID为主键
classid int ,--外键值,跟班级表classid 属性类型相同
stuname varchar(20),--学生姓名
定义外键
foreign key(classid) references class(classid) --本表classid是基于class表classid的外键)
在班级表为空的情况往学生表插入一条记录是不允许的,必须要先往班级表内插入一条记录:
insert into class(classid,classname)values(1,'一班')
后才能执行插入前面一条往学生表插入信息:
insert into students(studentid,classid,stuname)values(1,1,'小明')
|