【Mysql】mysql学习之旅05-多表操作

多表联合查询 隐式内连接(SOL92标准):select * from A,B where 条件; 显示内连接(SOL99标准):select * from A [inner] join B on 条件; 阅读详情

mysql学习之旅05-多表操作

1. 创建多表

常见关系:

一对一:一夫一妻
一对多:用户和订单,分类和商品
多对多:订单和商品,老师和学生

E-R图可以描述实体与实体之间的关系

矩形表示实体
椭圆表示属性
菱形表示关系
推荐在PowerDesigner软件中使用

一对多:

在开发中,我们将一方称之为主或一表,多方称之为从表或多表,
为了表示一对多的关系,一般会在从表中加一个字段,字段名称自定义(建议:主表名称_id)
为保证数据的有效性和一致性,在多表添加外键约束

多对多:

在开发中,我们一般引入一张中间表,在中间表中存放两张表的主键,
一般还会把这两个主键设置成中间表的联合主键,将多对多转换成两个一对多,
为了保证数据的有效性和一致性,在中间表添加两个外键约束
2. 多表查询

内连接([inner] join):查询两个表公共的部分:

select * from 表1 as t1,表2 as t2 where t1.主键=t2.外键 and [条件];

select * from 表1 as t1 [inner] join 表2 as t2 on t1.主键=t2.外键 and [条件];

外连接

  1. 左外连接(left [outer] join):以左表为主,右表为从,右表中 没有对应数据为null
SELECT * FROM 主表t1 LEFT JOIN 从表t2 ON t1.主键=t2.外键 and [条件];
  1. 右外连接(right join):以右表为主,左表为从,左表中没有对应数据为null
select * from 从表t1 right  join 主表t2 on t1.主键=t2.外键 and [条件];
  1. 全连接(full join):没有主次关系,显示全部内容,mysql不支持
select * from 表t1 full join 表t2 on t1.主键=t2.外键 and [条件];
  1. 交叉表连接(cross join): 笛卡尔积,两表数据的乘法
select * from 表1 cross join 表2;
  1. 关联连接(union):多个表查询结果的关联,对查询结果进行堆积,列数要相同,数据类型可以转换
select 列1,列2 from 表1 union select 列1,列2 from 表2;
3. 子查询

概念:

sql语句中嵌套sql语句,不仅仅是查询,可以出现在sql语句的任何地方。
可以操作的sql语句有:insert update delete select
子查询可以用在单表操作,也可以用在多表操作中。

形式:

  1. select后面:子查询的结果必须是一行一列
select (select count(*) from employee) as count1, 
(select count(*) from salary) as count2;
  1. from 后面:多行多列,必须有别名,是一个虚表/临时表,作为后续的过滤条件。
select * from (select id, name, sex, age from employee) as t1;
  1. where后面:只能有一个结果,除非使用any和all
select * from employee where id >= (select id from employee where age = 38);
  1. in后面
select * from employee where id in (select distinct eid from salary);
  1. exists后面:只要只查询有一条以上的记录(与内容无关),就会执行父查询
select * from employee as t1 where exists(select distinct eid from salary as t2 where t1.id = t2.eid);
  1. insert值里面
  2. update set/where后面
  3. delete from/where后面

特别注意:

update/delete和子查询不能使用一张表,需要将子查询结果创建为临时表,再嵌套查询

MySQL与Python:连接与操作数据库的魔法之旅 MySQL是一个广泛使用的开源关系型数据库管理系统,以其高性能、可靠性和易用性著称。它是存储和检索数据的理想选择。Python是一种易于学习和使用的强大编程语言,它拥有丰富的库和框架,可以轻松地处理各种任务,包括数据库操作。 阅读详情

相关推荐

安川机器人SOCKET 通讯

命令 功能 参数 示例 返回 SelectJob 选择程序 JobName LineNo SelectJob TEST 0 #SelectJob,Ok StartJob 启动程序 JobName StartJob TEST #StartJob,Ok Pause 暂停当前程序 - Pause #Pause,Ok Continue 继续当前程序 - Continue #Continue,Ok ServoOn 伺服上电 - ServoOn #ServoOn,Ok ServoOf...

记录学习内容 8285

MySQL - 多表查询

多表查询 多表查询的分类 1 连接查询 交叉连接:将一个表中的每一条数据和另一张表的每一条数据无条件连接。(了解) 语法1:select * from 表1 cross join 表2 [cross join 表3]... 语法2:select * from 表1,表2,...; 结果集:笛卡尔积:如果表1有3条数据,表2有5条数据,那么交叉连...

dreamhua927的专栏 1289

FPGA人脸识别检测(先获取人脸图像以及灰度二值化)

由于图片有空洞等缺陷,所以后面要进行中值滤波、腐蚀、膨胀等算法处理,然后再对人脸进行框选,最后显示出来。最终的成像应该是下面这样的。(后面有时间再接着做哈哈哈)5、通过modelsim将操作后的图片数据写入gray_img.txt里面后,用matlab将txt转成图片。1、先用matlab将图片转换成txt数据,代码如下。读取图片的方式按照博客咸鱼里的方式来做,如下。2、FPGA读取txt数据。4、FPGA顶层模块及仿真。3、FPGA灰度二值化。

weixin_46312715的博客 2531

MySQL多表查询

多表查询 内连接:select * from 表1,表2,表3 where 表1列1=表2列2 and 表2列2=表3列3; Select * from 表1 inner join 表2 on 表1列1=表2列2; mysql> select * from stus inner join ary on stus.id=ary.ass_id ; 外左连接:select * from 表1 left join 表2 on 表1列1=表2列2; mysql> select * from stus l

Dreamer 1068

无迹卡尔曼滤波(UKF)推导

提出,使用了一种不同的方法来计算误差协方差矩阵。它不使用(连续时间)黎卡提方程(Riccati Equations,形如。的一类非线性方程)或(离散时间)协方差传播和更新规律。关键的思想是基于一组特殊的样本点来估计误差协方差,这些点被称为。无迹卡尔曼滤波(Unscented Kalman Filter),最初由。点(Sigma Points),这些点直接通过原始非线性模型传播。无迹变换表示有三个特殊样本点的高斯分布,称为。

生活如此美好,致敬每一个热爱“热爱”的人! 1776

wsl2 配置ubuntu 固定ip

wsls ubuntu 设置固定ip

musk1212的博客 2616

MySQL基础--多表查询

从多张表中查询数据,DQL为单表查询笛卡尔积:笛卡尔积是指在数学中,两个集合A和B的所有组合情况(在多表查询时,需要消除无效的笛卡尔积)

bumengbuzhangfu的博客 1221

吊打原版YOLOv8!ASF-YOLO多尺度融合+注意力机制实战解析(遥感/医疗/质检均适用)

ASF-YOLO融合YOLOv8的创新目标检测框架摘要 ASF-YOLO是针对小目标检测优化的先进框架,采用三重特征编码器和尺度序列融合技术增强多尺度特征提取能力。核心创新包括: 三重特征编码器(TPE)融合跨层级信息 尺度序列特征融合(SSFF)模块通过3D卷积处理多尺度信息 通道-位置注意力机制(CPAM)聚焦关键特征区域 Zoom_cat模块实现自适应多尺度特征融合 该框架特别适用于医学影像、遥感检测等小目标密集场景,通过动态特征权重调整显著提升检测精度。关键技术实现包含多尺度特征统一、3D卷积序列处

FJN110的博客 526

MySQL数据库(三)高级数据查询语句

非等值查询语法:select * from 表1,表2 等值查询(1)内联查询语法:select * from 表1,表2 where 表1.字段1 = 表2.字段2... (3)内联查询的第二种写法 inner join on 语法:select * from 表1 inner join 表2 on 条件 (4)外联查询 left join in 或 right join on语法:select * from 表1 left 或 right join 表2 on 条件; (5)union

m0_61562689的博客 5175

微信小程序云开发 - 实现商家转账到零钱(微信企业付款到零钱) V3功能流程及完整实例代码,过微信云开发的云函数实现企业付款到零钱(提供详细示例源码纯云函数实现,证书、密钥、签名等各种常见问题解决方案

企业付款到零钱(微信小程序提现功能,提现到零钱)微信小程序-云函数实现微信企业付款到零钱功能,实现微信商户号中的企业付款到零钱的功能,微信小程序+云开发+商家转账至零钱+微信小程序用户提现,使用云开发环境的云函数实现微信小程序的支付功能,微信小程序实现微信企业付款到零钱功能的流程,V3 V2基于微信云开发的商家转账至零钱,小程序云函数企业付款到零钱功能实现,云开发实现微信商户支付企业付款到零钱功能,不用服务器纯云函数实现,详细示例代码demo教程,API证书错误,转账不到账怎么办,密钥生成有误,转账失败,有

🏆 前端领域优质创作者 1万+

基于Matlab模拟RANS湍流——详细分析与源代码

在模拟过程中,我们首先定义了模拟所需的参数,包括流体的动力黏度和密度,以及边界条件和网格分辨率。接下来,通过求解平均值方程和湍流涨落方程,我们模拟了湍流的演化过程。在本文中,我们将使用Matlab对RANS湍流进行模拟,并提供相应的源代码。RANS湍流模拟的基本思想是将流场的变量分解为平均值和涨落值,并通过求解平均值方程和湍流涨落方程来描述流场的演化。请注意,以上代码仅为示例,实际的RANS湍流模拟可能需要更复杂的算法和模型。接下来,我们将求解RANS方程,包括平均值方程和湍流涨落方程。

ByteKnight的博客 861

小王MySQL学习之旅Day05

学习数据库第五天 一.修改删除表 修改 -- 修改表 ALTER TABLE 旧表名 RENAME AS 新表名 ALTER TABLE teacher RENAME AS teacher1 -- 增加表的字段 ALTER TABLE 表名 ADD 字段名 列属性 ALTER TABLE teacher1 ADD age INT(11) -- 修改表的字段 (重命名 修改约束) -- ALTER TABLE 表名 MODIFY 字段名 列属性 -- 修改约束 -- ALTER TABLE

等我千分就网恋的blog 243

8位2路选择器设计

8位2路选择器设计

好好学习,天天向上 4286

Python筑基之旅-MySQL数据库(一)

MySQL数据库(一)

ygb_1024的博客 4453

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【mysql】MySQL的数据库简单搭建

最近想搞一下用户排名显示的业务,发现mysql的操作忘得差不多的,趁着现在实现用户排名需求,记录下mysql的学习之旅。本篇 默认已经安装好mysql,且已经初始化mysql,并使用mysql账号登录了。若没有,请参考其他博文安装好mysql。mysql不区分大小写,建议关键字用大写(不要学我,我懒我喜欢用小写),取得数据库名、表名和字段中得单词用下划线连接。就这样,一个简单的数据库就搭建好了。

qq_2511276124的博客 5126

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Python筑基之旅专栏(导航)

Python基础知识(已完结)

ygb_1024的博客 2499

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Mysql学习笔记

正式开启 MySQL 零基础学习之旅!第一天主要梳理数据库分类、表关系、数据表约束三分清了关系型数据库和非关系型数据库的区别、特点以及各自适用场景;理解了 MySQL、Oracle、Redis、MongoDB 等主流数据库的定位和用途。无关系、一对一、一对多、多对多,并记住了每种关系的建表原则和关联字段该怎么存放。最后系统学习了数据表的五大约束:主键、唯一、非空、默认、外键,明白了每种约束的作用和实际开发中的使用场景,懂得了用约束来保证数据完整、减少脏数据。第一天主要打牢理论基础,理清数据库底层概念。

m0_63611023的博客 355

【MySQL通关之旅】从山脚到山顶(傲视群雄版)

select * from 表名 where name like ‘%张’MarkdownText-to-HTMLAuthorsJohnLuke。

wyy7293的博客 2230

mysql学习之旅(十二)——Mysql的事务

文章目录Mysql的事务 Mysql的事务

weixin_38377637的博客 303

MySQL常用优化指南,及大表优化思路

MySQL 常用优化指南,及大表优化思路都在这了! [杰哥的IT之旅](javascript:void(0)???? 2020-05-17 点击关注上方“杰哥的IT之旅”, 设为“置顶或星标”,第一时间送达干货。 来源:juejin.im/post/5b7d52afe51d453885030b91 当MySQL单表记录数过大时,增删改查性能都会急剧下降 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表

m0_46426259的博客 183

新手菜鸟的MySQL之旅(一)

前人种树,后人乘凉,大家可以把此帖看作是一个新人的笔记整理,可能会略显粗糙,希望道友海涵,更希望有大佬指导o( ̄▽ ̄)ブ! 一、MySQL体系结构 体系结构图如下: 从上图我们可以看出,mysql由以下几部分组成: Connectors:指的是不同语言中与SQL的交互。 Management Serveices & Utilities:系统管理和控制工具。 Connection Poo...

qq_39978345的博客 263

MySQL见闻录 -- 入门之旅(一)(转载)

在网上翻来覆去找不到一套适合新手自学的书,于是买了课,急急忙忙上完了课,又发现全还给老师了。 这一系列文放在这里,从下载软件开始,记录一条MySQL入门之旅。 新手也可以跟着这条路走,一条道走到黑。 粉丝可见,愿者上钩。 有任何疑问,参考三篇上课笔记,或者私信我。 文章目录 1、我的上课笔记 2、软件下载选择 3、示例数据库 4、DOS界面用户登录方式 5、取消语句 6、数据库操作 7、数据表操作 8、往数据表中插入数据 9、从表中检索数据 sampdb数据库资料 1、我的上课笔记 MySQL数据库从入门到

Solomwn的博客 254

7个高效MySQL Workbench使用技巧:SQL学习必备工具指南

MySQL Workbench是学习SQL和数据库管理的终极工具,这款免费的图形化界面工具让数据库操作变得简单直观。无论你是SQL初学者还是需要提升数据库技能,掌握这些技巧都能让你事半功倍。 ## 🚀 为什么选择MySQL Workbench MySQL Workbench提供了完整的数据库开发环境,从SQL编写到可视化建模,再到服务器管理,一应俱全。对于SQL学习来说,它让抽象的数据库概念

gitblog_00873的博客 819

MySQL的“分页大师”:LIMIT与OFFSET的奇妙之旅

LIMIT和OFFSET是MySQL中非常实用的分页工具,掌握它们的用法,可以让我们的数据查询更加高效和精准。无论是简单的分页显示,还是复杂的数据批量处理,LIMIT和OFFSET都能助你一臂之力。在MySQL的世界里,数据的海洋浩瀚无垠,而LIMIT和OFFSET就像是一对默契的导航员,帮助我们精确地定位和提取所需的数据片段。今天,就让我们一起踏上这段奇妙之旅,深入探讨LIMIT和OFFSET的用法,掌握它们的精髓,让我们的SQL查询更加高效和精准。通过使用子查询,可以减少主查询的复杂度,提升查询性能。

xycxycooo的博客 1300

MySQL零基础到精通:完整学习路径与实战指南

这次我们来看一套完整的 MySQL 零基础入门到精通教程。对于想系统学习数据库、准备后端开发或数据分析岗位的同学来说,MySQL 是必须掌握的技能。这套教程的目标很明确:从零开始,带你走过安装配置、基础语法、核心操作、高级查询到实战应用的全过程,最终达到能够独立设计和管理数据库的水平。 教程的核心特点是全程干货,不绕弯子,直接上手操作。它覆盖了从“什么是数据库”这样的概念,到在 Windows、Mac、Linux 上安装 MySQL 的具体步骤,再到 SQL 语法精讲、数据类型、函数、多表关联等高级主题。更

weixin_33831673的博客 351

【从零开始的Java秃头之旅】05

从零开始的Java秃头之旅之数据库篇 DQL:查询语句 1.排序查询 语法:order by 子句                  order by 排序字段1 排序方式1, 排序字段2 排序方式2… 排序方式: ASC:...

Shuyet的博客 199
上一篇: 【Mysql】mysql学习之旅04-DQL数据查询语句
下一篇: 【Mysql】mysql学习之旅06-事务
JeffHan^_^
博客等级 码龄7年 1万+粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

JeffHan^_^

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

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

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

打赏作者

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

抵扣说明:

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

余额充值