Mysql基本语句操作(二)---一对多的实现和关联语句的用法

本文主要介绍MySQL中如何实现一对多的关系,并详细讲解关联查询的使用,通过实例展示WHERE子句如何筛选父表中没有对应子表记录的条件。
摘要由CSDN通过智能技术生成
二、一对多
※案例的需求: 一个人可以拥有多辆汽车,要求查询出某人所拥有的所有汽车


数据库设计
方案一(差的设计)
编号  姓名   性别   年龄   汽车编号    车型   排量   价格
P001  Jack   男     25     C001      BMW    12L    80w
P001  Jack   男     25     C002      Benz   12L    100w
P001  Jack   男     25     C003      Benz   12L    100w
P002  Tom    男     26     C004      BMW    12L    80w
P002  Tom    男     26     C005      Benz   10L    60w
P003  Rose   女     24     C006      Adio   10L    70w

方案二(好的设计)
1)把"一方"单独建表
编号  姓名   性别   年龄 ...
P001  Jack   男     25  ...
P002  Tom    男     26  ...
P003  Rose   女     24  ...
P004  Mike   男     24  ...

2)把"多方"也建个表(要依赖"一方": 通过外键(补一个字段) )
外键:位于依赖的那个表,它是被依赖那个表是的主键

汽车编号    车型   排量   价格   车主
C001      BMW    12L    80w    P001
C002      Benz   12L    100w   P001
C003      Benz   12L    100w   P001
C004      BMW    12L    80w    P002
C005      Benz   10L    60w    P002
C006      Adio   10L    70w    P003
C007      QQ     8L     6.5w   NULL

3)SQL代码实现
create table person2(
  id varchar(32) primary key,
  name varchar(30),
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值