1.1 交叉连接查询product,category两张表中数据(无条件)
select * from product,category;
查询出来的是两张表的乘积,查询出来的数据没有意义
1.2 过滤出有意义的数据
select * from product,category where cno=cid;
select * from product as p,category as c where p.cno=c.cid;
或
select * from product p,category c where p.cno=c.cid;
2.1 隐式内连接
select * from product p,category c where p.cno=c.cid;
select * from product p inner join category c on p.cno=c.cid;
3.1 左外连接
将左表的数据全部查询出来,如果右表中没有对应的数据,用null代替
数据准备
insert into product values(null,'耐克',1000,null);
左外连接查询
select * from product p left outer join category c on p.cno=c.cid;
将右表的数据全部查询出来,如果左表中没有对应的数据,用null代替
数据准备
insert into category values(100,'电脑办公','电脑....');
右外连接查询
select * from product p right outer join category c on p.cno=c.cid;
limit 第一个参数,第二个参数;
第一个参数是索引,第二个参数是显示的个数。
练习:
使用分页查询第一页
select * from product limit 0,3;
select * from product limit 3,3;
起始索引:index代表显示第几页 页数从1开始
每页显示3条数据:startindex = (index-1)*3
5.1 查询分类名称为手机数码的所有商品
select * from product where cno=(select cid from category where cname='手机数码');
左连接方式
select p.pname,c.cname from product p left outer join category c on p.cno=c.cid;
select pname,(select cname from category c where p.cno=c.cid) from product p;