sql交集(sql交集并集差集)

更新时间:2023-02-28 23:50:15 阅读: 评论:0

SQL集合运算:差集、交集、并集



SQL集合运算:差集、交集、并集

2011年03月30日 15:41:00

阅读数:15446

1、差集( except )

lect a from t_a

except

lect a from t_b

-- 也可写作:

lect a from t_a where a not in (lect a from t_b)

-- 多个字段时:

lect a,b from t_a

except

lect a,b from t_b

-- 多字段的查集也可写成:

lect a,b from t_a where (a,b) not in (lect a,b from t_b)

2、交集( interct )

lect a from t_a

interct

lect a from t_b

-- 也可写作:

   lect a from t_a where a in (lect a from t_b)

3、并集( union )

lect a from t_a

union distinct

lect a from t_b

如何使用SQL语句求出交集

求交集的关键字是 interct ,例:
lect * from emp where deptno in (10,20)
interct
lect * from emp where deptno in (20,30);

sql如何取交集?

lect * from mytable where pet in (lect pet from mytable group by pet having count(pet)>1)

获取同一pet数量大于1的pet并lect出相关信息

lect pet,count(pet) as per_count from mytable group by pet order by count(pet) desc limit 10

获取pet拥有量前十的pet和数量

【数据库题目】在SQL中表示交集的关键字是()?

--测试表,与测试数据

CREATETABLEunion_tab_1(
idINT,
valVARCHAR(10)
);

CREATETABLEunion_tab_2(
idINT,
valVARCHAR(10)
);

INSERTINTOunion_tab_1VALUES(1,'A');
INSERTINTOunion_tab_1VALUES(2,'B');
INSERTINTOunion_tab_1VALUES(3,'C');


INSERTINTOunion_tab_2VALUES(1,'A');
INSERTINTOunion_tab_2VALUES(1,'A');
INSERTINTOunion_tab_2VALUES(2,'B');
INSERTINTOunion_tab_2VALUES(4,'D');



UNION-合并且去除重复记录

SQL>SELECT*FROMunion_tab_1
2UNION
3SELECT*FROMunion_tab_2;

IDVAL
------------------------------
1A
2B
3C
4D


UNION ALL-合并且不去除重复记录

SQL>SELECT*FROMunion_tab_1
2UNIONALL
3SELECT*FROMunion_tab_2;

IDVAL
------------------------------
1A
2B
3C
1A
1A
2B
4D

7rowslected.



INTERSECT – 仅仅给出2个表都有的数据(去除重复记录)


SQL>SELECT*FROMunion_tab_1
2INTERSECT
3SELECT*FROMunion_tab_2;

IDVAL
------------------------------
1A
2B



MINUS – 返回第一个表中有、第二个表中没有的数据

SQL>SELECT*FROMunion_tab_1
2MINUS
3SELECT*FROMunion_tab_2;

IDVAL
------------------------------
3C

SQL>SELECT*FROMunion_tab_2
2MINUS
3SELECT*FROMunion_tab_1;

IDVAL
------------------------------
4D



至于那个填空题

表示交集的关键字 ()

这个 “交集”, 应该意思就是2个表都有的。

那么也就是

INTERSECT


求多个表交集的SQL语句是什么呀???

使用 EXISTS 和 NOT EXISTS 查找交集与差集
使用 EXISTS 和 NOT EXISTS 引入的子查询可用于两种集合原理的操作:交集与差集。两个集合的交集包含同时属于两个原集合的所有元素。差集包含只属于两个集合中的第一个集合的元素。

city 列中 authors 和 publishers 的交集是作者和出版商共同居住的城市的集合。

USE pubs
SELECT DISTINCT city
FROM authors
WHERE EXISTS
(SELECT *
FROM publishers
WHERE authors.city = publishers.city)

下面是结果集:

city
--------
Berkeley

(1 row(s) affected)

当然,该查询可以写成一个简单的联接。

USE pubs
SELECT DISTINCT authors.city
FROM authors INNER JOIN publishers
ON authors.city = publishers.city

city 列中 authors 和 publishers 的差集是作者所居住的、但没有出版商居住的所有城市的集合,也就是除 Berkeley 以外的所有城市。

USE pubs
SELECT DISTINCT city
FROM authors
WHERE NOT EXISTS
(SELECT *
FROM publishers
WHERE authors.city = publishers.city)

该查询也可以写成:

USE pubs
SELECT DISTINCT city
FROM authors
WHERE city NOT IN
(SELECT city
FROM publishers)

本文发布于:2023-02-28 19:08:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/167759941552401.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:sql交集(sql交集并集差集).doc

本文 PDF 下载地址:sql交集(sql交集并集差集).pdf

标签:sql   集差集
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|