• oracle数据库的高级查询方法 多表联合查询


      oracle查询

        一,简单查询

          order by 1,2

            select t.sno, t.sname, t.ssex from STUDENT t order by 1,2,3

          group by 增强版

            SELECT p.toma, p.ptype, SUM(p.lastcou) FROM product p GROUP BY rollup(p.toma, p.ptype)

        二,高级查询(多表连接查询)

          笛卡尔积的概念:

            所谓笛卡尔积,通俗点说就是指包含两个集合中任意取出两个元素构成的组合的集合。假设R中有元组M个,S中有元组N个,则R和S的笛卡

            尔积中包含的元组数量就是M*N。这个规则可以向多个关系扩展。

          分类:

            内连接:select s.sname, r.cno,r.degree from student s, score r where s.sno=r.sno

            等值连接------用=的连接

            不等值连接

              外连接(啥也不写就是内连接, 直接写两个表名)---左外连接, 右外连接

                select * from student s left outer join course c on s.sno=c.cno

                (+)修饰符的使用

                  select s.sname, r.cno,r.degree from student s, score r where s.sno=r.sno(+)----等同于外连接的结果

                数据字典的使用

              自连接(自己骗一下自己):  select * from z_course c1, z_course c2 where c1.cour_code=c2.p_cour_code 

              层次查询
                CONNECT BY PRIOR 连接条件 START WITH 开始条件

                select * from Z_COURSE t connect by prior t.cour_code=t.p_cour_code start with t.cour_name like '%国际%'

                伪列:

                  level: 加上一列显示级别

                  select t.*, level from Z_COURSE t connect by prior t.cour_code=t.p_cour_code start with t.cour_name like '%国际%'

                  rownum:加上一列行号

                    select s.*, rownum from student s 

                    使用rownum分页

                      select * from (select s.*, rownum rn from student s where rownum<=10) t where t.rn>5

              子查询(sql语句的执行顺序)

                单行子查询: 可以用=号

                多行子查询:不可以用=号,可以用 in

                exists关键字的使用: 是否存在

                  select * from student t where exists(select 1 from student t1 where t1.sno=105)

  • 相关阅读:
    C# 关于委托和事件的妙文:通过一个例子详细介绍委托和事件的作用;Observer模式简介
    Path.Combine (合并两个路径字符串)方法的一些使用细节
    taskkill /f /im的应用
    powersheel远程连接方法操作
    Centos 定时任务发送smtp邮件
    Centos 发送smtp邮件
    在 Windows 上安装Rabbit MQ 指南
    Quartz.NET总结(五)基于Quartz.net 的开源任务管理平台
    Quartz.NET总结(四)Quartz 远程调度
    Quartz.NET总结(三)Quartz 配置
  • 原文地址:https://www.cnblogs.com/bekeyuan123/p/7019930.html
Copyright © 2020-2023  润新知