Mysql之表与表之间关系与多表查询

表与表之间的关系

概念

*一对一关系

1、A表的每一行对应B表的每一行,同理B表的每一行也对应A表的每一行
2、由于该模型下两张表可以合成一张表,所以不需要过多关注

*一对多关系

1、A表的每一行对应B表的多行,反之不可以,一对多一般描述的是包含关系
2、一对多关系是数据分析遇到最多的关系之一

*多对多关系

1、A表的每一行对应B表的多行,反之B表的每一行都对应A的多行
2、多对多关系是数据分析最复杂的关系,这种关系表必须有中间表

部门表和员工表:
演员表 和 角色表:

表关系实现

 一对多关系

######################表关系-一对多关系##############
# 1、创建分类表 -主表
drop table if exists category;
CREATE TABLE if not exists category(
    cid   VARCHAR(32) PRIMARY KEY,
    cname VARCHAR(100)
);

# 2、创建商品表 -从表

-- 创建外键约束-方式1-在建表时直接指定
drop  table if exists product;
CREATE TABLE if not exists product
(
    pid         INT PRIMARY KEY,
    pname       VARCHAR(20),
    price       DOUBLE,
    category_id VARCHAR(32),
    constraint fk_tb_product2 foreign key (category_id) references category(cid)
);

# 创建外键约束-方式2-在建表之后指定
-- 大小写转换 : Ctrl + Shift  + u
/*
 alter table 从表 add constraint 外键的名字
    foreign key(从表外键列)  references 主表(主表主键列);
 */
al

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习的小su

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值