MySQL--集合运算
本文根据《SQL基础教程》第二版写,里面的概念、代码、例子均来自此书。
1 表的加减法
- 集合运算就是对满足同一规则的记录进行的加减等四则运算
- 集合运算符有union(并集)、intersect(交集)、except(差集)
- 集合运算符可以去除重复行
- 如果希望集合运算符保留重复行,需要使用all选项
什么是集合运算
集合在数据库中表示记录的集合。表、视图和查询的执行结果都是记录的集合。所谓集合运算,就是对满足同一规则的记录进行的加减等四则运算。通过集合运算,可以得到两张表中的记录的集合或者公共记录的集合,又或者其中某张表中的记录的集合。
表的加法–union(并集)
首先创建product2表,结构与product表相同。
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));--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;-- 结果为
+------------+--------------+--------------+------------+----------------+-------------+
| 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 | NULL |
| 0009 | 手套 | 衣服 | 800 | 500 | NULL |
| 0010 | 水壶 | 厨房用具 | 2000 | 1700 | 2009-09-20 |
+------------+--------------+--------------+------------+----------------+-------------+
接下来,使用union对表进行假发运算
mysql> select product_id,product_name from product-> union-> select product_id,product_name from product2;
+------------+--------------+
| product_id | product_name |
+------------+--------------+
| 0001 | T恤 |
| 0002 | 打孔器 |
| 0003 | 运动T恤 |
| 0004 | 菜刀 |
| 0005 | 高压锅 |
| 0006 | 叉子 |
| 0007 | 擦菜板 |
| 0008 | 圆珠笔 |
| 0009 | 手套 |
| 0010 | 水壶 |
+------------+--------------+
集合运算符会除去重复的记录。
集合运算的注意事项
(不仅限于union,之后学习的所有运算符都要遵守这些注意事项)
1、作为运算对象的记录的列数必须相同
2、作为运算对象的记录中列的类型必须一致
3、可以使用任何select语句,但order by子句只能在最后使用一次
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;
+------------+--------------+
| product_id | product_name |
+------------+--------------+
| 0004 | 菜刀 |
| 0005 | 高压锅 |
| 0006 | 叉子 |
| 0007 | 擦菜板 |
| 0010 | 水壶 |
+------------+--------------+
包含重复行的集合运算–all选项
很简单,只需要在union后面添加all就可以,all选项在union之外的集合运算符中同样可以使用。
例如保留重复行:
mysql> 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 | 水壶 |
+------------+--------------+
选取表中的公共部分–intersect(交集)
MySQL中不支持交集运算
记录的减法–except(差集)
MySQL中不支持差集运算
2 联结(以列为单位对表进行联结)
- 联结(join)就是将其他表中的列添加过来,进行“添加列”的集合运算。union是以行(纵向)为单位进行操作,而联结则是以列(横向)为单位进行的
- 联结大体上分为内联结和外联结两种。
联结就是将其他表中的列添加过来,进行’'添加列"的运算。
内联结–inner join
A:两张表中都包含的列–商品编号
B:只存在于一张表内的列–商品编号之外的列
联结运算,就是以A中的列作为桥梁,将B中满足同样条件的列汇集到同意结果之中。
下面我们试着从product表中取出商品名称和销售单价,并与shopproduct表中的内容跟进行结合。
mysql> select sp.shop_id,sp.shop_name,sp.product_id,p.product_name,p.sale_price-> from shopproduct as sp inner join product as p-> on sp.product_id=p.product_id;
+---------+-----------+------------+--------------+------------+
| shop_id | shop_name | product_id | product_name | sale_price |
+---------+-----------+------------+--------------+------------+
| 000A | 东京 | 0001 | T恤 | 1000 |
| 000A | 东京 | 0002 | 打孔器 | 500 |
| 000A | 东京 | 0003 | 运动T恤 | 4000 |
| 000B | 名古屋 | 0002 | 打孔器 | 500 |
| 000B | 名古屋 | 0003 | 运动T恤 | 4000 |
| 000B | 名古屋 | 0004 | 菜刀 | 3000 |
| 000B | 名古屋 | 0006 | 叉子 | 500 |
| 000B | 名古屋 | 0007 | 擦菜板 | 880 |
| 000C | 大阪 | 0003 | 运动T恤 | 4000 |
| 000C | 大阪 | 0004 | 菜刀 | 3000 |
| 000C | 大阪 | 0006 | 叉子 | 500 |
| 000C | 大阪 | 0007 | 擦菜板 | 880 |
| 000D | 福冈 | 0001 | T恤 | 1000 |
+---------+-----------+------------+--------------+------------+
注:
- 表的别名不是必须的,进行联结时需要在from子句中使用多张表
- 我们在on之后指定两张表联结所使用的列(联结键)。on专门用来指定联结条件,他能起到与where相同的作用。需要指定多个键时,同样可以使用and ,or 。在进行内联结时on子句必不可少,并且on必须书写在from和where之间
- 使用联结时select子句中的列需要按照“<表的别名>.<列名>”的格式进行书写(语法上,只有那些同时存在于两张表中的列(produce_id)必须使用这样的书写方式,其他列想shop_id这样直接书写列名也不会发生错误)
- 内联结和where子句结合使用,例如只想知道东京店(000A)的信息时:
mysql> select sp.shop_id,sp.shop_name,sp.product_id,p.product_name,p.sale_price-> from shopproduct as sp inner join product as p-> on sp.product_id=p.product_id-> where sp.shop_id='000A';
+---------+-----------+------------+--------------+------------+
| shop_id | shop_name | product_id | product_name | sale_price |
+---------+-----------+------------+--------------+------------+
| 000A | 东京 | 0001 | T恤 | 1000 |
| 000A | 东京 | 0002 | 打孔器 | 500 |
| 000A | 东京 | 0003 | 运动T恤 | 4000 |
+---------+-----------+------------+--------------+------------+
外联结–outer join
将量表进行外联结,语法与内联结差不多,只是结果不同:
mysql> select sp.shop_id,sp.shop_name,sp.product_id,p.product_name,p.sale_price-> from shopproduct as sp right outer join product as p-> on sp.product_id=p.product_id;
+---------+-----------+------------+--------------+------------+
| shop_id | shop_name | product_id | product_name | sale_price |
+---------+-----------+------------+--------------+------------+
| 000A | 东京 | 0001 | T恤 | 1000 |
| 000A | 东京 | 0002 | 打孔器 | 500 |
| 000A | 东京 | 0003 | 运动T恤 | 4000 |
| 000B | 名古屋 | 0002 | 打孔器 | 500 |
| 000B | 名古屋 | 0003 | 运动T恤 | 4000 |
| 000B | 名古屋 | 0004 | 菜刀 | 3000 |
| 000B | 名古屋 | 0006 | 叉子 | 500 |
| 000B | 名古屋 | 0007 | 擦菜板 | 880 |
| 000C | 大阪 | 0003 | 运动T恤 | 4000 |
| 000C | 大阪 | 0004 | 菜刀 | 3000 |
| 000C | 大阪 | 0006 | 叉子 | 500 |
| 000C | 大阪 | 0007 | 擦菜板 | 880 |
| 000D | 福冈 | 0001 | T恤 | 1000 |
| NULL | NULL | NULL | 高压锅 | 6800 |
| NULL | NULL | NULL | 圆珠笔 | 100 |
+---------+-----------+------------+--------------+------------+
注:
- 与内联结结果不同,内联结的结果中有13条记录,外联结中有15条记录,对于外联结来说,只要数据存在于某一张表中,就能够读取出来。外联结名称的由来也跟null有关,即“结果中包含原表中不存在(在原表之外)的信息”,相反,只包含表内信息的联结也被称为内联结。
- 外联结还有一点很重要,就是要把哪张表作为主表。最终的结果中会包含主表内所有的数据。指定主表的关键字是left和right。使用left时,from子句中写在左侧的表是主表,使用right时,写在右侧的表时主表。
将代码写成下面的形式结果与上相同:
mysql> select sp.shop_id,sp.shop_name,p.product_id,p.product_name,p.sale_price-> from product as p left outer join shopproduct as sp-> on sp.product_id=p.product_id;
+---------+-----------+------------+--------------+------------+
| shop_id | shop_name | product_id | product_name | sale_price |
+---------+-----------+------------+--------------+------------+
| 000A | 东京 | 0001 | T恤 | 1000 |
| 000A | 东京 | 0002 | 打孔器 | 500 |
| 000A | 东京 | 0003 | 运动T恤 | 4000 |
| 000B | 名古屋 | 0002 | 打孔器 | 500 |
| 000B | 名古屋 | 0003 | 运动T恤 | 4000 |
| 000B | 名古屋 | 0004 | 菜刀 | 3000 |
| 000B | 名古屋 | 0006 | 叉子 | 500 |
| 000B | 名古屋 | 0007 | 擦菜板 | 880 |
| 000C | 大阪 | 0003 | 运动T恤 | 4000 |
| 000C | 大阪 | 0004 | 菜刀 | 3000 |
| 000C | 大阪 | 0006 | 叉子 | 500 |
| 000C | 大阪 | 0007 | 擦菜板 | 880 |
| 000D | 福冈 | 0001 | T恤 | 1000 |
| NULL | NULL | 0005 | 高压锅 | 6800 |
| NULL | NULL | 0008 | 圆珠笔 | 100 |
+---------+-----------+------------+--------------+------------+
3张以上的表的联结
我们首先创建一张用来管理库存商品的ibao。假设商品都保存在p001和p0020这2个库中,创建inventoryproduct表:
mysql> create table inventoryproduct-> (inventory_id char(4) not null,-> product_id char(4) not null,-> inventory_quantity integer not null,-> primary key(inventory_id,product_id));-- DML:插入数据
START TRANSACTION;INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity) VALUES ('S001', '0001', 0);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity)VALUES ('S001', '0002', 120);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity) VALUES ('S001', '0003', 200);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity) VALUES ('S001', '0004', 3);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity) VALUES ('S001', '0005', 0);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity) VALUES ('S001', '0006', 99);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity) VALUES ('S001', '0007', 999);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity) VALUES ('S001', '0008', 200);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity)VALUES ('S002', '0001', 10);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity) VALUES ('S002', '0002', 25);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity) VALUES ('S002', '0003', 34);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity) VALUES ('S002', '0004', 19);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity) VALUES ('S002', '0005', 99);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity) VALUES ('S002', '0006', 0);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity) VALUES ('S002', '0007', 0);
INSERT INTO InventoryProduct (inventory_id, product_id, inventory_quantity) VALUES ('S002', '0008', 18);COMMIT;mysql> select * from inventoryproduct;
+--------------+------------+--------------------+
| inventory_id | product_id | inventory_quantity |
+--------------+------------+--------------------+
| S001 | 0001 | 0 |
| S001 | 0002 | 120 |
| S001 | 0003 | 200 |
| S001 | 0004 | 3 |
| S001 | 0005 | 0 |
| S001 | 0006 | 99 |
| S001 | 0007 | 999 |
| S001 | 0008 | 200 |
| S002 | 0001 | 10 |
| S002 | 0002 | 25 |
| S002 | 0003 | 34 |
| S002 | 0004 | 19 |
| S002 | 0005 | 99 |
| S002 | 0006 | 0 |
| S002 | 0007 | 0 |
| S002 | 0008 | 18 |
+--------------+------------+--------------------+
我们从库存商品表中取出保存在S001仓库中的商品数量,并将该列添加到上面内联结的表中。联结方式为内联结(外联结的使用方法完全相同),联结键为商品编号(product_id):
mysql> select sp.shop_id,sp.shop_name,sp.product_id,p.product_name,p.sale_price,ip.inventory_quantity-> from shopproduct as sp inner join product as p-> on sp.product_id=p.product_id-> inner join inventoryproduct as ip-> on sp.product_id=ip.product_id-> where ip.inventory_id='S001';
+---------+-----------+------------+--------------+------------+--------------------+
| shop_id | shop_name | product_id | product_name | sale_price | inventory_quantity |
+---------+-----------+------------+--------------+------------+--------------------+
| 000A | 东京 | 0001 | T恤 | 1000 | 0 |
| 000A | 东京 | 0002 | 打孔器 | 500 | 120 |
| 000A | 东京 | 0003 | 运动T恤 | 4000 | 200 |
| 000B | 名古屋 | 0002 | 打孔器 | 500 | 120 |
| 000B | 名古屋 | 0003 | 运动T恤 | 4000 | 200 |
| 000B | 名古屋 | 0004 | 菜刀 | 3000 | 3 |
| 000B | 名古屋 | 0006 | 叉子 | 500 | 99 |
| 000B | 名古屋 | 0007 | 擦菜板 | 880 | 999 |
| 000C | 大阪 | 0003 | 运动T恤 | 4000 | 200 |
| 000C | 大阪 | 0004 | 菜刀 | 3000 | 3 |
| 000C | 大阪 | 0006 | 叉子 | 500 | 99 |
| 000C | 大阪 | 0007 | 擦菜板 | 880 | 999 |
| 000D | 福冈 | 0001 | T恤 | 1000 | 0 |
+---------+-----------+------------+--------------+------------+--------------------+
交叉联结–cross join(笛卡尔积)
我们将product表和shopproduct表进行交叉联结:
mysql> select sp.shop_id,sp.shop_name,sp.product_id,p.product_name-> from shopproduct as sp cross join product as p;
+---------+-----------+------------+--------------+
| shop_id | shop_name | product_id | product_name |
+---------+-----------+------------+--------------+
| 000A | 东京 | 0001 | T恤 |
| 000A | 东京 | 0001 | 打孔器 |
| 000A | 东京 | 0001 | 运动T恤 |
| 000A | 东京 | 0001 | 菜刀 |
| 000A | 东京 | 0001 | 高压锅 |
| 000A | 东京 | 0001 | 叉子 |
| 000A | 东京 | 0001 | 擦菜板 |
| 000A | 东京 | 0001 | 圆珠笔 |
| 000A | 东京 | 0002 | T恤 |
| 000A | 东京 | 0002 | 打孔器 |
| 000A | 东京 | 0002 | 运动T恤 |
| 000A | 东京 | 0002 | 菜刀 |
| 000A | 东京 | 0002 | 高压锅 |
| 000A | 东京 | 0002 | 叉子 |
| 000A | 东京 | 0002 | 擦菜板 |
| 000A | 东京 | 0002 | 圆珠笔 |
| 000A | 东京 | 0003 | T恤 |
| 000A | 东京 | 0003 | 打孔器 |
| 000A | 东京 | 0003 | 运动T恤 |
| 000A | 东京 | 0003 | 菜刀 |
| 000A | 东京 | 0003 | 高压锅 |
| 000A | 东京 | 0003 | 叉子 |
| 000A | 东京 | 0003 | 擦菜板 |
| 000A | 东京 | 0003 | 圆珠笔 |
| 000B | 名古屋 | 0002 | T恤 |
| 000B | 名古屋 | 0002 | 打孔器 |
| 000B | 名古屋 | 0002 | 运动T恤 |
| 000B | 名古屋 | 0002 | 菜刀 |
| 000B | 名古屋 | 0002 | 高压锅 |
| 000B | 名古屋 | 0002 | 叉子 |
| 000B | 名古屋 | 0002 | 擦菜板 |
| 000B | 名古屋 | 0002 | 圆珠笔 |
| 000B | 名古屋 | 0003 | T恤 |
| 000B | 名古屋 | 0003 | 打孔器 |
| 000B | 名古屋 | 0003 | 运动T恤 |
| 000B | 名古屋 | 0003 | 菜刀 |
| 000B | 名古屋 | 0003 | 高压锅 |
| 000B | 名古屋 | 0003 | 叉子 |
| 000B | 名古屋 | 0003 | 擦菜板 |
| 000B | 名古屋 | 0003 | 圆珠笔 |
| 000B | 名古屋 | 0004 | T恤 |
| 000B | 名古屋 | 0004 | 打孔器 |
| 000B | 名古屋 | 0004 | 运动T恤 |
| 000B | 名古屋 | 0004 | 菜刀 |
| 000B | 名古屋 | 0004 | 高压锅 |
| 000B | 名古屋 | 0004 | 叉子 |
| 000B | 名古屋 | 0004 | 擦菜板 |
| 000B | 名古屋 | 0004 | 圆珠笔 |
| 000B | 名古屋 | 0006 | T恤 |
| 000B | 名古屋 | 0006 | 打孔器 |
| 000B | 名古屋 | 0006 | 运动T恤 |
| 000B | 名古屋 | 0006 | 菜刀 |
| 000B | 名古屋 | 0006 | 高压锅 |
| 000B | 名古屋 | 0006 | 叉子 |
| 000B | 名古屋 | 0006 | 擦菜板 |
| 000B | 名古屋 | 0006 | 圆珠笔 |
| 000B | 名古屋 | 0007 | T恤 |
| 000B | 名古屋 | 0007 | 打孔器 |
| 000B | 名古屋 | 0007 | 运动T恤 |
| 000B | 名古屋 | 0007 | 菜刀 |
| 000B | 名古屋 | 0007 | 高压锅 |
| 000B | 名古屋 | 0007 | 叉子 |
| 000B | 名古屋 | 0007 | 擦菜板 |
| 000B | 名古屋 | 0007 | 圆珠笔 |
| 000C | 大阪 | 0003 | T恤 |
| 000C | 大阪 | 0003 | 打孔器 |
| 000C | 大阪 | 0003 | 运动T恤 |
| 000C | 大阪 | 0003 | 菜刀 |
| 000C | 大阪 | 0003 | 高压锅 |
| 000C | 大阪 | 0003 | 叉子 |
| 000C | 大阪 | 0003 | 擦菜板 |
| 000C | 大阪 | 0003 | 圆珠笔 |
| 000C | 大阪 | 0004 | T恤 |
| 000C | 大阪 | 0004 | 打孔器 |
| 000C | 大阪 | 0004 | 运动T恤 |
| 000C | 大阪 | 0004 | 菜刀 |
| 000C | 大阪 | 0004 | 高压锅 |
| 000C | 大阪 | 0004 | 叉子 |
| 000C | 大阪 | 0004 | 擦菜板 |
| 000C | 大阪 | 0004 | 圆珠笔 |
| 000C | 大阪 | 0006 | T恤 |
| 000C | 大阪 | 0006 | 打孔器 |
| 000C | 大阪 | 0006 | 运动T恤 |
| 000C | 大阪 | 0006 | 菜刀 |
| 000C | 大阪 | 0006 | 高压锅 |
| 000C | 大阪 | 0006 | 叉子 |
| 000C | 大阪 | 0006 | 擦菜板 |
| 000C | 大阪 | 0006 | 圆珠笔 |
| 000C | 大阪 | 0007 | T恤 |
| 000C | 大阪 | 0007 | 打孔器 |
| 000C | 大阪 | 0007 | 运动T恤 |
| 000C | 大阪 | 0007 | 菜刀 |
| 000C | 大阪 | 0007 | 高压锅 |
| 000C | 大阪 | 0007 | 叉子 |
| 000C | 大阪 | 0007 | 擦菜板 |
| 000C | 大阪 | 0007 | 圆珠笔 |
| 000D | 福冈 | 0001 | T恤 |
| 000D | 福冈 | 0001 | 打孔器 |
| 000D | 福冈 | 0001 | 运动T恤 |
| 000D | 福冈 | 0001 | 菜刀 |
| 000D | 福冈 | 0001 | 高压锅 |
| 000D | 福冈 | 0001 | 叉子 |
| 000D | 福冈 | 0001 | 擦菜板 |
| 000D | 福冈 | 0001 | 圆珠笔 |
+---------+-----------+------------+--------------+
记录竟多达104条!进行交叉联结时无法使用内联结和外联结中所使用的on子句,这是因为交叉联结是对两张表中的全部记录进行交叉组合,因此结果中的记录数通常是两张表中行数的乘积。shopproduct有13条记录,product有8条记录,所以交叉联结后共有104条记录。
MySQL--集合运算相关推荐
- mysql集合运算_SQL基础教程(mick)学习
数据处理通常情况下使用EXCEL,但也有其劣势,当数据量过大(10万条以上)就无法进行处理,现今数据量动辄几十上百万量的数据,就需要使用更高级的数据处理工具--DBMS. 学习的教材选择的是日本作家M ...
- mysql集合运算教程_详解SQL集合运算
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]06.透视.逆透视.分组集 [T ...
- MySQL的集合运算
文章目录 集合运算 1.表的加减法 1.1 什么是集合运算 2.表的加法--union 2.1 UNION 2.2 UNION 和 OR 谓词 2.3 包含重复行的集合运算 UNION ALL 2.4 ...
- MySQL --- 多表查询 - 七种JOINS实现、集合运算、多表查询练习
七种JOINS实现 左上图的JOIN是左外连接,右上图的JOIN是右外连接,中间图的JOIN是内连接,左中图的JOIN在左上图的基础上再去掉中间重复的,只需要 A 在 B 中没有的部分(空的部分),右 ...
- MySQL教程四——集合运算
文章目录 一.表的加减法 1. 什么是集合运算? 2. 表的加法--UNION 练习题: 2.2 UNION 与 OR 谓词 练习题 : 2.3 包含重复行的集合运算 UNION ALL 练习题: 2 ...
- mysql基础 Task04:集合运算
1. 表的加减法 新建表 tbl_product2 ,供后面学习. create table tbl_product2 (product_id char(4) primary key,product_ ...
- mysql 交并差_mysql学习笔记:集合运算并交差,其他
总结一下今天数据库课堂上的所学2333 1. 在SQL语言实践中,集合运算的实现方法,推荐顺序如下: 并运算:union 交运算:in, exists, intersect(很多DBMS基本上不支持i ...
- mysql 字段集合运算_如何用SQL进行集合运算
如何用SQL进行集合运算 发布时间:2020-07-15 14:31:43 来源:亿速云 阅读:117 作者:Leah 今天就跟大家聊聊有关如何用SQL进行集合运算 ,可能很多人都不太了解,为了让大家 ...
- mysql集合相加_用SQL进行集合运算
这篇文章主要介绍了关于用SQL进行集合运算 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 1.比较表和表drop table if exists tbl_a;create table ...
- Task04:集合运算-表的加减法和join等-天池龙珠计划SQL训练营
4.1表的加减法 4.1.1 什么是集合运算 集合在数学领域表示"各种各样的事物的总和", 在数据库领域表示记录的集合. 具体来说,表.视图和查询的执行结果都是记录的集合, 其中的 ...
最新文章
- List 如何根据对象的属性去重?Java 8 轻松搞定!
- android平板开发板,利用开源开发板自制的平板电脑 | 雷锋网
- 求和第一个算到最后一个周末求_Excel最全求和函数—sum家族系列
- HBase常用操作之namespace
- java 金字塔样式输出_Java打印金字塔(正实心、正空心,倒实心、倒空心),菱形...
- SQLServer之深度分析跟踪
- java生成excel到本地_java 将数据库中的数据导出成Excel文件 并保存到本地 将文件地址返回给前端...
- 20190812:两个数组的交集ⅠⅡ
- 不要主动进行垃圾回收
- 网络中的一些专业名词解释
- C语言小程序打印楼梯图案
- 多款iPhone遭遇中国禁售令!福建法院判决高通胜诉苹果
- 【产业互联网周报】罗永浩AR创业公司获美团领投;英特尔自动驾驶子公司Mobileye敲定IPO条款;星环科技登陆科创板...
- HTML网页设计制作大作业-制作漫画网页设计6个页面(HTML+CSS+JavaScript)
- java中IOException是什么异常
- 基于 UAP 的 Web Service 开发
- 关于笔记本WLAN被禁用解决方法
- vuejs2.0 数组操作 提示Cannot read property 'push' of undefined
- Android开发以来所记载最全的有关项目的网址
- 食物链(经典种类并查集问题)---详解