MySql二(多表关系和操作)

Mysql之表与表之间关系与多表查询 INSERT INTO bigdata_db.product(pid,pname,price,category_id) VALUES(6,'花花公子',440,'c002');INSERT INTO bigdata_db.product(pid,pname,price,category_id) VALUES(8,'海澜之家',1,'c002');#笛卡尔集,将两张表进行相乘(表的行数=A表行数 * B表行数)insert into category values ('c002','服装'); 阅读详情

1、多表关系

多表关系

1、一对多/多对一: 在多的一方加入另一方的外键

这里写图片描述

2、多对多: 使用中间表,分别引用两方的ID
如下图:学生s1有两个老师,而老师t1,有两个学生t1,t2对应关系如下

这里写图片描述
3、一对一:

  1. 主键同步 两个表中有关系的记录id一致
  2. 在一方加入 另一方的外键
  3. 在另一方加入外键

    这里写图片描述

2、外键和外键完事性约束

外键能够使多表关联,起到联合查询使用。外键的完事性关系到查询数据的完整性。外键的修改和删除可能对别的表产生影响,因此要对外键进行约束。比如当我们删除第二个表中计算机的时候,第一个表中有对它的引用,造成表的不完整。
下面两张表
这里写图片描述 这里写图片描述
1、增加一个外键约束

ALTER TABLE 表名 ADD CONSTRAINT 外键标识 FOREIGN KEY (表中字段) REFERENCES 表名(表中字段);

ALTER TABLE `t_student` ADD CONSTRAINT `fk_sclass` FOREIGN KEY (`sclass`) REFERENCES `t_teacher`(`sclass`); 

2、删除一个外键约束
ALTER TABLE 库名.表名 DROP FOREIGN KEY 外键名;

ALTER TABLE `student`.`t_student` DROP FOREIGN KEY `fk_sclass`; 

3、多表查询

1、笛卡尔积:把两表的列合并,很多无效数据。

SELECT * FROM t_student,t_teacher;

查询结果
这里写图片描述

2、内连接

这里写图片描述

select * from t_student,t_teacher  where t_student.sclass = t_teacher.sclass;

3、外连接

左外链接:左外连接就是在左边信息显示全的情况下与右边的表链接。能连接上就显示右边的信息,连接不上显示左这表的信息。

INSERT INTO t_student(sid,sname,sage,sclass)  VALUES('0011','s11',20,NULL) ;

假如在t_student表中有一个学生专业的空。那么如果有内链接,这个同学信息应该查询不到。因此有了,左外连接和右外连接
查询结果
这里写图片描述

右外连接与左外连接相似

4、子查询

当一个查询是另一个查询的条件时,称之为子查询。

comparison 一个表达式及一个比较运算符,将表达式与子查询的结果作比较。
expression 用以搜寻子查询结果集的表达式。
sqlstatement SELECT 语句,遵从与其他 SELECT 语句相同的格式及规则。它必须括在括号之中。

示例1 :全部单价比任何以 25% 或更高的折扣卖出的产品高的产品:

SELECT * FROM Products
WHERE UnitPrice > ANY
(SELECT UnitPrice FROM OrderDetails
WHERE Discount >= .25);

示例2、查出年龄大于s2的学生

SELECT * FROM t_student WHERE sage>= (SELECT sage FROM t_student WHERE sname='s2');

查询结果:
这里写图片描述

【Mysql数据库 第5章】MySQL的多表操作 MySQL 外键约束( FOREIGN KEY )是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表) * 外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。比如,一个水果摊,只有苹果、桃子、李子、西瓜等 4 种水果,那么,你来到水果摊要买水果就只能选择苹果、桃子、李子和西瓜,其它的水果都是不能购买的。 阅读详情

相关推荐

2025.06.24【R语言】|clusterProfiler安装与常见报错FAQ全解

本文介绍了clusterProfiler工具的安装方法及常见报错解决方案。安装可通过Bioconductor或Conda完成,需注意安装配套注释包。文中列举了10种常见报错,包括依赖包缺失、ID类型不匹配、物种不支持等问题,并给出具体解决方法。最后总结了GO/KEGG富集分析的标准流程,包括ID转换、富集分析和可视化步骤,为生物信息学分析提供实用参考。建议使用R≥4.2版本,并确保正确调用BiocManager进行安装。

5994

数据库表关系详解(一对多、一对一、多对多)

引言 在数据库中,单表的操作是最简单的,但是在实际业务中最少也有十几张表,并且表与表之间常常相互间联系; 一对多、一对一、多对多是表与表之间的常见的关系,初学时在多表连接时会纠结如何写对应的Sql语句,下面就分享一些小技巧; 一对多 一对多是最基础的表间关系,意思是一张表A中的一条记录可以对应另一张表B中的多条记录,另一张表B中的一条记录只能对应一张表A中的一条记录 举个一对多的例子: 有两张表, 表A:学生表student(子表) id name class_id(外键非空:班级id) 100

YXXXYX的博客 7万+

Keil MDK编译错误#541解决方案与ARM_Compiler包解析

在嵌入式开发中,编译器工具链的依赖管理是确保项目顺利构建的关键环节。以Keil MDK为例,其软件包依赖机制通过组件化设计实现功能解耦,其中ARM_Compiler包专门处理系统IO重定向等编译器扩展功能。这种架构既提升了模块复用性,也带来了版本兼容性挑战。当出现'Error #541: component missing'报错时,通常是由于中间件组件(如文件系统)在新版本中显式依赖了ARM_Compiler包。开发者需要通过Pack Installer安装该包,并在Run-Time Environment

weixin_32129187的博客 365

mysql一对多需要建立外键约束么_数据库设计中一对一、多对一、多对多关系依据外键的实现条件及方法...

作者:二歪求知iSk2y链接:https://www.jianshu.com/p/2b27c7ba0653来源:简书下面以departments和staff_info表为例(为staff_info添加指向departments的外键)一个表的字段作为外键的条件:列值必须非空且唯一测试例子如下:mysql> create table departments (dep_id int(4),dep...

weixin_33193177的博客 1687

MAC 青花瓷(Charles)爪机HTTPS 抓包

前段时间跟之前的产品小姐姐聊天,小姐姐说开发让她抓包帮忙看下数据,然而自己又不会,那就来写一篇简易版的教程 冲冲冲! 手上只有mac电脑跟iPhone手机,只做苹果手机的抓包,android7.0以上版本也没法通过正常的抓htts的包,让安卓开发装个后门吧,不是安卓开发并不知道是啥,连上USB之后访问chrome://inspect/#devices就能很简单的抓包 一、准备工具等 青花瓷...

Promise的博客 1613

C#实现串口通讯程序

1、自动获取本地串口。2、根据传入串口基本属性参数打开串口。3、串口数据的发送接收功能(ASCII和HEX格式)。4、ASCII和HEX相互转换。csharp体验AI代码助手代码解读复制代码[Category("UserProperty")] [Description("轮廓半径")] public int Radius { get => radius;

2401_89221445的博客 1765

mysql一对多究竟用还是不用外键_不使用外键,尝试多对多查询

我的上两篇博客总结了一下不使用外键的优缺点但是我还没试过,今天尝试了一下,用难一点的多对多关系实验一:工具:springbootmybatismysql二:材料:五张表:user--用户表role--角色表permission--权限表user-role表permission-role表其中,user-role表和permission-role表是意义上的中间表,就是没有外键的,其他三张是基本表s...

weixin_31597759的博客 2002

Java高频面试基础问题与知识点整理

Java高频面试知识点总结:覆盖高频基础知识考点+高频集合知识点深入分析+高频多线程与并发编程面试题汇总+其他扩展考察等。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 172万+

Mysql-外键关联-外键与表的关系(一对多, 一对一,多对多)

多表的设计 一对多 在多方表中,创建一个新的字段,作为当前表的外键,指向一方表的主键 注意点: 一对多, 外键设置在多方 一张表关联多张表,通过 foreign key (字段名) references 关联的表名(字段) 模拟一对多表 一对多表的结构设计,两张表 主表(一方) 从表(多方) 建表原则,在多方表中添加字段,把该字段作为外键指向一方表的主键 一个部门有许多员工,所以外键设置在多方...

weixin_44737646的博客 1万+

热红外图像小目标检测算法综述

热红外小目标检测算法综述,着重介绍基于深度学习的小目标检测算法

Littro Innovations 4244

V4L2教程(1):Ubuntu V4L2开发环境搭建与设备探索

欢迎来到V4L2学习指南的第一篇!本文将带你从零开始,在Ubuntu系统上搭建完整的V4L2视频采集开发环境。无论你是想开发视频监控、视频会议还是机器视觉应用,掌握V4L2都是Linux视频开发的必经之路。 **本节学习目标**: - 理解V4L2的基本概念和架构 - 搭建Ubuntu下的V4L2开发环境 - 掌握v4l2-ctl等调试工具的使用 - 学会检测和配置USB摄像头设备

琅嬛福地 417

【MySQL数据库之多表关联关系(一对一、一对多、多对多)】

文章目录多表关联关系的实现多表关联关系的分类一对多多对多一对一 多表关联关系的实现 外键是一列或一组列,用于强制两个表中的数据之间的链接。 在外键引用中,第一个表的主键列(或多个列)由第二个表的列(或列)引用。 第二个表的列(或列)成为外键。 在创建或更改表时,可以使用FOREIGN KEY约束创建外键。 多表关联关系的分类 一对多 一对多 1.以员工表与部门表为例 先站在员工表的角度 问:一个员工能否对应多个部门 答:不可以 再站在部门表的角度 问:一个部门能否对应多个员工 答:可以 结论:换位思考之后得

Ban_a的博客 1万+

73、结合无人机进行rk3588oak-lite跟踪目标物体进行识别、跟踪

搭建仿真转换模型环境,主要python版本和我下载的rknn2的版本。截取shape节点,输出模型。so库也要对应转模型的whl。其中安装的whl版本。

sxj731533730 1623

初识MySQL(二)查询语句, 约束,多表之间的关系,范式, 数据库的备份和还原

初识MySQL(二)查询语句, 约束,多表之间的关系,范式, 数据库的备份和还原一. DQL:查询语句1. 排序查询2. 聚合函数3. 分组查询4. 分页查询二. 约束1. 概念2. 分类3. 非空约束4. 唯一约束5. 主键约束6. 外键约束三. 多表之间的关系1. 分类2. 实现关系四. 范式概念:1. 第一范式(1NF)2. 第二范式(2NF)几个补充概念3. 第三范式(3NF)五. 数据库...

来日浅谈的博客 850

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

MySQL数据库——多表操作

MySQL数据库多表关系、外键约束、多表联合查询、外连接查询、子查询、自查询

不能再留遗憾了的博客 4820

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

MySQL 多表查询

此为MySQL专栏文章之一,讲解MySQL多表查询。多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了外键,也可能没有建立外键。

Java 技术专栏,从入门到精通,熟悉企业级开发 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【MySQL】不就是多表查询

嗨!小伙伴们大家好呀,忙碌的一周就要开始!在此之前我们学习的MySQL数据库的各种操作都是在一张表之中,今天我们学习要对多张表进行相关操作,相比较于单一的表来说,多张表操作相对复杂一些,我相信只要认真学习多表查询也不再话下!项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种:一对一(多对一)一对多多对多概述: 指从多张表中查询数据,多表查询就是要消除笛卡尔积。

super大雄的博客 7499

【MySQL基础】MySQL多表操作详解

MySQL中的多表操作详细讲解,一文让你掌握MySQL多表操作中的三种多表关系,五种多表查询,和四种子查询以及四种子查询关键字的操作和使用。

小杨的博客 2857

MySQL—多表查询—多表关系介绍

这篇博客的主要内容讲到了MySQL中的多表查询中的多表关系。里面详细的介绍了什么是多表关系。以及讲到了多表关系中:一对多、多对多和一对一的案例以及实操......

岁岁岁平安的博客 1603

MySQL多表操作

多表操作的基本语法和详细的练习,有问题评论区交流,共勉!!!

2401_87332612的博客 1416

MySQL-----多表操作

实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系,接下来我们将在单表的基础上,一起学习多表方面的知识。

没技术的博客 3045

MySQL-多表关系、多表查询

MySQL多表查询、一对多(多对一)、一对一、多对多、连接查询、内连接、外连接、左外连接、右外连接、子查询

zeijiershuai的博客 1124

MySQL多表关系详解

MySQL支持三种多表关系:一对一(共享主键或唯一外键实现)、一对多(在"多"方添加外键)和多对多(通过联结表实现)。合理设计表关系是构建高效数据库的关键,常见场景包括用户与资料、部门与员工、学生与课程等关联。通过JOIN操作(如INNER JOIN、LEFT JOIN)可以查询关联数据,满足不同业务需求。

2301_80215285的博客 1222

MySQL的多表操作

MySQL的多表操作一、多表关系1、一对一关系2、一对多/多对一关系3、多对多关系二、外键约束1、外键约束特点2、一对多关系中的外键约束1、创建外键约束1、创建表时设置外键约束2、修改表时设置外键约束2、外键约束下的数据操作1、数据插入2、数据删除3、删除外键约束3、多对多关系中的外键约束1、创建外键约束2、外键约束下的数据操作1、数据插入4、数据删除三、多表联合查询1、数据准备2、交叉连接查询3、内连接查询1、 隐式内连接2、显示内连接4、外连接查询1、 左外连接2、 右外连接3、 满外连接四、子查询1、

m0_48375854的博客 2094

MySQL多表关系与多表查询

1.理解数据为什么要拆表存储2.明白多表有几种数据关系3.掌握表关系限制的语法并实现4.掌握多表查询语法和练习。

m0_72047169的博客 1020
上一篇: MySql(一入门)
下一篇: JDBC
android_xiaogang
博客等级 码龄12年 89粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值