mysql中执行计划id为空的示例分析

68次阅读
没有评论

共计 1562 个字符,预计需要花费 4 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 mysql 中执行计划 id 为空的示例分析,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

简介

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。例如,我有两个表,表 1 记录的是公司男员工的数据,包括年龄、姓名、职位。表 2 记录的是公司女员工的数据,包括姓名、家庭住址、手机号等字段。这时,我们想要根据一定条件,查询两个表的姓名的集合。就会用到 UNION 关键字。

UNION 可以查询多个字段,不过 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

语法

 SELECT column_name(s) FROM table_name1
 UNION
 SELECT column_name(s) FROM table_name2

UNION 操作符会对结果集进行去重。如果允许重复值,可以用 UNION ALL 两者除去重功能外,没有其他区别。

实例

这里的实例,就以简介里的介绍为需求,建立两个表格,并且进行相应的操作。

首先,建立 user1,user2 两个表格,建表语句如下:

--  建表语句
CREATE TABLE user1 (
 id INT,
 age INT,
 NAME VARCHAR (5),
 position VARCHAR (8)
CREATE TABLE user2 (
 id INT,
 name VARCHAR(5),
 address VARCHAR(50),
 phone_number VARCHAR(20)
)

其次,插入对应数据,sql 如下:

--  数据插入语句
INSERT INTO user1
VALUES
 (
 1,
 20,
  张三 ,
  技术主管 
 );
INSERT INTO user1
VALUES
 (
 2,
 20,
  李四 ,
  产品主管 
 );
INSERT INTO user1
VALUES
 (
 3,
 20,
  王五 ,
  运营主管 
 );
INSERT INTO user1
VALUES
 (
 4,
 20,
  赵六 ,
  后勤主管 
 ) INSERT INTO user2 (
 id,
 NAME,
 address,
 phone_number
 )
VALUES
 (
 1,
  珍珍 ,
  北京 ,
  155332211 
 );
INSERT INTO user2 (
 id,
 NAME,
 address,
 phone_number
VALUES
 (
 2,
  莲莲 ,
  上海 ,
  155332211 
 );
INSERT INTO user2 (
 id,
 NAME,
 address,
 phone_number
VALUES
 (
 3,
  爱爱 ,
  深圳 ,
  155332211 
 );

最后,运行 UNION 语句,进行查询

 -- UNION  语句
 SELECT NAME FROM user1
 UNION
 SELECT name FROM user2

代码执行后,得到结果如下:

这里的结果集中的列名为 UNION 语句的第一个 select 语句的列名(user1 为 NAME,user2 为 name)。

explain 的时候,id 为 null

在执行 UNION 的执行计划的时候,最后一个合并结果集的操作的执行 id 为 null。而且,第一个执行的 select_type 为简单查询,第二个及以后的查询为 UNION,最后合并时的 select_type 为 UNION RESULT。

执行计划代码如下:

EXPLAIN SELECT NAME FROM user1
UNION
SELECT name FROM user2

结果如下:

 

关于“mysql 中执行计划 id 为空的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计1562字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)