SQL语句完整结构:
select from where group by having order by

今天分享的知识点:
(1)分组查询
select 中非组函数的列需要在group by 进行参与分组运算
where 后面不能使用组函数,having可以;如果使用非组函数过滤,优先使用where
增强分组查询group by rollup(a,b),先对a和b分组,再对a分组,再对null分组;

(2)自连接和外连接查询(全集,子集。全集表在哪边就是啥连接)
自连接
select e1.empno,e1.ename,e1.mgr,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno(+);

sql99标准:
A a left join B b on a.col1=b.col2 左连接
A a right join B b on a.col1=b.col2 右连接
orcle:
A a , B b where a.col1(+)=b.col2 右连接
A a , B b where a.col1 =b.col2(+) 左连接

select d.deptno 部门编号,d.dname 部门名称,count(e.empno) 部门总人数 from emp e, dept d where e.deptno(+)=d.deptno
group by d.deptno,d.dname order by d.deptno;

(3) 等值连接
等值连接 where =
不等值连接 where between and,等


(4)子查询(select 语句的嵌套)
子查询放在哪里?select ,from ,where,having
子查询用什么关键字连接?单行子查询使用(=,<>,>,>=,<,<=,between and),多行子查询使用单行运算符和(in(),any(),all())
子查询和主查询执行顺序?一般首先执行子查询,相关子查询首先执行主查询;
子查询一般参与排序么?一般不参与排序,但是在分页查询中需要对子查询排序;
相关子查询需要注意什么?主查询的结果可以以参数传递给子查询使用
对多行子查询not in()不能使用null的理解

(5)层次查询(针对的是一张表,该表中存在tree的结构)
connect by prior empno=mgr start with mgr is null

(6)分页查询
一张表不经过任何操作默认带有rownum行号,经过排序操作之后,该行号也随着排序了,但不是从1-2-3排序的
为了重新按照1-2-3排序,需要将参与排列的表放入from中构成一张新的表;新表的顺序是按照1-2-3排序的
rownum 不能直接rownum>1,但是可以使用rownum<6
为了使用rownum>1,我们把rownum当成列来使用而不是行号;
select * from (select rownum rm,e1.* from (select rownum,e.* from emp e order by sal desc)
e1 where rownum<8 ) e2 where rm>2;
(7)集合操作
union 去重,union all不去重
集合参与运算(并集,交集,差集)需要每一个集合的列个数和类型要一样;
order by放在最后;
set timing on
(8)临时表
create global temporary xx on commit delete rows;

注意:

自然连接(显示的只能是* ,不能使用on 有一个连接条件)
select * from emp natural join dept;

交叉连接(产生了笛卡尔积)
select e.ename,d.dname from emp e cross join dept d;

内连接(在笛卡尔积上选择了满足on条件的记录行)
显式内连接:select * from emp e inner join dept d on e.deptno=d.deptno;
隐式内连接:select * from emp e , dept d where e.deptno=d.deptno;

oracle02的更多相关文章

  1. Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...

  2. Oracle-02:SQL语言的分类或者说SQL语言的组成

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 小结一版:  01.DDL(Data Definition Language)数据定义语言. 用来创建数据库中 ...

  3. oracle-02 用户管理

    一.创建用户概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用.create user 用户名 identified by 密码;  ...

  4. 文件控制列表命令setfacl和getfacl的使用

    一 需求 有以下需求,通过setfacl命令实现 一组用户可写可读可执行,一组用户可写可执行,另一组用户只可读 linux rwx oracle wx uplook r 二 解决 第一步 添加六个用户 ...

  5. ASM路径问题导致数据库不能正常启动 -- 报:ORA-03113: end-of-file on communication channel

    环境描述: 操作系统版本:Red Hat Enterprise Linux Server release 6.5 (Santiago) 数据库版本:Oracle 11.2.0.4 RAC 场景描述: ...

  6. oralce11g RAC 启动后 CRS-0184: Cannot communicate with the CRS daemon.

    很奇怪的一个问题! ORACLE数据库服务器,系统启动之后,查看集群状态,发现CRS实例不可用,然后网上查找资料: 隔了几分钟之后,再次查询相关集群服务状态,发现正常了!!! 暂时得出的结论:操作系统 ...

  7. 字符乱码 导致 ORA-12899: value too large

    问题场景: 1.创建测试表 create table t01(name varchar2(30)) 2.插入数据 SQL> insert into t01 (name) values('所有分销 ...

  8. 异构GoldenGate 12c 双向复制配置

    1.配置window,添加checkpoint表(本文windows和linux互为source和target) GGSCI (WIN-GM5PVS1CILH) 1> view param ./ ...

  9. 异构GoldenGate 12c 单向复制配置(支持DDL复制)

    1.开始配置OGG支持DDL复制(在source端操作) 1.1 赋予权限 SQL> conn /as sysdba 已连接. SQL> grant execute on utl_file ...

随机推荐

  1. [js高手之路]html5 canvas教程 - 1px问题以及绘制坐标系网格

    在canvas中,要画出1px的线条,默认情况下是不行的 context.beginPath(); context.moveTo( 100, 100 ); context.lineTo( 400, 1 ...

  2. vue2.0 实现导航守卫(路由守卫)

    路由跳转前做一些验证,比如登录验证,是网站中的普遍需求. 对此,vue-route 提供的 beforeRouteUpdate 可以方便地实现导航守卫(navigation-guards). 导航守卫 ...

  3. 一种基于http协议的敏感数据传输方案

    最近公司需要通过公网与其它平台完成接口对接,但是基于开发时间和其它因素的考虑,本次对接无法采用https协议实现.既然不能用https协议,那就退而求其次采用http协议吧! 那么问题来了!在对接的过 ...

  4. Django-- 多数据库联用

    django项目中使用多个数据库的方法, 多个数据库的联用 以及多数据库时数据导入导出的方法. 直接给出一种简单的方法吧,想了解更多的到官方教程,点击此处 给每个app都可以单独的设置一个数据库 se ...

  5. 关于ODP.NET连接数监控及相应的windbg分析提示

    1.关于ODP.NET的Windows计数器问题 使用微软的缺省驱动时,可以通过windows性能监视器很方便的监控数据库连接数,选择.NET Data Provider for Oracle/Sql ...

  6. bzoj:1661 [Usaco2006 Nov]Big Square 巨大正方形

    Description 农民 John 的牛参加了一次和农民 Bob 的牛的竞赛.他们在区域中画了一个N*N 的正方形点阵,两个农场的牛各自占据了一些点.当然不能有两头牛处于同一个点.农场的目标是用自 ...

  7. Vijos P1113 不高兴的津津【模拟】

    不高兴的津津 描述 津津上初中了.妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班.另外每周妈妈还会送她去学习朗诵.舞蹈和钢琴.但是津津如果一天上课超过八个小时就会 ...

  8. HDU2063-过山车-匈牙利算法

    过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  9. GO开发[四]:golang函数

    函数 1.声明语法:func 函数名 (参数列表) [(返回值列表)] {} 2.golang函数特点: a. 不支持重载,一个包不能有两个名字一样的函数 b. 函数是一等公民,函数也是一种类型,一个 ...

  10. ubuntu11.0静态IP地址配置

    1. 静态IP地址配置 配置文件路径:/etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet ...