版权声明
- 本文原创作者:清风不渡
- 博客地址: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;
执行结果如下,可以发现重复的数据没有被过滤掉: