oracle数据库92语法

–多表连接 *****
–92语法
–99语法

–笛卡尔积
select * from dept,emp;

–等值连接 如果使用多个表相同的字段,注意指明字段的出处 ,等值连接的时候两个表中的字段类型必须相同,字段名可以不同
– 查询所有员工的信息以及所在部门的信息
–数据:员工信息,部门信息
–数据的来源:emp,dept
select empno,ename,dept.deptno,dname from emp,dept where emp.deptno=dept.deptno;
select empno,ename,e.deptno,dname from emp e,dept d where e.deptno=d.deptno; --别名

–找出30部门的员工名称及部门名称
select ename,dname from emp e,dept d where e.deptno=d.deptno and e.deptno=30; --先连接后判断
select ename from emp where deptno=30;
select dname from dept where deptno=30;
select * from (select ename from emp where deptno=30),(select dname from dept where deptno=30);–先判断后连接

–非等值连接
– 2500 所在的工资等级是多少
select * from salgrade where 2500 between losal and hisal;
–查询员工姓名,工资及等级
select ename,sal,grade from emp,salgrade where sal between losal and hisal;

– 10和30部门的员工信息,部门信息以及工资等级
select ename,sal,grade from emp,salgrade where sal between losal and hisal and deptno !=20;
select ename, sal, grade,emp.deptno,dname
from emp, salgrade, dept
where sal between losal and hisal
and emp.deptno = dept.deptno
and emp.deptno != 20;

–外连接 主表:所有的数据都能显示,在连接条件上在主表对面的表上添加(+)
–左外连接 观察主表在from emp,dept在逗号的左边就是左外连接
–右外连接 观察主表在from emp,dept在逗号的左边就是右外连接
–所有部门及其员工信息
select * from emp,dept where dept.deptno=emp.deptno(+);

–自连接
– 找出有上级的员工的名称和对应的上级名称
–数据来源:员工表emp e1和上级表emp e2
select e1.ename,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno;
– 找出所有的员工的名称和对应的上级名称
select e1.ename,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno(+);

–找出 所有部门的员工数 及部门名称
–找出 所有部门的员工数和部门 编号
select count(1),deptno from emp group by deptno;
select d.deptno, num
from dept d, (select count(1) num, deptno from emp group by deptno) e
where d.deptno = e.deptno(+);

select dname, nvl(num,0)
from dept d, (select count(1) num, deptno from emp group by deptno) e
where d.deptno = e.deptno(+);

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值