加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Oracle 多表关联-子查询-TOP-N-分页

发布时间:2022-12-13 14:02:52 所属栏目:MsSql教程 来源:网络
导读: 一、多表关联
1、交集、并集、全集、差集
并集:把集合A的结果和集合B 的结果合并,并去掉重复的记录。

全集:把集合A的结果和集合B的结果合并,保留重复记录。

交集:把集合A的结果和集

一、多表关联

1、交集、并集、全集、差集

并集:把集合A的结果和集合B 的结果合并,并去掉重复的记录。

查询篆体字用子写法_工商银行子账号查询_Mssq子查询

全集:把集合A的结果和集合B的结果合并,保留重复记录。

交集:把集合A的结果和集合B的结果取相同的部分。

差集:在集合A的结果中去掉集合B的结果(A-B)

2、多表关联

2.1 笛卡尔积

查询篆体字用子写法_Mssq子查询_工商银行子账号查询

Mssq子查询_查询篆体字用子写法_工商银行子账号查询

笛卡尔积通俗的讲就是将R表的每一行分别与S表的每一行相连接在一起,然后合成一张大表。

2.2 等值连接

Mssq子查询_查询篆体字用子写法_工商银行子账号查询

2.3 不等值连接

Mssq子查询_查询篆体字用子写法_工商银行子账号查询

2.4 外连接

左外连接:左边的表作为主表,右边表作为从表,主表数据都显示,从表数据没有,用null填充,用+号表示。

查询篆体字用子写法_Mssq子查询_工商银行子账号查询

右外连接: 右边的表作为主表,左边表作为从表,主表数据都显示,从表数据没有,用null填充,用+号表示。

Mssq子查询_查询篆体字用子写法_工商银行子账号查询

2.5 自连接

一个表自身连接自身时,称为自连接。自连接以不同的视角看待同一张表。

查询篆体字用子写法_Mssq子查询_工商银行子账号查询

2.6 多于两张表的查询

如果有多个表参与查询,先把t1xt2笛卡尔积得到一个大表T1,再把T1xt3笛卡尔积得到一个另外的大表T2,依次类推。

所有的多表查询最终都是两种表的查询。

二、子查询

1、子查询含义

sql 中查询是可以嵌套的。一个查询可以作为另外一个查询的条件、表。

理解子查询的关键在于把子查询当作一张表来看待。外层的语句可以把内嵌的子查询返回的结果当成一张表使用。子查询可以作为一个虚表被使用。

子查询要用括号括起来

将子查询放在比较运算符的右边(增强可读性)

子查询根据其返回结果可以分为单行子查询和多行子查询。

1.1 单行子查询

当子查询有单行时,可以取单行中的一个字段形成单个值用于条件比较。

查询篆体字用子写法_工商银行子账号查询_Mssq子查询

1.2 多行子查询

工商银行子账号查询_查询篆体字用子写法_Mssq子查询

多行子查询返回的结果可以作为表使用,通常结合 in 、some/any 、 all 、 exists 。

1.3 from 后的子查询

子查询可以作为一张续表用于from 后。

Mssq子查询_查询篆体字用子写法_工商银行子账号查询

2、 TOP-N

把select 得到的数据集提取前n条数

rownum:表示对查询的数据集记录的编号Mssq子查询,从1 开始。

工商银行子账号查询_Mssq子查询_查询篆体字用子写法

总结

1、order by 一定在整个结果集出现后才执行。

2、rowunm 在结果集出现后才有编号。

......-> select -> rowunm ->order by

3、分页

案例:

查询篆体字用子写法_Mssq子查询_工商银行子账号查询

求page = n , pagesize = size 的数据

=> [(n-1)*size+1,n*size]

工商银行子账号查询_查询篆体字用子写法_Mssq子查询

4、行转列

Mssq子查询_查询篆体字用子写法_工商银行子账号查询

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!