文档章节

Oracle Sql高级编程 第1章 SQL 基础

fokYaland
 fokYaland
发布于 2015/06/04 17:27
字数 334
阅读 33
收藏 0
SELECT  语句
一个查询语句在逻辑上的处理方式可能会与实际物理处理过程不同。Oracle 基于查询成本的优化器用来产生实际的 执行计划

查询语句的逻辑处理顺序
5 Select <column list>
1 from
1.1 from  join   on
2 where
3 group by
having
6 order by

可以把处理过程中的每一个步骤想象为生成一个临时的数据集。随着每个处理步骤的进行,这个数据集被不断的操作。

FROM 
注意在处理联接语句时按下面的顺序进行:
交叉联接
内联接
外联接

一般,排序是查询过程中开销相当大的一个处理,尤其是当数据量很大时。

INSERT

INSERT   INTO   HR.JOBS (JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)   VALUES   ( 'IT_PM' , 'Project Manager'   , 5000 ,   11000 )

INSERT   INTO   SCOTT.BONUS
  (ENAME, JOB, SAL)
    SELECT   NAME , JOB, SAL *   0.1   FROM   SCOTT.EMP;

INSERT   ALL   WHEN   SUM_ORDERS <   10000   THEN   INTO   SMALL_CUSTOMERS   WHEN   SUM_ORDERS >=   10000   AND   SUM_ORDERS <   100000   THEN   INTO   MEDIUM_CUSTOMERS   ELSE   INTO   LARGE_CUSTOMERS
    SELECT   CUSTOMER_ID,   SUM ( ORDER_TOTAL) SUM_ORDERS
      FROM   OE.ORDERS
     GROUP   BY   CUSTOMER_ID;


UPDATE

UPDATE   EMPLOYEES   SET   SALARY = SALARY *   1.1   WHERE   DEPARTMENT_ID =   90 ;
UPDATE   EMPLOYEES
     SET   SALARY =
       (   SELECT   EMPLOYEES2.SALARY   FROM   EMPLOYEES2   WHERE   EMPLOYEES2.EMPLID =   1 )


MERGE

MERGE   INTO   DEPT60_BONUSES B
USING   ( SELECT   EMPLID , SALARY, DEPTID   FROM   EMPLOYEES   WHERE   DEPTID =   60   ) E
ON   (B.EMPLID = E.EMPLID)
WHEN   MATCHED   THEN
    UPDATE
       SET   B.BONUS_AMT = E.SALARY *   0.2
     WHERE   B.BONUS_AMT =   0   DELETE
     WHERE   ( E.SALARY >   7500 )
WHEN   NOT   MATCHED   THEN
    INSERT
    (B.EMPLID, B.BONUS_AMT)
    VALUES
    (E.EMPLID, E.SALARY *   0.1 )   WHERE
    (E.SALARY <   7500   );



本文转载自:http://blog.csdn.net/yanliang1/article/details/9206275

fokYaland
粉丝 4
博文 68
码字总数 3062
作品 0
东城
私信 提问
Oracle数据库学习的福利来啦——最佳入门经验分享

适用人群:从事数据库技术实施或售后工程师,准备参加OCA,OCP认证考试 通过学习对Oracle数据库的相关基础知识进行梳理,最终共同提炼出必须最先掌握的那部分知识,无论你是数据库开发、管理、...

让往事随风
2016/04/13
34
0
每周一书《Oracle 12 c PL(SQL)程序设计终极指南》

本周为大家送出的书是《Oracle 12 c PL(SQL)程序设计终极指南》,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著。 内容简介: 《Oracle 12c PL/SQL程序设计终极指南》志在打造PL/SQL领...

zting科技
2017/12/11
0
0
新书推荐 |《PostgreSQL实战》出版

很高兴《PostgreSQL实战》一书终于出版,本书大体上系统总结了笔者 PostgreSQL DBA 职业生涯的经验总结,本书的另一位作者张文升拥有丰富的PostgreSQL运维经验,目前就职于探探科技任首席Pos...

francs.tan
2018/08/12
0
0
《Oracle数据库基础与应用教程》一本Oracle入门教材

《Oracle数据库基础与应用教程》书全面讲述了Oracle数据库的日常管理工作内容。全书共14章,包含Oracle简介和安装、Oracle客户端、管理Oracle环境、Oracle体系结构、管理Oracle存储结构、SQL...

airfish2000
2016/08/30
0
0
那些年,我们读过的python!

Python是一个强大、快速、易学、友好、开源的脚本语言。Hacker必备的语言之一。 Python - 历史由来 Python 是一种开源的面向对象的脚本语言,它起源于1989年末,当时,CWI(阿姆斯特丹国家数...

生气的散人
2014/03/21
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

拥有有趣灵魂的程序员们,程序员访谈(一)

点击上方关注我们,让小care关爱你! 程序员群体一直都是低调多金的代表,而近段时间以来,程序员在网络上除了高薪之外,总是会和屌丝、苦逼、格子衫、没情趣...联系在一起。黑程序员的段子也...

ITCare
今天
23
0
Linux输入法fcitx的安装问题

Fcitx 总共要安装的包如下 fcitxfcitx-binfcitx-config-commonfcitx-config-gtk | fcitx-config-gtk2fcitx-datafcitx-frontend-allfcitx-frontend-gtk2fcitx-frontend-gtk3......

CHONGCHEN
今天
13
0
网络基础

前言: 最近整理一些以前的学习笔记(有部分缺失,会有些乱,日后再补)。 过去都是存储在本地,此次传到网络留待备用。 计算机网络的功能: 1.数据通信; 2.资源共享; 3.增加数据可靠性; 4....

迷失De挣扎
今天
13
0
spring boot升级到spring cloud

1、先升级spring boot 版本到2.1.3 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.1.3.RELEAS......

moon888
今天
26
0
从蓝鲸视角谈DevOps

DevOps源于Development和Operations的组合 常见的定义 DevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变...

嘉为科技
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部