ORACLE的常用高级查询

子查询:单行子查询、多行子查询、多列子查询

      子查询在WHERE子句中:

             

             

           

子查询在HAVING子句中:

    

子查询在FROM部分:

子查询在SELECT中:


分页查询:

            SELECT * FROM (

                   SELECT a.* , ROWNUM  rw  

                         FROM(

                                SQL语句(根据查询条件写出来的SQL语句){需要我们写的sql}

                               ) a

                             WHERE ROWNUM < 结束行号 )

                    WHERE  rw >   开始行号   


DECODE函数:




排序函数:

ROW_NUMBER:

 

RANK:


DENSE_RANK:


高级分组函数:


ROLLUP:

           对于ROLLUP的列从右到左以一次少一列的方式进行分组直到所有列都去掉后的分组(也就是全表分组)

          对于n个参数的的ROLLUP,有n+1次分组


CUBE:

         对于n个参数的cube,有2的n次方次分组

         CUBE(a , b ,c)对(a ,b ,c)、(a,b)、(a,c)、(b,c)、(a)、(b)(c)依次进行GROUP BY,最后再对全表进行GROUP BY;


GROUPING SETS:

         使用GROUP BY GROUPING SETS(a,b,c),则对(a),(b),(c)进行GROUP BY


视图:简化复杂操作、限制数据访问(隐藏数据)、虚表,虚拟的一张表

                     CREATE   [OR REPLACE]   VIEW  view_name  AS   select查询语句

                     对视图的基本操作和对表的基本操作一样。


序列:

     

索引:


     在做查询时ORACLE会自动引入索引,加快查询时速度,提升查询效率!

     在对索引列进行修改后需要重构索引:

     ALTER  INDEX  index_name  REBUILD





猜你喜欢

转载自blog.csdn.net/wade_2hou/article/details/61195830