SQL语句——10、集合操作

用于多条select语句合并结果

  • union 并集 去重
  • union all 并集 不去重
  • intersect 交集
  • minus 差集

union

A集合和B集合的合并,但去掉两集合重复的部分,会排序

select deptno,ename from emp where deptno in (20,30)
 union
select deptno,ename from emp where deptno in (20,10);

DEPTNO ENAME
---------- ----------
10 CLARK
10 KING
10 MILLER
20 ADAMS
20 FORD
20 JONES
20 SCOTT
20 SMITH
30 ALLEN
30 BLAKE
30 JAMES
30 MARTIN
30 TURNER
30 WARD

union all

A集合和B集合的合并,不去重,不排序

select deptno,ename from emp where deptno in (20,30)
 union all
select deptno,ename from emp where deptno in (20,10);

DEPTNO ENAME
---------- ----------
20 SMITH
30 ALLEN
30 WARD
20 JONES
30 MARTIN
30 BLAKE
20 SCOTT
30 TURNER
20 ADAMS
30 JAMES
20 FORD
20 SMITH
20 JONES
10 CLARK
20 SCOTT
10 KING
20 ADAMS
20 FORD
10 MILLER

19 rows selected.

intersect

两个集合的交集部分,排序并去重

select deptno,ename from emp where deptno in (20,30)
 intersect
select deptno,ename from emp where deptno in (20,10);

DEPTNO ENAME
---------- ----------
20 ADAMS
20 FORD
20 JONES
20 SCOTT
20 SMITH

minus

取两个集合的差集,A集合中存在,B集合中不存在的数据(取A集合中B集合不存在的数据),去重

select deptno,ename from emp where deptno in (20,30)
 minus
select deptno,ename from emp where deptno in (20,10);

DEPTNO ENAME
---------- ----------
30 ALLEN
30 BLAKE
30 JAMES
30 MARTIN
30 TURNER
30 WARD

6 rows selected.

原文地址:https://www.cnblogs.com/marxist/p/12149267.html

时间: 2024-10-22 21:24:53

SQL语句——10、集合操作的相关文章

SQL语句实例集合

SQL语句实例 表操作     例 1  对于表的教学管理数据库中的表 STUDENTS ,可以定义如下: CREATE  TABLE  STUDENTS (SNO      NUMERIC (6, 0) NOT NULL SNAME    CHAR (8) NOT NULL AGE      NUMERIC(3,0) SEX      CHAR(2) BPLACE  CHAR(20) PRIMARY KEY(SNO)) 例 2  对于表的教学管理数据库中的表 ENROLLS ,可以定义如下:

SQL入门之集合操作

尽管可以在与数据库交互时一次只处理一行数据,但实际上关系数据库通常处理的都是数据的集合.在数学上常用的集合操作为:并(union),交(intersect),差(except).对于集合运算必须满足下面两个要求: 两个数据集合必须具有同样数目的列 连个数据集中对应列的数据类型必须是一样的(或者服务器能够将其中一种类型转换为另一种类型) SQL语言中每个集合操作符包含两种修饰:一个包含重复项,另一个去除了重复项(但不一定去除了所有重复项). 0.union操作符 union和union all操作

LINQ to SQL语句(10)之Insert

1.简单形式 说明:new一个对象,使用InsertOnSubmit方法将其加入到对应的集合中,使用SubmitChanges()提交到数据库. var newCustomer = new Customer { CustomerID = "MCSFT", CompanyName = "Microsoft", ContactName = "John Doe", ContactTitle = "Sales Manager", Ad

sql语句基本查询操作

表结构 SQL> desc empName Type Nullable Default Comments -------- ------------ -------- ------- -------- EMPNO NUMBER(4) ENAME VARCHAR2(10) Y 员工姓名 JOB VARCHAR2(9) Y MGR NUMBER(4) Y HIREDATE DATE Y SAL NUMBER(7,2) Y COMM NUMBER(7,2) Y DEPTNO NUMBER(2) Y 查

PDO进行sql语句预处理和操作结果集详细介绍(二)

<span style="font-size:18px;">一:预处理语句及其绑定参数执行insert try { $pdo=new PDO("mysql:host=localhost;dbname=xsphpdb", "root", "123456"); }catch(PDOException $e){ echo $e->getMessage(); } /* pdo中有两种占位符号 * * ? 参数 ---

详解SQL语句的集合运算

以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 概述 本篇主要是对集合运算中并集.交集.差集运算基础的总结. 集合运算包含四种: 1.并集运算(两种) 2.交集运算 3.差集运算 下面是集合运算的思维导图: 为什么使用集合运算 1.在集合运算中比联接查询和EXISTS/NOT EXISTS更方便. 在阅读下面的章节时,我们可以先把环境准备好,以下的SQL脚本可以帮助大家创建数据库,创建表,插入数据. 一.集合运算 1.集合运算 (1)对输入的两个集合或

数据存储——SQLite数据库存储——SQL语句——DML数据操作语言、内置函数聚合函数

一.连接查询之内连接 select   a.字段,b.字段   from   表1   a,表2   b    where   a.字段=b.字段  And ... 二.DML 数据操作语言 1.增  insert  into values 1-insert  into 表名  values (跟所有字段一一对应的值的列表) 2-insert  into 表名(字段列表)  values (跟字段列表一一对应的值的列表) 3-insert  into 表名  select  对应的字段列表  f

Oracle:SQL语句--对表的操作——修改表名

1 – 修改表名(未验证在有数据,并且互有主外键时,是否可用) 2 3 语法: 4 rename 现表名 to 新表名; 5 6 例: 7 rename T_Student2 to T_Stu;

Python 操作文件模拟SQL语句功能

Python操作文件模拟SQL语句功能 一.需求 当然此表你在文件存储时可以这样表示 1,Alex Li,22,13651054608,IT,2013-04-01 现需要对这个员工信息文件,实现增删改查操作 1. 可进行模糊查询,语法至少支持下面3种: 1. select name,age from staff_table where age > 22 2. select * from staff_table where dept = "IT" 3. select * from