MySQL多表操作

26 篇文章 0 订阅

MySQL多表操作

1.外键
定义:外键是指引用另一个表中的一列或多列,被引用的列应该具有主键约束或唯一性约束,外键用于建立和加强两个表数据之间的连接。
现在我们有两张表“分类表”和“商品表”,为了表明商品属于哪个分类,通常情况下,我们将在商品表上添加一列,用于存放分类cid的信息,此列称为:外键
在这里插入图片描述
在这里插入图片描述

此时“分类表category”称为:主表,“cid”我们称为主键。“商品表products”称为:从表,category_id称为外键。我们通过主表的主键和从表的外键来描述主外键关系,呈现就是一对多关系。
外键特点:
从表外键的值是对主表主键的引用
从表外键类型,必须与主表主键类型一致。
声明外键约束:
语法:alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名) references 主表 (主表的主键);

[外键名称]用于删除外键约束的,一般建议“_fk”结尾
altertable 从表 drop foreignkey 外键名称
使用外键的目的:保证数据完整性
2.表与表之间的关系
表与表之间的关系,说的就是表与表数据之间的关系。
1)一对多关系:
常见实例:客户与订单,分类与商品。部门与员工
一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键
2)多对多关系:
常见实例:学生和课程、用户和角色
多对多关系建表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键.
3)一对一关系
在实际的开发中应用不多.因为一对一可以创建成一张表.
外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一unique。
外键是主键:主表的主键和从表的主键,形成主外键关系。
3.多表查询操作
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 条件;
4.子查询
子查询:一条select语句作为另一条select语句的一部分(查询条件,查询结果,表等)。
select * from products where category_id=(select cid from category where cname=‘化妆品’)
5.注意
从表外键不能添加主表中不存在的记录
主表不能删除从表中已经引用的记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值