友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

oracle从入门到精通(PDF格式)-第19章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




    

  两个表的并集,但不显示重复行。执行的时候要先排序再剔重,所以结果集是有序的。  

  union all  

  也是两个表的并集,而且显示重复行。  

  语法同上。  

  intersect  

  select employee_id;job_id from employees  

  intersect  

  select employee_id;job_id from job_history;  

    

  minus  

  select employee_id;job_id from employees  

  minus  

  select employee_id;job_id from job_history;  

    

  e…j=e…e 与j的交集;  

  j…e=j…j 与e的交集;  

    

  注:在 select 列表中的表达式必须有同样的数目和类型。  

    

    匹配 SELECT 语句  

    select employee_id;job_id;salary from employees  

    union   

    select employee_id;job_id;0      from job_history;     

    

  括号可以用拉修改序列的执行顺序。  

    



4。ORDER BY 子句:  



  只能在整个集合的最后出现;  

  可以按照第一个 SELECT 语句中的列名,别名或者位置号排序。    

      



                                    第 42 页,共 106 页 


…………………………………………………………Page 43……………………………………………………………

资源来自网络,仅供学习!                                                            Oracle 从入门到精通 



5。GROUP BY 子句的增强  



  CUBE 操作符的 GROUP BY   

  在 GROUP BY 子句中使用 ROLLUP 或者 CUBE 来产生分组小计;  

  ROLLUP 分组产生包括规则的分组结果和小计的结果的组合;  

  GROUP BY 'ROLLUP'(col_name_list)  

  ROLLUP:  

  a       ab    abc  

    

        abc  

    ab  ab  

  a a   a  

  all   all all  

    

  CUBE 分组产生包括 ROLLUP 产生的结果和交叉分组小计。  

  cube:  

  a ab  abc  

    

  a ab  abc  

  all   a   ab  

    b   ac  

    all bc  

        a  

        b  

        c  

        all  

    



6。GROUPING 函数  



  参数一定是在 CUBE 或 ROLLUP 里进行分组排序的字段或表达式之一。  

  通过 1 或0来判断结果集中的空值是由于本身列的值是空的,还是由于使用 CUBE或 ROLLUP 产 

  生的空值。  

  1 代表是由于分组产生的空值,没有参与分组。  

  0 代表是由于列本身产生的空值,参与了分组,但分组中没有包含它。  

  GROUPING SETS  

  可以使用 GROUPING SETS 在同一个语句中定义多个组集。  

  只需要访问一次基表。  

  不需要写很复杂的 UNION 语句。  

  GROUPING SETS 子句中组合的元素越多,语句的执行性能就越好。  

  group by GROUPING SETS((abc);(ab);(bc);(a);(b))   

  组合列:  

  是一个列的组合,在分组计算时被作为一个单元处理。  

    



                                    第 43 页,共 106 页 


…………………………………………………………Page 44……………………………………………………………

资源来自网络,仅供学习!                                                  Oracle 从入门到精通 



2。9 高级子查询  



1。   成对子查询:  



  行内视图的性能比成对子查询的性能高。  

相关子查询:  

  主查询的字段在子查询里做条件(特征)。  

  主查询先执行,取出第一条数据,把该数据传入子查询做比较,返回查询结果给主查询,主查 

  询根据这个结果再做查询  

  依次类推  

  直到主查询中没有可查询列为止。  

    

  EXISTS 操作符  

  EXISTS 操作符测试子查询的结果是否存在;  

  返回 TRUE 或 FALSE  

  查询机制:  

  如果一个子查询找到了结果:  

  在内部子查询中不在继续执行,条件被设为 TRUE  

  如果一个子查询没有找到结果:条件被设为 FALSE  

    

  select col_list from table_name tab_alias  

  where exists (select 'x' from table_name where col=tab_alias。col);  

  用的是相关子查询  

  NO EXISTS 操作符  

  和 NOT IN 相对应,速度要快,性能好。  

  UPDATE 中的相关子查询  

  update emp e  

  set department_name in(select d。department_name from departments d where  

  e。department_id=d。department_id);  

    

  delete 中的相关子查询  

    



2。层次查询  



  select 'level';column;expr from table 'where condition'  

  'start with'起点(自底向上/自顶向下)  

  'connect by prior + 主键/外键=外键/主键'//看你往哪个方向查  

  自顶向下 左边放主键,右边放外键  

  select employee_id;last_name;salary;job_id;manager_id  

  from employees  

  start with manager_id is null  

  connect by prior employee_id=manager_id;  

  自底向上 右边放主键,左边放外键  

  level(伪列)  

  层次的级别:不固定值。  



                               第 44 页,共 106 页 


…………………………………………………………Page 45……………………………………………………………

资源来自网络,仅供学习!                                                      Oracle 从入门到精通 



  使用 level 和 LPAD 层次化格式的显示  

  修剪分支  

    

  Oracle 9i 对 DML 和DDL 语句的扩展  

  多表插入的 INSERT 语句   

  insert 。。。。 select 语句可以被用来在单个 DML 语句中向多个表插入数据。  

  多表插入语句:  

  无条件 INSERT  

  条件 ALL INSERT  

  条件 FIRST INSERT  

  轮巡 INSERT   

    



二、Management:  



1。Oracle的构件和组件  



  instance 实例/例程  

  database 数据库  

  SGA  系统全局区  

  shared pool  共享池  

  library cache  库高速缓存区  

  data dictionary cache 字典高速缓存区  

  database buffer cache  数据库高速缓存区  

  redo log buffer 重做日志缓冲区  

  java pool     java 池  

  large pool   大池  

  PMON   进程监视进程  

  SMON   系统监视进程  

  DBWR  数据库写进程  

  LGWR  日志写进程  

  CKPT    检查点进程  

  data file  数据文件  

  control file  控制文件  

  redo log file  重做日志文件  

  parameter file  初始化参数文件  

  password file   口令文件  

  archived log file  归档日志文件  

  user process  用户进程  

  server process  服务进程  

  PGA   程序全局区  

  tablespace 表空间  



                                 第 45 页,共 106 页 


…………………………………………………………Page 46……………………………………………………………

资源来自网络,仅供学习!                                       Oracle 从入门到精通 



2。数据库的物理结构:  



1。控制文件  



2。   数据文件  



3。   重做日志文件  



4。   data file  数据文件:  



5。   作用:存放数据。  



6。   数据文件大小可以扩展。  



7。 tablespace 表空间:一个或多个数据文件的逻辑组成。  



 一个数据库最少有一个 system 表空间,一个表空间最少有一个数据文件。  



8。   redo log file  重做日志文件  



 重做日志:在数据库中发生的所有改变,改变的每一条信息都叫做一条重做日志信息。  

 存放重做日
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!