MYSQL多表学习笔记

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

   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);

表与表的关系

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


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


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


多表查询:

①交叉查询 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');


内连接和外连接的区别


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值