SQL基础教程(第2版)第7章 集合运算:7-1 表的加减法

7-1 表的加减法



● 集合运算就是对满足同一规则的记录进行的加减等四则运算。
● 使用UNION(并集)、 INTERSECT(交集)、 EXCEPT(差集)等集合运算符来进行集合运算。
● 集合运算符可以去除重复行。
● 如果希望集合运算符保留重复行,就需要使用ALL选项。



■什么是集合运算

集合在数学领域表示“(各种各样的)事物的总和”,在数据库领域表示记录的集合。具体来说,表、视图和查询的执行结果都是记录的集合。
■表的加法——UNION
首先为大家介绍的集合运算符是进行记录加法运算的 UNION(并集)。

代码清单7-1 创建表Product2(商品2)

CREATE TABLE Product2
(product_id      CHAR(4)      NOT NULL,
 product_name    VARCHAR(100) NOT NULL,
 product_type    VARCHAR(32)  NOT NULL,
 sale_price      INTEGER      ,
 purchase_price  INTEGER      ,
 regist_date      DATE         ,
 PRIMARY KEY (product_id));

List7_1.sql

商品编号(product_id)为“0001”~“0003”的商品与之前Product表中的商品相同

--MySQL
START TRANSACTION;

INSERT INTO Product2 VALUES (‘0001‘, ‘T恤‘, ‘衣服‘, 1000, 500, ‘2009-09-20‘);
INSERT INTO Product2 VALUES (‘0002‘, ‘打孔器‘, ‘办公用品‘, 500, 320, ‘2009-09-11‘);
INSERT INTO Product2 VALUES (‘0003‘, ‘运动T恤‘, ‘衣服‘, 4000, 2800, NULL);
INSERT INTO Product2 VALUES (‘0009‘, ‘手套‘, ‘衣服‘, 800, 500, NULL);
INSERT INTO Product2 VALUES (‘0010‘, ‘水壶‘, ‘厨房用具‘, 2000, 1700, ‘2009-09-20‘);

COMMIT;

--MySQL

■集合运算的注意事项

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;

■包含重复行的集合运算——ALL选项



■选取表中公共部分——INTERSECT



■记录的减法——EXCEPT

最后要给大家介绍的集合运算符就是进行减法运算的 EXCEPT(差集),其语法也与 UNION 相同(代码清单 7-7)。

原文地址:https://www.cnblogs.com/MarlonKang/p/12234460.html

时间: 2024-08-02 22:22:09

SQL基础教程(第2版)第7章 集合运算:7-1 表的加减法的相关文章

Ajax本地跨域问题 Cross origin requests are only supported for HTTP(针对jQuery基础教程第四版第六章)

出现的问题: 解决的步骤: 谷歌浏览器出现的效果: 针对jQuery基础教程(第四版),第六章  成功: 原文地址:https://www.cnblogs.com/qinghui258/p/8432569.html

[SQL基础教程.第3版](冯宇晖&贾文峰)PDF版

链接:https://pan.baidu.com/s/1gNUholoLdE4JPQakzs3eDg 原文地址:http://blog.51cto.com/13929572/2175890

笔记-Python基础教程(第二版)第一章

第一章 快速改造:基础知识 01:整除.乘方 (Python3.0之前 如2.7版本) >>> 1/2 ==>0 1/2整除,普通除法: 解决办法1: 1.0/2.0  ==>0.5 解决办法2:from _future_ import division 1/2  ==>0.5 // 表示整除 >>>1//2 ==>0 浮点数//浮点数,结果依然是整除结果 >>>1.0//2.0 ==>0.0 实际操作截图: ** 表示乘

python基础学习笔记——Python基础教程(第2版 修订版)第一章

#模块 import math math.floor(9) from math import sqrt sqrt(9) #无需使用前缀 import cmath cmath.sqrt(-1) #不能使用from...inport #转义和单双引号 >>>"\"hello,word\"she said" '"hello,word"she said' #使用print不显示引号 #拼接字符串  + #输入 input raw_inp

python基础学习笔记——Python基础教程(第2版 修订版)第二章(列表和元祖)

#列表可修改,元祖不能 A=['sdsd',43] B=['sds',45] C=[A,B] #分片 : - #list函数 #分片赋值 #列表方法 lst.append(4) x.count(1) x.count([1,2]) a.extend(b) a.index("w") a.insert(3,"都")x.removex.reversex.sort #pop 移除列表元素,并返回值.实现数据结构-栈,LIFO(后进先出),x.append(x.pop()),先

jQuery基础教程(第四版)第3章练习:

关于答案: // // (1) 在Charles Dickens被单击时,给它应用 selected 样式.$(document).ready(function() { $('#header').on('click',function() { $('.author').addClass('selected') });}) // (2) 在双击章标题( <h3 class="chapter-title"> )时,切换章文本的可见性.$(document).ready(func

jQuery基础教程(第四版)第4章练习:

关于答案: // (1) 修改样式表,一开始先隐藏页面内容,当页面加载后,慢慢地淡入内容:$(document).ready(function() { $('body').hide().fadeIn(4000);}) // (2) 在鼠标悬停到段落上面时,给段落应用黄色背景:$(document).ready(function() { $('p').mousemove(function(event) { //鼠标进入的时候 $(this).css('background','yellow');

SQL基础教程(第2版)第3章 聚合与排序:3-1 对表进行聚合查询

聚合函数 COUNT: 计算表中的记录数(行数)SUM: 计算表中数值列中数据的合计值AVG: 计算表中数值列中数据的平均值MAX: 求出表中任意列中数据的最大值MIN: 求出表中任意列中数据的最小值 计算NULL之外的数据的行数 该特性是 COUNT 函数所特有的,其他函数并不能将星号作为参数(如果使用星号会出错).  计算合计值 对于 SUM 函数来说,即使包含 NULL,也可以计算出合计值. 计算平均值 使用聚合函数删除重复值(关键字DISTINCT) SQL基础教程(第2版)第3章 聚合

SQL基础教程(第2版)第3章 聚合与排序:3-3 为聚合结果指定条件

HAVING子句 HAVING子句的构成要素 笔者认为,聚合键所对应的条件还是应该书写在 WHERE 子句之中.理由有两个.首先,根本原因是 WHERE 子句和 HAVING 子句的作用不同.如前所述, HAVING 子句是用来指定“组”的条件的.因此,“行”所对应的条件还是应该写在 WHERE 子句当中.这样一来,书写出的 SELECT 语句不但可以分清两者各自的功能,理解起来也更加容易. WHERE 子句 = 指定行所对应的条件HAVING 子句 = 指定组所对应的条件其次,对初学者来说,研