SQL中对于两个不同的表中的属性取差集except运算
SQL中对两个集合取差集运算,使用except关键字,语法格式如下:
SELECT column_name(s) FROM table_name1
EXCEPT
SELECT column_name(s) FROM table_name2
输出为在前一个集合中存在,而不存在于第二个集合的元组。
如果,选取两个元组,并且元组名称不同会出现什么结果呢?
使用之前使用过的示例,构建代码如下:
create table employee
(empname char(6),
numchildren int
) create table dependent
(depname char(6),
age int
) insert into employee values('haohao',2);
insert into employee values('haohao',4);
insert into employee values('fgsd',5);
insert into employee values('hds',7);
insert into employee values('hauuo',9);
insert into employee values('hsao',4);
insert into employee values('hhao',5); insert into dependent values('haohao',2);
insert into dependent values('hdgso',2);
insert into dependent values('hreo',2);
insert into dependent values('hjh',2);
insert into dependent values('haaao',2);
对于两个含有不同属性的工作表,使用except操作:
(select empname,numchildren
from employee)
except
(select depname,age
from dependent)
输出结果如下:
"hds ";7
"hhao ";5
"hsao ";4
"hauuo ";9
"haohao";4
"fgsd ";5
列的名字为“empname”和“numchildren”,是employee的属性。
测试完毕,except操作还是会根据定义,筛选出符合要求的结果。
现在玩点新花样
如果两个表的属性数目不同,会出现什么样的结果呢?
新构建一个数据表,代码如下:
create table newone
(newname char(6),
newnum int,
tel int
)
插入数据:
insert into newone values('haohao',2,6);
insert into newone values('haohao',5,6);
insert into newone values('haoyo',2,6);
insert into newone values('h6ao',2,6);
insert into newone values('hrhao',2,6);
语句出错,显示结果为:
错误: 每一个 EXCEPT 查询必须有相同的字段个数
LINE 4: (select depname,age
^********** Error **********
错误: 每一个 EXCEPT 查询必须有相同的字段个数
SQL state: 42601Character: 57
SQL中对于两个不同的表中的属性取差集except运算的更多相关文章
- sql之将一个表中的数据注入另一个表中
sql之将一个表中的数据注入另一个表中 需求:现有两张表t1,t2,现需要将t2的数据通过XZQHBM相同对应放入t1表中 t1: t2: 思路:left join 语句: select * from ...
- SQL语句的使用,SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据
SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法. 但是 SQL 语言也包含用于更新. ...
- vlookup函数基本使用--如何将两个Excel表中的数据匹配;excel表中vlookup函数使用方法将一表引到另一表
vlookup函数基本使用--如何将两个Excel表中的数据匹配:excel表中vlookup函数使用方法将一表引到另一表 一.将几个学生的籍贯匹配出来‘ 二.使用查找与引用函数 vlookup 三. ...
- 如何使用MySQL一个表中的字段更新另一个表中字段
[本文出自:https://www.jb51.net/article/150323.htm] 这篇文章主要介绍了如何使用MySQL一个表中的字段更新另一个表中字段,需要的朋友可以参考下 1,修改1列 ...
- SqlServer中怎么删除重复的记录(表中没有id)
SqlServer中怎么删除重复的记录(表中没有id) 其实我在别的网址也查到过删除重复的记录,不知道我是我SqlServer2012版本太低还是啥原因 delete from scwhere (c# ...
- 使用spark将内存中的数据写入到hive表中
使用spark将内存中的数据写入到hive表中 hive-site.xml <?xml version="1.0" encoding="UTF-8" st ...
- hbase使用MapReduce操作4(实现将 HDFS 中的数据写入到 HBase 表中)
实现将 HDFS 中的数据写入到 HBase 表中 Runner类 package com.yjsj.hbase_mr2; import com.yjsj.hbase_mr2.ReadFruitFro ...
- Sql server的Merge语句,源表中如果有重复数据会导致执行报错
用过sql server的Merge语句的开发人员都应该很清楚Merge用来做表数据的插入/更新是非常方便的,但是其中有一个问题值得关注,那就是Merge语句中的源表中不能出现重复的数据,我们举例来说 ...
- mysql从一个表中拷贝数据到另一个表中sql语句
这一段在找新的工作,今天面试时,要做一套题,其中遇到这么一句话,从一个表中拷贝所有的数据到另一个表中的sql是什么? 原来我很少用到,也没注意过这个问题,面试后我上网查查,回来自己亲手写了写,测试了下 ...
随机推荐
- [Unity3D]脚本生命周期学习
脚本的生命周期 继承于MonoBehaviour的类对象无需手动实例化,由引擎来决定实例化的时机 Awake:每当脚本被加载的时候调用一次,就是说即使脚本没有被勾选,也会调用一次,主要用来做一些初始化 ...
- FMDB线程安全
//打开数据库 如果没有就创建 NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUse ...
- 清北学堂模拟赛day7 错排问题
/* 考虑一下已经放回m本书的情况,已经有书的格子不要管他,考虑没有书的格子,不考虑错排有(n-m)!种,在逐步考虑有放回原来位置的情况,已经放出去和已经被占好的格子,不用考虑,剩下全都考虑,设t=x ...
- nyoj220 推桌子(贪心算法)
这道题太坑了,from 和to有可能写反,还得正过来: 推桌子 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 The famous ACM (Advanced Co ...
- UIScrollView的缩放原理
当用户在UIScrollView身上使用捏合手势时,UIScrollView会给代理发送一条消息,询问代理究竟要缩放自己内部的哪一个子控件(哪一块内容) 当用户在UIScrollView身上使用捏合手 ...
- bowtie1和bowtie2的比较
1.对于长度大于50bp的reads,bowtie2更精确:而小于50bp的reads,bowtie1更精确更快速 2.bowtie2支持的reads长度没有上限,当然reads长度在50~1000b ...
- CPU的内部架构和工作原理 (转,相当不错)
http://blog.chinaunix.net/uid-23069658-id-3563960.html 一直以来,总以为CPU内部真是如当年学习<计算机组成原理>时书上所介绍的那样, ...
- TypeError: test() got multiple values for keyword argument 'key'
原因是: 1.函数调用的最终形式只会调用两个函数.一个list参数和一个dict参数,格式为call(func, list, dict); 2.如果传入参数中有key参数,那么首先key参数(包括扩展 ...
- postgresql 中replace 函数
select replace(字段名,E'\r','') from 表名 where 字段名 like E'%\r%';: 查看修改后结果,并不真实修改数据库 update 表名 set 字段名=r ...
- 关于用bootstrap显示查询的后台数据
PrintWriter pw = response.getWriter(); pw.println(sb); pw.flush(); 由于用bootstrap查询数据,页面需要自身返回bootstra ...