MySQL 多表设计、关联查询

本文介绍了MySQL数据库中的多表设计,包括范式理论,如第一范式到第三范式,以及外键的概念和使用。此外,还详细讲解了关联查询,包括笛卡尔乘积问题、内连接、外连接以及自连接的应用。
摘要由CSDN通过智能技术生成

1.多表设计

1.为什么需要多表关联:数据冗余,将其拆分。
2.数据库的设计范式
(1)为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就成为范式。范式是符合某一种设计要求的总结。
(2)目前关系型数据库有5种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)、第五范式(5NF,又称完美范式)。
(3)满足最低要求的范式是第一范式(1NF),在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以此类推。一般来说,数据库只需要满足第三范式(3NF)就行了。
(4)数据库设计范式:

  1. 第一范式:确保每列保持原子性(列不可再分割),第一范式是最基本的范式,如果数据库表中的所有字段值都是不可分割的原子值,就说明该数据库表满足了第一范式。
  2. 第二范式:第二范式就是要有主键,要求其它字段都依赖于主键。没有主键就没有唯一性,没有唯一性在集合中就定位不到这行记录,所以要有主键。其它字段如果不依赖主键,就找不到他们,更重要的是,其他字段组成的这行记录和主键表示的是同一个东西,而主键是唯一的,他们只需要依赖于主键,也就成了唯一的。
  3. 第三范式:第三范式就是要消除传递依赖,方便理解,可以看做是“消除冗余”。

3.外键
(1)引入另外一个数据表的某条记录。
(2)外键列类型与主键列类型保持一致。
(3)数据表之间的关联/引用关系是依靠具体的主键(primary key)和外键(foreign key)建立起来的。
(4)添加外键约束
创建表时添加外键约束:
CONSTRAINT 约束名 FOREINGNKEY(外键列) REFERENCES 关联表(主键);

CREATE TABLE buy(
	buyer_id INT,
	com_id INT,
	CONSTRAINT buyer_id_fk FOREIGN KEY(buyer_id) REFERENCES buyer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值