zoukankan      html  css  js  c++  java
  • 【Oracle】子查询、伪列、分页查询、表连接

    子查询、伪列、分页查询、表连接

    ①. 子查询
    子查询可代替表、属性值
    	
    ①子查询结果是1行1列
    	例:查询工资最高的员工信息
    	select * from employees where salary = (select max(salary) from employees);
    ②子查询结果是n行1列
    	例:查询和“king”一个姓的并且在同一部门的员工的信息
    	select * from employees where department_id in(select department_id from employees where last_name = ‘king’);
    ③子查询结果是n行n列
    	例:查询工资前五位到前十位之间的员工信息
    select * from (select employee_id, first_name, last_name,rownum as rn from (select * from employees order by salary desc)) where rn >= 5 and rn <= 10
    ②. 伪列、分页查询
    伪列:
    rowid			行的物理地址,不存在于任何表,可查询
    rownum			对查询满足条件的结果数据进行编号(从1开始)
    用法:
     		select rowid,rownum,其他字段 from 表;
    分页:
    	利用子查询,将查询所有表数据再加上序列(rownum)作为一个临时表
    
    例如:
    ①查询薪资从第五到第十位的员工信息
    	**先按工资降序排序,在加上序号字段形成临时表
    select * from (select employees_id, first_name, last_name, salary, rownum as rn from (select * from employees order by salary desc)) where rn >= 5 and rn <= 10
    
    ②对表加序号
      select employees.*, rownum as rn from employees;
    ③. 表连接
    将多张表连接为一张表进行处理(放在from后)
    
    1.内连接
    	关键词:…(inner)join … on  		 inner可以省略
    	语法:表1 (inner)join 表2 on 表1.xxx = 表2.xxx
    特点:①合并表1存在且表2也与之对应存在的数据②不保留表1存在且在表2中对应不存在的元组数据(与外连接对比)
    2.外连接
    	①左外连
    		关键词:left (outer) join … on    	outer可以省略
    		语法:表1 left join 表2 on 表1.xxx = 表2.xxx
    		特点:合并表1和表2,并且会保留表1存在且表2对应不存在的元组,并对其补充为空
    	②右外连
    		语法:表1 right join 表2 on 条件
    3.扩展
    	如果有两张以上的表进行连接时,先连接两个后成为一个表,再连接下一个,依次连接
    
  • 相关阅读:
    Spring发展历程总结
    杂说
    说说Java生态圈的那些事儿
    你知道什么是Grunt么?
    jquery常见知识点 总结
    优化JavaScripe 提升首页加载速度的几种方案解析
    final static 深度解析
    JS的预编译和执行顺序 详析(及全局与局部变量)
    swipe.js 2.0 轻量级框架实现mobile web 左右滑动
    JS中跨域和沙箱的解析
  • 原文地址:https://www.cnblogs.com/jwnming/p/13634697.html
Copyright © 2011-2022 走看看