SQL基础学习_06_集合运算和联结

集合运算

1. 并集:UNION

? ? 例:

? ? SELECT shohin_id, shohin_mei
? ? FROM Shohin
? ? UNION
? ? SELECT shohin_id, shohin_mei
? ? FROM Shohin2;

? ? 将Shohin和Shohin2两张表的shohin_id和shohin_mei两列取并集;

? ? 注意,UNION操作时,列数必须相等,且每列的数据类型应该相同

? ? 保留重复行: UNION ALL

2. 交集:INTERSECT

? ? 语法和UNION完全相同,但是取的是交集部分

3. 差集:EXCEPT

? ? 语法和UNION完全相同,取第一张表中有,第二张表中没有的记录

表的联结

集合运算会改变记录数(行数),联结就是对两张表的列进行联结,改变的是列数

1. 内联结: INNER JOIN

? ? 例:

? ? SELECT TS.tenpo_id, TS.tenpo_mei, TS.shohin_id, S.shohin_mei, S.hanbai_tanka
? ? FROM TenpoShohin AS TS INNER JOIN Shohin AS S
? ? ON TS.shohin_id = S.shohin_id

? ? SELECT子句指定需要连接的列,注意由于SELECT操作时间在FROM之后,所以FROM的别名在SELECT中有效;

? ? FROM子句指定两个表的名字,并且用INNER JOIN连接;

? ? ON 子句指定一个表达式,作为联结的桥梁,满足该表达式的记录会联结两个表中的相应列;

? ? 内联结可以使用WHERE子句等SELECT语句进行删选;

2. 外联结: OUTER JOIN

? ? 外联结相比内联结会显示只在主表中出现的记录;

? ? 例:

? ? SELECT TS.tenpo_id, TS.tenpo_mei, S.shohin_id, S.shohin_mei, S.hanbai_tanka
? ? FROM TenpoShohin AS TS RIGHT OUTER JOIN Shohin AS S
? ? ON TS.shohin_id = S.shohin_id;

? ? 外联结的语法和内联结基本相同,不同的是,外联结使用LEFT、RIGHT来指定主表,

? ? 使用LEFT时,写在左侧的表为主表,使用RIGHT时,写在右侧的表为主表;

3. 联结三张表以上

? ? 先联结其中的两张表为一张,依次操作直到最后做两张表的联结;

4. 交叉联结:CROSS JOIN

? ? 交叉联结时,对左侧表和右侧表的每一个记录进行联结,生成一张比较长的表;(笛卡尔积)

?

? ?

?

时间: 2024-12-09 09:59:28

SQL基础学习_06_集合运算和联结的相关文章

Oracle学习之集合运算

一.集合运算操作符  UNION:(并集)返回两个集合去掉重复值的所有的记录  UNION ALL:(并集)返回两个集合去掉重复值的所有的记录 INTERSECT:(交集)返回两个集合的所有记录,重复的只取一次  MINUS:(差集)返回属于第一个集合,但不属于第二个集合的所有                        记录 集合运算中各个集合必须有相同的列数,且类型一致,集合运算的结        果将采用第一个集合的表头作为最终的表头,order by必须放在每个        集合后

oracle学习之集合运算和数据处理

集合运算主要有三种方式: 并集,union 两个集合相同的部份只保留一份,不同部份全部保留 union  all 两个集合全部保留 交集,intersect 两个集合保留相同的部份 差集,minus A差集B 保留 A中不在B中出现的部份 集合运算的注意事项: 1,参与运算的各个集合必须列数相同,且类型一致! 2,采用第一个集合的表头作为最终使用的表头,(别名也只能在第一个集合上起) 3,可以使用括号(),先执行后面的语句. 使用示例: select * from emp where deptn

SQL基础学习_04_视图

视图 1. 视图的创建 ? ? 视图就是保存好的SELECT语句,这些SELECT语句执行之后会产生新的表,所以在SQL中,视图和表是不做差别对待的,也就是SQL也可以对视图做一些操作: ? ? 由于视图并不实际保存数据,只是保存了执行的SELECT语句,可以节约存储空间,但是对于大数据量的存储,使用视图来频繁操作的话,势必会占用较大的计算时间,也算是一种用时间换空间的方案. ? ? 通过以下语句创建视图: ? ? CREATE VIEW 视图名称 (<视图列1>,<视图列2>,&

sql基础语句大集合

每次都习惯于使用SQL Sever直接设计数据库,而没有把对SQL语句引起足够的重视,借这次机房合作版重构的机会,使用SQL语句来一次数据库设计,同时对SQL语句的基本用法做一下梳理. [分类] SQL语句有9种,按照功能划分类别可大体分为4种: 1.查询语句:select ----数据库中最常用用的语句 2.数据定义:create,drop,alter----针对数据库和数据表以及表中的字段进行的操作 3.数据操纵:insert,update,delete----传说中的"增删改查"

,NET菜鸟基础学习之——集合类型

刚刚接触.net一个月,细细的学,整理了一些别人空间上看到的资料,方便自己学习,如果大家有兴趣可以看一下. 集合,表示可以通过遍历每个元素来访问的一组对象(特别是可使用foreach循环访问)一个集合包括多个元素,即有一个集合类对象和N个元素对因为任何集合类都实现了IEnumerable接口,所以任何集合类对象都有一个GetEnumerator()方法,该方法可以返回一个实现了 IEnumerator接口的对象,这个返回的IEnumerator对象既不是集合类对象,也不是集合的元素类对象,它是一

SQL基础学习_03_数据更新

数据的插入 1. 基本INSERT语句 ? ? INSERT的基本语法为: ? ? INSERT INTO ?<表名> (列1, 列2, 列3, ?-) VALUES (值1, 值2, 值3, -)??; ? ? 例如:INSERT INTO Shohin (shohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubi) VALUES ('pen','office',100,NULL,'2009-11-11'); ? ? 如果插入的是所

SQL基础学习_02_查询

SELECT语句 1. SELECT语句查询列(字段): ? ? SELECT <列名>? ? FROM <表名>; ? ? 该语句使用了两个SQL子句,SELECT子句列举了希望从表中查询出的列的名称,FROM子句指定选取出的数据的表的名称: ? ? 如: ? ? SELECT shohin_id, shohin_mei, shiire_tanka? ? FROM Shohin;? ? ? SELECT *? ? FROM Shohin ? ? 等: 2. SELECT语句查询行

SQL 基础学习: 和深度学习资料

SQL is a standard language for storing, manipulating and retrieving data in databasee. 关系型数据库:RDBMS(Relational Database Mangement System) SQLite3: Rails默认的轻量级数据库,集成于Rails中,在db/development.sqlite3这个档案中. 用途:单机用途.所以在实际部署的时候会换成MySQL等数据库服务器. MySQL: 目前流行的开

sql基础学习

学习参考网站:http://www.runoob.com/sql/sql-tutorial.html 一.SQL命令 1.SELECT 语句 用于从数据库中选取数据. select column_name,column_name from table_name; #数据库中选取某个表格某几列数据 select * from table_name; #数据库中选取某个表格所有列数据 2.SELECT DISTINCT 语句 用于返回唯一不同的值. select distinct column_na