当前位置: 首页 > news >正文

SQL笔记#集合运算

目录

一、表的加减法

1、什么是集合运算

2、表的加法——UNION

3、集合运算的注意事项

4、包含重复行的集合运算——ALL运算

5、选取表中公共部分——INTERSECT

6、记录的减法——EXCEPT

二、联结(以列为单位对表进行联结)

1、什么是联结(JOIN)

2、内联结——INSERT JOIN

3、外联结——OUTER JOIN

4、3张以上的表的联结

5、交叉联结——CROSS JION

一、表的加减法

1、什么是集合运算

        集合在数据库领域表示记录的集合;对满足同一规则的记录进行四则运算就是集合运算。

2、表的加法——UNION

-------------创建表Product2(商品2)

        商品2的结构与之前使用的Product(商品)表相同,只是表名变化;并在其中插入记录,其中0001-0003与原先的记录一致,而0009-0010的记录是原先没有的。

 product_id | product_name | product_type | sale_price | purchase_price | regist_date
------------+--------------+--------------+------------+----------------+-------------
 0001       | T恤衫        | 衣服         |       1000 |            500 | 2009-09-20
 0002       | 打孔器       | 办公用品     |        500 |            320 | 2009-09-11
 0003       | 运动T恤      | 衣服         |       4000 |           2800 |
 0009       | 手套         | 衣服         |        800 |            500 |
 0010       | 水壶         | 厨房用具     |       2000 |           1700 | 2009-09-20

-------------使用UNION(并集)对表进行加法运算

        集合的并集运算通常会除去重复的数据。

-- 对Product和Product2进行并集处理
SELECT product_id, product_name
  FROM Product
UNION
SELECT product_id, product_name
  FROM Product2;
 product_id | product_name
------------+--------------
 0004       | 菜刀
 0005       | 高压锅
 0008       | 圆珠笔
 0010       | 水壶
 0009       | 手套
 0006       | 叉子
 0001       | T恤衫
 0002       | 打孔器
 0007       | 擦菜板
 0001       | T恤衫
 0003       | 运动T恤

3、集合运算的注意事项

\blacksquare 作为运算对象的记录中的列数必须相同

----- 列数不一致时会发生错误

SELECT product_id,product_name
  FROM Product
UNION
SELECT product_id,product_name,sale_price
  FROM Product2;

\blacksquare 作为运算对象的记录中的类型必须一致

----- 列的类型不一致时会发生错误

SELECT product_id,sale_price
  FROM Product
UNION
SELECT product_id,regist_date
  FROM Product2;

\blacksquare 可以使用任何SELECT语句,但ORDER BY子句只能在最后使用一次

SELECT product_id, product_name
  FROM Product
 WHERE product_type = '厨房用具'
UNION
SELECT product_id, product_name
  FROM Product2
 WHERE product_type = '厨房用具'
ORDER BY product_id;
 product_id | product_name
------------+--------------
 0004       | 菜刀
 0005       | 高压锅
 0006       | 叉子
 0007       | 擦菜板
 0010       | 水壶

4、包含重复行的集合运算——ALL运算

        在集合运算符中使用ALL选项,可以保留重复行。

SELECT product_id, product_name
  FROM Product
UNION ALL
SELECT product_id, product_name
  FROM Product2;
 product_id | product_name
------------+--------------
 0001       | T恤衫
 0002       | 打孔器
 0003       | 运动T恤
 0004       | 菜刀
 0005       | 高压锅
 0006       | 叉子
 0007       | 擦菜板
 0008       | 圆珠笔
 0001       | T恤衫
 0002       | 打孔器
 0003       | 运动T恤
 0009       | 手套
 0010       | 水壶

5、选取表中公共部分——INTERSECT

        选取两个记录集合中公共部分的INTERSECT(交集)。

SELECT product_id, product_name
  FROM Product
INTERSECT
SELECT product_id, product_name
  FROM Product2
ORDER BY product_id;
 product_id | product_name
------------+--------------
 0002       | 打孔器
 0003       | 运动T恤

6、记录的减法——EXCEPT

---------------------------------------------------------------------------------------------------------------------------------


                

相关文章:

  • 事务的4个特性和4个隔离级别
  • DeepSeek开源周首日:发布大模型加速核心技术可变长度高效FlashMLA 加持H800算力解码性能狂飙升至3000GB/s
  • LabVIEW C编译支持工具库CCompileSupp.llb
  • android 新增native binder service 方式(三)
  • 系统思考:第五项修炼
  • 『obsidian』obsidian接入DeepSeek模型的完整说明
  • 神经网络 - 神经元
  • LangChain教程 - RAG - 支持的100种向量数据库
  • 九、数据治理架构流程
  • JSON 简介、语法、使用场景与 JavaScript 操作指南
  • 【时时三省】(C语言基础)常量和变量
  • 一文读懂:AIGC 在工业互联网产教融合实训平台的创新应用
  • 05-1基于vs2022的c语言笔记——运算符
  • sklearn中的决策树-分类树:实例-分类树在合成数据集上的表现
  • NVIDIA DLI引领创新课程:基于提示工程的LLM应用开发探索
  • Bybit最大资金盗窃事件技术分析 by CertiK
  • 递归(典型算法思想)—— OJ例题算法解析思路
  • R-INLA实现绿地与狐狸寄生虫数据空间建模:含BYM、SPDE模型及PC先验应用可视化...
  • Java使用EasyExcel实现异步导出
  • JavaScript web APIs第一天——04-code——06-随机抽奖案例.html
  • 网约车司机猝死,平台和保险公司均拒绝赔偿,法院判了
  • 澎湃思想周报|《混沌少年时》与青少年社媒禁令;自雇陷阱
  • 三星“七天机”质保期内屏幕漏液被拒保,澎湃介入后已解决
  • 商务部:对原产于美国、欧盟、台湾地区和日本的进口共聚聚甲醛征收反倾销税
  • 上海市第二十届青少年科技节启动:为期半年,推出百余项活动
  • 上市公司重大资产重组新规九要点:引入私募“反向挂钩”,压缩审核流程