`
百合不是茶
  • 浏览: 357731 次
社区版块
存档分类
最新评论

sql的复杂查询使用案列与技巧

阅读更多

 

本片博客使用的数据库表是oracle中的scott用户表;

 

  

    -------------------  自然连接查询

          查询 smith 的上司(两种方法)

  

----查询SMITH的上司
    select ename from emp where empno=(select mgr from emp where ename  = 'SMITH');
    
    --自连接查询
      select e1.ename, e1.mgr,e2.ename from emp e1 ,emp e2 where e1.mgr= e2.empno and E1.ename = 'SMITH';

 

 

 

--------------------------in的使用

  ---查询与部门10工作相同的员工的信息

       分组查询

select ename,job,sal,deptno from emp where job in(select job from emp where deptno = 10);

  

 

-----------------------分组函数和all的查询

--查找比部门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);

 

 --------------------函数和any

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

          

  ----使用any或者
        select ename,sal,deptno from emp where sal> any ( select sal from emp where deptno = 30);
       
---使用函数
       select ename,sal,deptno from emp where sal>( select min(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;


interseect取交集查询
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
2
分享到:
评论

相关推荐

    SQL Sever数据库操作全部代码

    在SQL Server数据库操作中,掌握全面的代码技巧是至关重要的。SQL Server是一种广泛使用的数据库管理系统,尤其在企业级应用中占据重要地位。本资源包含了作者亲自编写的SQL Sever数据库操作的全套代码,旨在帮助...

    c#入门到精通项目开发案列以及视频讲解.rar

    随着对C#的深入,你将接触到更复杂的特性和技术,例如委托、事件、Lambda表达式、匿名方法、异步编程、LINQ(Language Integrated Query,语言集成查询)等。这些特性在实际项目中有着广泛的应用,如在处理大量数据...

    《Android高级开发技术案例教程》PDF

    数据存储方面,书中可能讲解了SQLite数据库的使用,如何设计高效的数据模型和SQL查询,以及如何使用Room库进行更简便的数据库操作。同时,可能会涉及到使用SharedPreferences进行轻量级数据存储,以及使用Gson或...

    springboot+mybatis 整合Demo下载

    MyBatis提供了动态SQL的功能,使得在处理复杂的查询时更加灵活。 3. **整合SpringBoot与MyBatis**: - **添加依赖**:在`pom.xml`文件中,需要引入SpringBoot的starter-web和MyBatis的依赖,以及数据库驱动。 - *...

    Java课程设计案例精编源代码

    9. **数据库操作**:Java可以连接并操作数据库,如使用JDBC API连接MySQL、Oracle等数据库,执行SQL查询,处理结果集。 10. **设计模式**:优秀的代码往往遵循一定的设计原则和模式,如单例模式、工厂模式、观察者...

Global site tag (gtag.js) - Google Analytics