1、分类表
create table category(cid varchar(32) primary key , cname varchar(100));
2、商品表
create table product (pid varchar(32) primary key, pname varchar(40),price double, category_id varchar(32));
两个表需要建立关联关系。
声明外键约束。语法:alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名 ) references (主表)主表的主键;
alter table product add foreign key(category_id) references category(cid);
从表外键不能添加,主表中不存在的记录。
主表不能删除,从表中已经引用的记录。
操作:查询
多表查询
1、交叉连接查询(基本不会使用-得到的是两个表的乘积)
语法:select * from A,B;
2、内连接查询(使用的关键字 inner join -- inner可以省略)
隐士内连接:select * from A,B where 条件;
显示内连接:select * from A inner join B on 条件;
3、外连接查询(使用的关键字 outer join -- outer可以省略)
左外连接: left outer join
select * from A left outer join B on 条件;
右外连接:right outer join
select * from A right outer join B on 条件;
左外连接:左表全部及两个表的交集。
右外连接:右表全部及两个表的交集。
内连接:两个表的交集。
子查询:一条select语句结果,作为另一条select语法一部分(查询条件、查询结果,表等)。
子查询:查询“化妆品”分类上架商品详情。
select * from product where category_id = (select cid from category where cname='化妆品');