Mysql多表&JDBC

来源:互联网 发布:java开源代码论坛 编辑:程序博客网 时间:2024/06/05 18:31

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='化妆品');




原创粉丝点击