1.多表关系维护
外键约束:forerign key
- 给product 添加一个外键约束
alter table product add foreign key (cno) REFERENCES category(cid)
- 多表建表原则
- 一对一
- 一对多 : 商品和分类
建表原则 :在多的一方添加外键 指向一的一方主键
- 多对多
建表原则 : 多建一张中间表,将多对多的关系拆成一对多的关系,中间至少要有两个外键;这两个外键分别指向原来那张表
实际操作: 用的不很多 (拆表操作)
- 多表之间得关系维护:外键约束:foregin key
- 添加一个外键:alter table product add foregin key (cno) references cartory(cid)
foregin key (cno) references cartory(cid)
删除得时候,先删除外键关联得所有数据,才能在删除分类得数据
2.多表查询
-- 数据准备
insert into product VALUES(null,'耐克',300,NULL,null)
select * from product
select *from product p,category c where p.cno=c.cid
-- 内连接
-- 隐式内连接
select *from product p,category c where p.cno=c.cid
-- 显示内连接
select * from product p inner join category c on p.cno=c.cid
-- 区别
-- 隐式内连接:在查询结果得基础上做的where条件过滤
-- 显示内连接: 带着条件去去查询结果 这个效率高点
-- 左外连接
-- 会将左表中的所有数据查询出来 如果右表没有对应的数据 用null代替
select * from product p left outer join category c on p.cno=c.cid
insert into category VALUES(100,'电脑办公','Apple、外星人')
select * from category
-- 右外连接
-- 会将右表中的所有数据查询出来 如果左表没有对应的数据 用null代替
select * from product p right outer join category c on p.cno=c.cid
3. 分页查询
-- 第一个是索引 第二个是显示的个数
select * from product limit 0,10