*****一、外连接查询
1、左外连接查询
表与表之间通过关联条件进行查询,左边表数据全部显示,右边表通过关联条件关联显示,
关联不上的数据有空代替,格式如下:
select * from 表1 t1 left outer join 表2 t2 on t1.关联字段 = t2.关联字段;
select * from 表1 t1, 表2 t2 where t1.关联字段 = t2.关联字段(+);
注:(+)加在对方表上
2、右外连接查询
表与表之间通过关联条件进行查询,右边表数据全部显示,左边表通过关联条件关联显示,
关联不上的数据有空代替,格式如下:
select * from 表1 t1 right outer join 表2 t2 on t1.关联字段 = t2.关联字段;
select * from 表1 t1, 表2 t2 where t1.关联字段(+) = t2.关联字段;
注:(+)加在对方表上
3、全外连接查询
表与表之间通过关联条件进行查询,左边表与右边表数据全部显示,通过关联条件关联显示,
关联不上的数据有空代替,格式如下:
select * from 表1 t1 full outer join 表2 t2 on t1.关联字段 = t2.关联字段;
二、交叉连接(笛卡尔效应)
表与表之间进行查询,不通过任何关联条件,称为交叉连接,也叫笛卡尔效应,交叉连接是所有
连接查询的最底层,内、外连接查询都是交叉连接的一部分,格式如下:
select * from 表1, 表2;
*****三、分页查询
1、使用rownum分页
取第一次分页
select t.*, rownum rn from 表名 t where rownum <= 结束行号;
取后续分页
select * from (
select t.*, rownum rn from 表名 t
)where rn between 开始行号 and 结束行号;
2、使用rowid分页
select * from 表名 t2 where rowid in (
select t1.rid from (
select rownum rn, rowid rid from 表名
) t1 where rn between 开始行号 and 结束行号
);
3、什么是rownum、rowid
rownum:行号,代表一个虚拟列(伪列),编号是从1开始的
rowid:表数据存储在数据库中的地址,是唯一的,也是一个虚拟列(伪列)
*****四、DQL关键字执行顺序
1、from
2、join
3、on
4、where
5、group by
6、having
7、select
8、distinct
9、order by
*****五、合并结果集
在SQL查询语句中,为了合并多个结果集,可以用以下操作符:
union all(并集不去重)、union(并集去重)、intersect(交集)、minus(差集)
语法:
select 字段1, 字段2 from 表1
union all、union、intersect、minus(四选一)
select 字段A, 字段B from 表2
注:字段1与字段A数据类型、字段个数必须一样,与字段名无关
union 是Oracle去重之一
六、Oracle去重方式
Oracle去重方式有三种,分别:distinct、group by、union
七、DQL查询种类
1、普通的全表查询
2、where条件查询
3、like查询
4、in、exists查询
5、嵌套查询
6、排序查询
7、分组查询
8、去重查询
9、分页查询
10、合并结果集查询
11、多表连接查询(内、外、自、交叉连接)