oracle表复杂查询--多表查询

多表查询是指基于两个和两个以上的表或是视图的查询,在实际应用中,查询单个表可能不能满足你的要求,如显示sales部门位置和其员工的姓名,这种情况下需要使用到dept表和emp表。

 

 
 

select * from emp,deptno;

从dept表中选出第一条记录,然后与emp表的每一条记录进行匹配,14*5=56。

 

 

 

 

 

 

?       显示雇员名、雇员工资及所在部门的名字【笛卡尔集】

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

【笛卡尔集】在多表查询的时候,如果不带任何条件,则会出现笛卡尔集,怎样避免笛卡尔集?规定:多表查询的条件是至少不能少于表的个数-1

?       如何显示部门号为10的部门名、员工名和工资

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

?       显示各个员工的姓名、工资,及其工资的级别

select ename,sal,salgrade.grade from emp,salgrade where emp.sal between salgrade.losal and salgrade.hisal;

在多表查询的时候,需不需要加表名:如果两个表或多个表的列同名,则需要加表名区分,如果不同名,则可以不加,建议都加上表名,可读性较好。

注意:建议大家,在进行多表查询的时候,使用别名,这样方便。

扩展要求:

?       显示雇员名、雇员工资及所在部门的名字,并按部门排序。

select ename,sal,dept.dname from emp,dept where emp.deptno=dept.deptno order by dept.dname;

 

转载于:https://www.cnblogs.com/fanweisheng/p/11113687.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值