当前位置:首页 > 开发 > 数据库 > 正文

表查询常用命令高级查询方法(二)

发表于: 2014-11-02   作者:百合不是茶   来源:转载   浏览:
摘要: ----------------------------------------------------分组查询 group by    having   --平均工资和最高工资   select avg(sal)平均工资,max(sal)  from emp ;  --每个部门的平均工资和最高工资

----------------------------------------------------分组查询 group by    having
 
 --平均工资和最高工资
   select avg(sal)平均工资,max(sal)  from emp ;
 
 --每个部门的平均工资和最高工资
   --分组的条件一定要先查询出来
 
  select deptno, avg(sal),max(sal) from emp group by deptno;
--每个岗位的平均工资和最低工资
    select job 岗位, avg(sal) 平均工资,min(sal) 最低工资,max(sal) 最高工资 from  emp  group by job;

--显示平均工资小于2000的部门和它的平均数
 ---  分组之前的条件是where  ,分组之后的条件是having

select avg(sal) ,deptno from emp group by deptno having avg(sal)<2000;
   
    
  
------------------------------------------------多表查询----------------------------
--查询部门表
select * from dept;

--显示员工名,员工工资,及所在部门的名字
  --笛卡尔集 ,两个表的关联条件
select e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno;

      
--查询部门号为10的部门名,员工名,工资

  select d.dname,e.ename,e.sal from emp e,dept d where e.deptno=10;

--显示员工资,员工名字,工资级别 scott下的SALGRADE表中的grade

    select e.sal ,e.ename,s.grade from emp e,salgrade s where e.sal between s.losal and s.hisal;
 
2014,09,22


-------------------------------------内连接
----查询SMITH的上司
   select mgr,ename from emp where ename ='SMITH';
  
---查询与部门10工作相同的员工的信息
select ename ,deptno from emp where job in(select  job from emp where deptno =10);

--查找比部门30工资高的所有员工的信息

  
    
   select ename ,sal ,deptno from emp where sal> (select max(sal) from emp where deptno=30);
        ---使用all与结果集比较
 select ename ,sal ,deptno from emp where sal> all (select sal  from emp where deptno=30);

--查找比部门30任意的工资高的所有员工的信息   
  ----使用any或者
  select ename ,sal ,deptno from emp where sal> any (select sal  from emp where deptno=30);

      
      
      
      
      
------------------------------------------伪列查询  rownum  rowid
---查询部分数据
  -- 查询第五到第十条的数据
 
 select ROWNUM ename ,job from (select ROWNUM r ,ename,job from emp where ROWNUM<=10) where r>5;
 
  -----MYsql + sqlite分页查询的方法
   
     -- select * from emp limit 1,10;
   
 
 
 
 
------------------合并查询操作符 union ,unuion all,intersect,minus

union ,union all合并表的查询


select * from emp where job ='SALESMAN';
select * from emp where sal>1500;


union的合并查询  合并并且去除重复的行 
select * from emp where job ='SALESMAN'union select * from emp where sal>1500;


union all的合并查询  取所有的数据
  select * from emp where job ='SALESMAN'union all select * from emp where sal>1500;

 

intersect取交集查询
select * from emp where job ='SALESMAN' intersect select * from emp where sal>1500;

 

minus查询出来的结果是只显示在第一个结果集中存在 而不在第二个结果集重负存在的
select * from emp where job ='SALESMAN' minus select * from emp where sal>1500;

 

 

 

表查询常用命令高级查询方法(二)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
对于高级查询方法,主要分为五大类,详情下图: 【Distinct】: 避免重复值出现,也就是如果有两个
什么是LinQ To Objects? 用一个例子解释,首先定义一个数组,查询数组中的最大值: int[] arr = {
一,Lambda表达式 lambda表达式刚开始用的时候还很不习惯,因为以前用惯了那种先foreach,再逐个判
$mod取模运算 查询index对5取模运算等于1的数据。 $not $not是元条件句,即可以用在任何其他条件之
欢迎转载,转载请指明出处http://blog.csdn.net/hncsy403,谢谢 其中需要的需求如下 当到了第二页
欢迎转载,转载请指明出处http://blog.csdn.net/hncsy403,谢谢 其中需要的需求如下 当到了第二页
1.条件运算符 2.$all 匹配所有 3.$exists 判断字段是否存在 4.NUll 值处理 5.$mod 取模处理 6.$ne
问题产生背景: 项目当中有个表数据量很大,超过几千万的数据存储,数据如果存储在单表上,查询、插
使用LINQ时有两种查询语法:查询语法和方法语法 查询语法:一种类似 SQL 语法的查询方式 方法语法:
继续诉说鹊桥仙与牛郎织女的故事,有没有期待很久。 涉及两张表的查询虽不是未解之谜,但之前的方法
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号