外键:从表外键的值是对主表主键的引用。必须和主表主键类型一直。目的:保证数据的完整性。添加后不能删除主表中已经被关联的数据。不建立外键约束也可以,数据任意插入,容易出现错误。

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

例如再product表中添加category_id为category表主键cid的外键   alter table product add  constraint product_fk foreign key (category_id) references category (cid);

表与表的关系

一对多建表原则:再多的一方创建新一个字段作为外键指向一的一方主键。

MYSQL多表学习笔记

多对多建表原则:把一个多对多拆成两个一对多。建立第三张表作为中间表,至少两个字段,分别作为外键指向各自一方的主键

MYSQL多表学习笔记

一对一建表原则:主键对应,可以建成一张表。


多表查询:

①交叉查询 select * from A, B; 结果为AB的乘积。(少用)

②内连接

      显式内连接  select * from A  inner ( 可以省略)  join B on 条件;

例如select * from  products inner join category on cid  =category_id; 

③外连接,左/右外连接

        select * from A left/right  join  B  on 条件;

例如 select * from products left join category on cid = category_id;

④ 子查询

select * from A where 某字段 = (B表中的某字段)

select * from products where category_id = (select cid from category where cid ='c003');


内连接和外连接的区别

MYSQL多表学习笔记

相关文章: