2个表;人员表,订单表;
创建人员表,pid为主键;Sqlite的主键自增长必须为integer,不能为int;
创建订单表;字段: oid,orderno, pid;
订单表中的 pid 列指向人员表中的pid列;
人员表中的pid列是人员表中的 PRIMARY KEY;
订单表中的pid列是订单表中的外键;
FOREIGN KEY 约束用于预防破坏表之间连接的行为;
FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一;
sqlite外键的写法: foreign key(pid) references persons(pid));
下面来看一下有了外键之后的数据插入情况;
人员表插入3条数据;pid分别为1,2,3;
再alter ,给订单表添加goods字段;然后给订单表插入数据;
先插入四条数据,人员id分别为1,2,3,这都没问题,插入了;
再插入一条,人员id为4,人员表不存在此id,按外键约束不能插入;但是插入了;现在orders表有5条记录;
因为sqlite默认不打开外键支持;必须如下图语句打开,才支持外键;
然后再插入一条,提示 因为外键约束不能插入;看一下第6条数据没有插入;前面5条还在;
写个左连接查询看一下人员订购的货物;