首页
学习
活动
专区
圈层
工具
发布

【MySQL】联合查询

一、什么是联合查询 1.概念 联合查询是一种将多个select语句的结果合并成一个结果集。允许垂直合并来自不同查询的数据,前提是这些查询具有相同数量的列且对应列的数据类型兼容。...2.语法要求 列数一致:参与联合查询的每个select语句,其选择列表中的表达式数量必须相同。 数据类型兼容:对应位置的列数据类型要相同或者可自动转为相同类型。...外连接分为左外连接,右外连接和全外连接。MySQL不支持全外连接。这里就不写全外连接了。 2.分类: 左外连接 1.定义: 左外连接:返回左表中的所有记录和右表中匹配的记录。...概念 全外连接:结果左外连接和右外连接的特点,返回左右表中的所有记录。...有的mysql不支持,这里我就不多写啦。 自连接 1.概念 自连接:表与自身进行连接的操作。在查询的时候可以使用where条件对结果进行过滤,或者进行行与行之间的比较。

77410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql联合索引详解

    上一篇文章:mysql数据库索引优化 比较简单的是单列索引(b+tree)。遇到多条件查询时,不可避免会使用到多列索引。联合索引又叫复合索引。...b+tree结构如下: 每一个磁盘块在mysql中是一个页,页大小是固定的,mysql innodb的默认的页大小是16k,每个索引会分配在页上的数量是由字段的大小决定。...以下通过例子分析索引的使用情况,以便于更好的理解联合索引的查询方式和使用范围。 一、多列索引在and查询中应用 select * from test where a=? and b=? and c=?...;经过mysql的查询分析器的优化,索引覆盖a和b。 select * from test where a=?;索引覆盖a。 select * from test where b=? and c=?...四,总结 联合索引的使用在写where条件的顺序无关,mysql查询分析会进行优化而使用索引。但是减轻查询分析器的压力,最好和索引的从左到右的顺序一致。

    10.3K90

    Mysql数据库--聚合查询、分组查询、联合查询(不同的连接方式)

    = ‘张三’ group by role having avg(salary) < 20000; 1.4联合查询之笛卡尔积 想要知道这个联合查询,我们时候选要来学习一下这个笛卡尔积 下面的这个是两张表:...我们在每一行数据代表的都是某一个同学的某一门课程的实际分数; 练习案例:查询许仙同学的成绩 我们首先要知道需要合并那两个表,一个就是我们学生表(因为是许仙同学),一个就是分数表(因为要找的是成绩) 我们的这个联合查询也是很简单的...,右外连接介绍join on 上面介绍的这个内容都是属于内连接,实际上我们还有外连接等连接方式,其中这个外连接里面还分为这个左外连接和右外连接; 在下面的这个表里面,如果我们的右边的这个表里面的这个4换成...3,两个表里面的这个id是对应的,这个时候无论我们是使用这个内连接,还是外连接,其实这个结果都是一样的,但是我们为什么要了解这个外连接呢,就是如果这个是4,两个表里面的这个id不是完全对应的,这个时候需要我们的外连接方式...,这个时候左外连接就是把左边的这个表里面的特有内容添加上去(添加到我们的内连接的这个结果里面,因为我们的内连接是显示的公共的属性内容,左外连接和右外链接都是在这个公共的上面去添加内容的),这个时候右边的这个表里面没有对应内容

    2.7K10

    MySQL多表联合查询

    1、多表联合查询 1.1 什么是多表联合查询 多表联合查询就是同时查询两个或两个以上的表。 在 MySQL 中,多表联合查询主要有交叉连接、内连接、外连接、分组查询与子查询等5种。...因此,表的数量较多时,交叉连接会非常非常慢。一般情况下不建议使用交叉连接。 建议 在 MySQL 中,多表查询一般使用内连接和外连接,它们的效率要高于交叉连接。...例 1:在 tb_students_info 表和 tb_course 表之间,使用内连接查询学生姓名和相对应的课程名称 mysql> select s.name,c.course_name from...外连接可以分为左外连接和右外连接两种。 1.4.1 左连接 左外连接又称为左连接,使用 LEFT OUTER JOIN 关键字连接两个表,并使用 ON 子句来设置连接条件。...右外连接又称为右连接,右连接是左连接的反向连接。

    12K50

    【MySQL】MySQL 的 SSL 连接以及连接信息查看

    MySQL 的 SSL 连接以及连接信息查看 在上篇文章中,我们学习过 MySQL 的两种连接方式,回忆一下,使用 -h 会走 TCP 连接,不使用 -h 可以使用另两种方式来走 UnixSocket...我们就接着这个话题再聊点别的,首先要纠正一下之前讲的,-h 不一定全是走 TCP 连接。然后我们顺着这个话题,再看一下 MySQL 中如何指定使用安全连接的问题。...再谈连接方式 上回我们已经讲过有两种连接方式,在讲问题之前,我们先了解一个 MySQL 命令工具,它就是 \s 命令(全称是 status ,你也可以使用 \status 或者 status; 来查看)...我们可以认为,在 MySQL 的内部,对这个特殊的名称做了特别的判断,如果连接的是 localhost ,就认为这个连接客户端和 MySQL 服务器是在同一台主机的,这时就会直接以 UnixSocket...你可以自己再尝试下使用默认的开启 SSL 连接的方式去连接远程 MySQL 服务器,看看还能不能抓到我们执行的 SQL 语句。

    4.2K10
    领券