Oracle 多表关联-子查询-TOP-N-分页
1、交集、并集、全集、差集
并集:把集合A的结果和集合B 的结果合并,并去掉重复的记录。
全集:把集合A的结果和集合B的结果合并,保留重复记录。
交集:把集合A的结果和集
一、多表关联 1、交集、并集、全集、差集 并集:把集合A的结果和集合B 的结果合并,并去掉重复的记录。 全集:把集合A的结果和集合B的结果合并,保留重复记录。 交集:把集合A的结果和集合B的结果取相同的部分。 差集:在集合A的结果中去掉集合B的结果(A-B) 2、多表关联 2.1 笛卡尔积 笛卡尔积通俗的讲就是将R表的每一行分别与S表的每一行相连接在一起,然后合成一张大表。 2.2 等值连接 2.3 不等值连接 2.4 外连接 左外连接:左边的表作为主表,右边表作为从表,主表数据都显示,从表数据没有,用null填充,用+号表示。 右外连接: 右边的表作为主表,左边表作为从表,主表数据都显示,从表数据没有,用null填充,用+号表示。 2.5 自连接 一个表自身连接自身时,称为自连接。自连接以不同的视角看待同一张表。 2.6 多于两张表的查询 如果有多个表参与查询,先把t1xt2笛卡尔积得到一个大表T1,再把T1xt3笛卡尔积得到一个另外的大表T2,依次类推。 所有的多表查询最终都是两种表的查询。 二、子查询 1、子查询含义 sql 中查询是可以嵌套的。一个查询可以作为另外一个查询的条件、表。 理解子查询的关键在于把子查询当作一张表来看待。外层的语句可以把内嵌的子查询返回的结果当成一张表使用。子查询可以作为一个虚表被使用。 子查询要用括号括起来 将子查询放在比较运算符的右边(增强可读性) 子查询根据其返回结果可以分为单行子查询和多行子查询。 1.1 单行子查询 当子查询有单行时,可以取单行中的一个字段形成单个值用于条件比较。 1.2 多行子查询 多行子查询返回的结果可以作为表使用,通常结合 in 、some/any 、 all 、 exists 。 1.3 from 后的子查询 子查询可以作为一张续表用于from 后。 2、 TOP-N 把select 得到的数据集提取前n条数 rownum:表示对查询的数据集记录的编号Mssq子查询,从1 开始。 总结 1、order by 一定在整个结果集出现后才执行。 2、rowunm 在结果集出现后才有编号。 ......-> select -> rowunm ->order by 3、分页 案例: 求page = n , pagesize = size 的数据 => [(n-1)*size+1,n*size] 4、行转列 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |