一、外键约束: foreign key
【需求】
给product中的这个cno 添加一个外键约束
【代码】
--通过外键约束来控制数据的插入
alter table product add foreign key(cno) references category(cid);
【结果】
有了外键约束,就可以控制插入的数据是否符合要求,如上例中,product的cno的约束为cid即1~5,所以,在插入cno为22的旺旺仙贝时,就会报错。
有了外键约束,两个表就有了关联,如上面例子:不可以直接删除ID为5的数据,必须先得去product表, 删除所有cno=5的商品
二、内连接查询
1、隐式内连接
SELECT * FROM product p ,category c WHERE p.cno = c.cid;
2、显示内连接
SELECT * FROM product p INNER JOIN category c ON p.cno=c.cid;
【区别】
隐式内连接:在查询结果的基础上做的where过滤
显示内连接:带着条件去查询结果,执行效率高
三、外连接查询
1、左外连接
SELECT * FROM product p LEFT OUTER JOIN category c ON p.cno=c.cid
2、右外连接
SELECT * FROM product p RIGHT OUTER JOIN category c ON p.cno=c.cid
【区别】
左外连接:会将左表中所有的数据查询出来,如果右表中没有对应的数据,用null代替
右外链接:会将右表中所有的数据查询出来,如果左表中没有对应的数据,用null代替
四、分页查询
第一个参数是索引
第二个参数显示的个数
select * from product limit 0,3;
五、子查询
例1:
查询分类名称为手机数码的所有商品
SELECT * FROM product WHERE cno=(SELECT cid FROM category WHERE cname='手机数码');