JAVAEE

JAVAEE——数据库多表操作

2018-03-14  本文已影响4人  So_ProbuING

外键

我们假设有两张表需要关联,一张product商品表,一张category商品分类表。那么我们通常的做法是,在一张表上添加另一张表的一列信息,例如在商品表中添加分类表的category_id,那么我们称为 category为主表,添加的product表为从表,添加的category_id称为外键,category表的cid称为主键,我们通过主表的主键和从表的外键来描述主外键关系,这样我们就描述了一个一对多的关系。
外键的特点:
* 从表外键的值时对主键的引用
* 从表的外键类型,必须与主键类型一致


image.png

声明外键约束

语法

alter table 从表 add[constraint][外键名称] foreign key (从表外键字段名) references (主表的主键)

alter table 从表 drop foreign key 外键名称 -删除外键 
# 为从表添加外键
alter table product ADD foreign key(category_id) references category(cid);

多表查询

select * from A,B 得到的是A表和B表的乘积
# 隐式内连接
select * from category c,product p where c.cid = p.category_id
# 显式内连接
select * from category inner join product on cid = product.category_id
select * from category c inner join product p on c.cid = p.category_id;

子查询

将一条select语句结果作为另一条select语句的一部分(查询条件,查询结果,表等)

select * from product WHERE category_id=(select cid from category WHERE cname = '化妆品');
上面这条SQL语句中 查询条件where category_id 的值成了另一个查询语句的结果
上一篇 下一篇

猜你喜欢

热点阅读