MySQL的多表查询-多表关系与相关练习题

1. 多表关系

MySQL多表之间的关系可以概括位:一对一、一对多或多对一、多对多。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.1 一对多的外键约束

1.1.1 的创建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.1.2 外键约束的插入、删除操作

插入:主表随便插入符合格式的数据,从表需要依赖主表的主键列。
删除:主表的数据被从表依赖时,主表和从表都有的主键,主表不能删除相关主键,否则可以删除;从表的数据可以随便删除。

在这里插入图片描述
在这里插入图片描述

1.1.3 删除外键约束键

在这里插入图片描述

1.2 多对多的外键约束

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3 多表查询

在这里插入图片描述

1.3.1 交叉链接查询

在这里插入图片描述
笛卡尔积的内容来源:
在这里插入图片描述
在这里插入图片描述

1.3.2 内连接查询

在这里插入图片描述

1.3.3 外连接查询

在这里插入图片描述

1.3.4 多表联合查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3.5 自关联查询

在这里插入图片描述

2. 案例

创建表

-- 创建test1数据库
CREATE DATABASE test1;
-- 选择使用test1数据库
USE test1
-- 创建部门表
CREATE TABLE dept(
deptno INT PRIMARY KEY, -- 部门编号
dname VARCHAR(20)
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我明白了。你的问题是关于MySQL数据库练习题中的商品库和商店关系的。具体来说,你想知道如何在MySQL数据库中建立商品和商店之间的关系。 首先,我们需要创建两个,一个用于存储商品信息,另一个用于存储商店信息。下面是创建这两个MySQL代码: ``` CREATE TABLE products ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, price DECIMAL(10,2) NOT NULL, PRIMARY KEY (id) ); CREATE TABLE stores ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, location VARCHAR(50) NOT NULL, PRIMARY KEY (id) ); ``` 以上代码中,products用于存储所有商品的信息,包括商品的名称和价格。stores用于存储所有商店的信息,包括商店的名称和位置。 接下来,我们需要在这两个之间建立关系。在MySQL中,可以使用外键来实现之间的关系。下面是在products中添加一个外键的MySQL代码: ``` ALTER TABLE products ADD COLUMN store_id INT NOT NULL, ADD CONSTRAINT fk_store FOREIGN KEY (store_id) REFERENCES stores(id); ``` 以上代码中,我们在products中添加了一个名为store_id的列,并将其设置为不为空。然后,我们使用FOREIGN KEY关键字将store_id列设置为stores的id列的外键,从而建立了products和stores之间的关系。 现在,我们可以使用这个关系查询某个商店中的所有商品。下面是一个例子: ``` SELECT products.name, products.price FROM products INNER JOIN stores ON products.store_id = stores.id WHERE stores.name = 'ABC Store'; ``` 以上代码中,我们使用INNER JOIN关键字将products和stores连接起来,并使用WHERE子句筛选出商店名称为“ABC Store”的所有商品。查询结果将返回商品的名称和价格。 希望这个回答能够帮助你解决问题。如果你还有任何疑问,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值