您的位置:首页 > 数据库 > MySQL

MYSQL多表学习笔记

2018-04-06 10:44 190 查看
外键:从表外键的值是对主表主键的引用。必须和主表主键类型一直。目的:保证数据的完整性。添加后不能删除主表中已经被关联的数据。不建立外键约束也可以,数据任意插入,容易出现错误。
   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');

内连接和外连接的区别

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: