SQL研习录(14)——UNION运算符


版权声明

  • 本文原创作者:清风不渡
  • 博客地址:https://blog.csdn.net/WXKKang

一、测试数据

  为了更好了学习本篇内容,准备两张表(班级一、班级二)及测试数据,其中有一条数据为相同的(s_name为‘小赵’的数据),代码如下:

-- 创建表
CREATE TABLE class_one(
	s_id varchar(50) NOT NULL PRIMARY KEY,
	s_name varchar(50),
	s_gender varchar(50)
)
-- 插入数据
INSERT INTO class_one (s_id,s_name,s_gender) VALUES ('A101','小张','男');
INSERT INTO class_one (s_id,s_name,s_gender) VALUES ('A102','小赵','女');
INSERT INTO class_one (s_id,s_name,s_gender) VALUES ('A103','小马','男');

-- 创建表
CREATE TABLE class_two(
	s_id varchar(50) NOT NULL PRIMARY KEY,
	s_name varchar(50),
	s_gender varchar(50)
)
--插入数据
INSERT INTO class_two (s_id,s_name,s_gender) VALUES ('B101','小杨','男');
INSERT INTO class_two (s_id,s_name,s_gender) VALUES ('A102','小赵','女');
INSERT INTO class_two (s_id,s_name,s_gender) VALUES ('B103','小李','男');

二、UNION运算符

1、基础知识

  UNION运算符用于组合两个或更多SELECT语句的结果集,注意:

  • UNION中的每个SELECT语句必须具有相同的列数
  • 这些列也必须具有相似的数据类型
  • 每个SELECT语句中的列也必须以相同的顺序排列

2、基本语法

  UNION运算符的基本语法如下,这种情况下会将重复的值过滤掉:

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

  如果不需要过滤,则需使用UNION ALL,语法如下:

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

3、示例

  例如,在上面的测试数据中,我们可以这样使用UNION运算符,SQL语句如下:

SELECT s_id,s_name,s_gender FROM class_one
UNION
SELECT s_id,s_name,s_gender FROM class_two;

  执行结果如下,可以发现,班级二中的小赵是被过滤掉了:
在这里插入图片描述
  如果不需要过滤重复值,则可以使用如下代码(UNION ALL):

SELECT s_id,s_name,s_gender FROM class_one
UNION ALL
SELECT s_id,s_name,s_gender FROM class_two;

  执行结果如下,可以发现重复的数据没有被过滤掉:
在这里插入图片描述

发布了81 篇原创文章 · 获赞 36 · 访问量 3352

猜你喜欢

转载自blog.csdn.net/WXKKang/article/details/103806998