Mysql数据库(五) Mysql命令行客户端:内连接查询、左连接查询、右连接查询、自连接查询、子查询

这篇具有很好参考价值的文章主要介绍了Mysql数据库(五) Mysql命令行客户端:内连接查询、左连接查询、右连接查询、自连接查询、子查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、 连接查询 对多个表进行查询

1.0 数据准备

1.1 连接查询

1.2 内连接 INNER JOIN

1.3 左连接 LEFT JOIN

1.4 右连接 RIGHT JOIN

1.5 FULL OUTER JOIN

1.6 自连接查询

1.7 子查询-嵌套在查询中


一、 连接查询 对多个表进行查询

1.0 数据准备

在之前的文章当中,我们在 base_1 当中有了一个 stu 表,记录的是学生的name age height等信息

第一步,我们再创建一个班级表 class 

create table class(id int unsigned primary key not null auto_increment,name varchar(20) not null);

目前的班级表:

 

Mysql数据库(五) Mysql命令行客户端:内连接查询、左连接查询、右连接查询、自连接查询、子查询,# 3 Mysql数据库,数据库,mysql,后端

 

第二步,在班级表中插入数据

 insert into class(name) values('class_1'),('class_2'),('class_3');

第三步,给 stu 表插入个字段classID,表示所在的班级

alter table stu add classID int unsigned;

第四步,给学生分班 使用 where

目前 21 个学生,3个班级,那就 7 人一个班级

Mysql数据库(五) Mysql命令行客户端:内连接查询、左连接查询、右连接查询、自连接查询、子查询,# 3 Mysql数据库,数据库,mysql,后端

mysql> update stu set classID=1 where id in(1,2,3,4,5,6,7);


mysql> update stu set classID=2 where id in(8,9,10,11,12,13,14);


mysql> update stu set classID=3 where id in(15,16,17,18,19,20,21);


 分班结果:

Mysql数据库(五) Mysql命令行客户端:内连接查询、左连接查询、右连接查询、自连接查询、子查询,# 3 Mysql数据库,数据库,mysql,后端

 

ok 到此,前期的数据准备就完成了!

1.1 连接查询

Mysql数据库(五) Mysql命令行客户端:内连接查询、左连接查询、右连接查询、自连接查询、子查询,# 3 Mysql数据库,数据库,mysql,后端


 当中 on  的作用是什么?

在 MySQL 中,ON 是连接查询中的一个关键字,用于指定连接条件,它的作用是将两个或多个表连接起来并返回匹配的数据行。

在连接查询中,使用 ON 关键字可以指定两个表之间的连接条件,这个条件用于匹配两个表中的数据行。

例如:

select * from stu inner join class on stu.classID = class.id;

这个查询语句表示将 stu和 class表连接起来,并且将它们之间的连接条件设置为 stu的 classID 字段等于 class的 id 字段。

Mysql数据库(五) Mysql命令行客户端:内连接查询、左连接查询、右连接查询、自连接查询、子查询,# 3 Mysql数据库,数据库,mysql,后端


 

MySQL连接查询是一种用于连接多个表并获取相关数据的查询方法。

它将两个或多个表中的行结合起来,根据两个表之间的共同列或键(如主键和外键)进行匹配,并返回匹配的结果。

连接查询可以通过 INNER JOIN、LEFT JOIN、RIGHT JOIN 或 FULL OUTER JOIN 的方式执行。

1.2 内连接 INNER JOIN

上面就是内连接的示例!

通俗一点就是:交集!

Mysql数据库(五) Mysql命令行客户端:内连接查询、左连接查询、右连接查询、自连接查询、子查询,# 3 Mysql数据库,数据库,mysql,后端

 

1.3 左连接 LEFT JOIN

左 和 右的区分,看在 join的左边还是右边

LEFT JOIN 返回左表中所有的行右表中匹配的行,如果右表中没有匹配的行,则返回 NULL 值;

Mysql数据库(五) Mysql命令行客户端:内连接查询、左连接查询、右连接查询、自连接查询、子查询,# 3 Mysql数据库,数据库,mysql,后端

 

1.4 右连接 RIGHT JOIN

RIGHT JOIN 返回右表中所有的行左表中匹配的行,如果左表中没有匹配的行,则返回 NULL 值;

Mysql数据库(五) Mysql命令行客户端:内连接查询、左连接查询、右连接查询、自连接查询、子查询,# 3 Mysql数据库,数据库,mysql,后端

 

1.5 FULL OUTER JOIN

FULL OUTER JOIN 返回左表和右表中所有的行,无论它们是否匹配。

 

Mysql数据库(五) Mysql命令行客户端:内连接查询、左连接查询、右连接查询、自连接查询、子查询,# 3 Mysql数据库,数据库,mysql,后端

1.6 自连接查询

MySQL 自连接查询是指在同一张表中进行连接查询

自连接可以用来解决一些需要用到两个相同表的情况

例如

我们有一个员工表,其中记录了员工的姓名、工资和上级姓名。

如果要查询每个员工的上级姓名和上级的工资,就需要使用自连接查询。

可以使用以下 SQL 语句进行自连接查询:

SELECT e.name, e.salary, m.name AS manager_name, m.salary AS manager_salary
FROM employee e
LEFT JOIN employee m ON e.manager_id = m.id;

其中,employee 是表名,em 是表的别名,id 是员工表的主键,manager_id 是上级员工的 ID。

这个查询语句将 employee自己连接了一次,使用 LEFT JOIN 连接,将员工表 e 中的 manager_id 与同一张表中上级员工的 id 进行匹配,然后将上级员工的姓名和工资返回

1.7 子查询-嵌套在查询中

MySQL子查询是一个嵌套在另一个查询中的查询

子查询可以用作 SELECT、FROM、WHERE 子句中的任何一部分来生成结果集合。

一个基本的子查询语法如下:

SELECT column1, column2, column3, ...
FROM table1
WHERE column_nameSELECT column_name FROM table_name WHERE condition  ) ;
 

子查询会首先执行

在上面的语句中,子查询 (SELECT column_name FROM table_name WHERE condition)首先执行,然后它的结果可以用于 WHERE 子句中的过滤条件

另一个常见的子查询使用方法是嵌套在 JOIN 子句中,用于连接表与执行过滤操作。下面是一个示例:

SELECT *
FROM table1
JOIN (SELECT id, column2 FROM table2 WHERE condition) AS t2
ON table1.id = t2.id;

在上面的语句中,子查询 (SELECT id, column2 FROM table2 WHERE condition) 被赋予别名 t2 并与 table1 表连接,结果集将包含两个表中的所有列。

需要注意的是,如果子查询返回大量的结果,可能会导致性能下降

因此,尽量保持子查询返回的结果集较小,以提高查询性能。文章来源地址https://www.toymoban.com/news/detail-544037.html


到了这里,关于Mysql数据库(五) Mysql命令行客户端:内连接查询、左连接查询、右连接查询、自连接查询、子查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 客户端读写HBase数据库的运行原理

    1.HBase的特点 HBase是一个数据库,与RDMS相比,有以下特点: ① 它不支持SQL ② 不支持事务 ③ 没有表关系,不支持JOIN ④ 有列族,列族下可以有上百个列 ⑤ 单元格,即列值,可以存储多个版本的值,每个版本都有对应时间戳 ⑥ 行键按照字典序升序排列 ⑦ 元数据 和 数据 分

    2024年02月10日
    浏览(19)
  • openGauss数据库客户端连接工具之Datastudio安装

    Datastudio使用前电脑必须安装jdk1.8版本或者1.11版本,如未安装可点击以下连接,参考第一步把jdk给安装成功。 点击此处查看jdk安装步骤 Datastudio 下载地址 :软件包|Datastudio 下载完成后,解压安装包,双击exe文件打开软件。 本次使用的Datastudio是3.1.0版本,电脑安装jdk是1.8.0.必

    2023年04月08日
    浏览(22)
  • openGauss学习笔记-102 openGauss 数据库管理-管理数据库安全-客户端接入之查看数据库连接数

    102.1 背景信息 当用户连接数达到上限后,无法建立新的连接。因此,当数据库管理员发现某用户无法连接到数据库时,需要查看是否连接数达到了上限。控制数据库连接的主要以下几种选项。 全局的最大连接数:由运行参数max_connections指定。 某用户的连接数:在创建用户时

    2024年02月07日
    浏览(21)
  • windows下安装达梦数据库~客户端以及常用操作

    一、达梦数据库安装 1. 软件下载 到达梦数据库官网下载DM8开发版本, 下载地址:https://www.dameng.com/list_103.html windows 演示 2. 解压 dm8_20230106_x86_win_64.zip 双击dm8_20230106_x86_win_64.iso 3. 安装 双击setup.exe开始安装,选择简体中文,时区选择中国标准时间 双击setup.exe或者setup.bat 4. 点击

    2024年02月05日
    浏览(40)
  • unity学习(22)——客户端与服务器合力完成注册功能(4)数据库化

    单纯的账号密码这种非频繁读写,实现起来很简单的,游戏的属性信息到时候也许会比较麻烦。 思路:每次加入有新键值TryAdd,如果加入成功,直接重写账号密码文件即可。 C#JsonConvert.DeserializeObject反序列化与JsonConvert.SerializeObject序列化(一)-CSDN博客 在vs中-项目-NuGet,搜索

    2024年02月19日
    浏览(14)
  • Linux安装达梦数据库/DM8(附带客户端工具安装完整版)

    1.1、创建安装与运行的Linux用户 官方也明确提出,为了减少对操作系统的影响, Linux 用户不应该已 root 用户和默认的用户组来安装与运行达梦数据库,应该为 DM 创建一个专用的用户组和系统用户。例如: 1.2、操作系统资源限制检查 这也是官方给出的提醒,在 Linux 系统中,

    2024年02月02日
    浏览(21)
  • openGauss学习笔记-100 openGauss 数据库管理-管理数据库安全-客户端接入之用SSL进行安全的TCP/IP连接

    100.1 背景信息 openGauss支持SSL标准协议(TLS 1.2),SSL协议是安全性更高的协议标准,它们加入了数字签名和数字证书来实现客户端和服务器的双向身份验证,保证了通信双方更加安全的数据传输。 100.2 前提条件 从CA认证中心申请到正式的服务器、客户端的证书和密钥。(假设

    2024年02月05日
    浏览(22)
  • 推荐下阿里巴巴开源的数据库客户端工具Chat2DB

    github地址:https://github.com/alibaba/Chat2DB Chat2DB 是面向开发人员的免费多平台数据库工具。多种数据库一个工具。它用于查询、创建和管理数据库,数据库可以在本地、服务器或云端。支持 MySQL、PostgreSQL、Microsoft SQL Server、Oracle、H2等,未来我们会不断完善其他非关系型数据的支

    2024年02月11日
    浏览(43)
  • 麒麟操作系统Kylin V10 安装达梦数据库DM8 客户端远程调试

    一、环境准备 软件名称 版本 vmware workstation 16.1.2 build-17966106 银河麒麟 Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso 达梦DM8 DMInstall.bin 银河麒麟 server v10 x86架构安装iso镜像。 Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso 二、DM8数据库安装 以下操作可以使用远程工具执行命令 1. 启动网络

    2024年02月04日
    浏览(28)
  • 集成AIGC能力的多数据库客户端工具Chat2DB免费试用

    Chat2DB一款由阿里巴巴开源免费的多数据库客户端工具,支持windows、mac本地安装,也支持服务器端部署,web网页访问。和传统的数据库客户端软件Navicat、DBeaver 相比Chat2DB集成了AIGC的能力,能够将自然语言转换为SQL, 也可以将SQL转换为自然语言,可以给出研发人员SQL的优化建

    2024年02月09日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包