Oracle三表查询

  • Post author:
  • Post category:其他


--SQL92&99实现三表联合查询
  --创建city表,使用图形操作即可
  --给city添加测试数据
    insert into city values(1,'商丘','历史文明古都');
    insert into city values(2,'邯郸','历史文明古都');
    insert into city values(3,'洛阳','历史文明古都');
    insert into city values(4,'开封','历史文明古都');
    insert into dept values(60,'LOL学院','6');
    --将部门表中的loc字段设置为城市表的城市编号
    update dept set loc='1' where deptno =70;
    update dept set loc='2' where deptno =40;
    update dept set loc='3' where deptno =30;
    update dept set loc='4' where deptno =20;
    update dept set loc='5' where deptno =10;

select * from city;
select * from emp;
select * from dept;
--完成三表联合查询
  --SQL92实现:查询员工信息及部门名称及所在城市名称
  --特点 易语书写,难于阅读
  --缺点:结构不清晰
  --用法:
        --select 内容
        -- from 表名1,表名2。。
        --where 条件(连接条件,普通筛选条件,where子句关键字)
        --group by分组字段
        --having 多行函数
        --order by排序字段
  
  select * 
  from emp e,city c,dept d 
  where (e.deptno=d.deptno and d.loc=c.cid and sal>2000) or(e.deptno=d.deptno and d.loc=c.cid and comm is not null)
  order by sal;
  --SQL99实现:查询员工信息及部门名称及所在城市名称
    --特点:难于书写,易于阅读
    --使用:
      --select 内容 from 表名1
      --inner join表名2
      --on 连接条件
      --inner join表名3
      --on 连接条件
      --where 普通条件
      --group by 分组
      --having
      --order by
      
  select * from emp e 
  inner join dept d 
  on e.deptno=d.deptno 
  inner join city c 
  on d.loc=c.cid
  where e.sal>2000 or e.comm is not null
  order by sal;



版权声明:本文为weixin_43421717原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。