Oracle基础查询

查询表结构
desc emp;
查询一张表所有数据
select * from emp;
查询指定的字段,结果集合按照查询的字段顺序来显示数据
select ename,empno from emp;
去掉结果集中的重复行
select distinct job,deptno from emp;
条件查询,查询SMITH所在部门,工作。薪水(区分大小写)
select deptno,job,sal from emp where ename=‘SMITH’;
查询部门编号为10 和20的员工
select * from emp where deptno=10 or deptno=20;
薪水大于2000 小于2500
select * from emp where sal>2000 and sal<2500;
% 通配任意个字符
select * from emp where ename like 'K%';
_ 通配一个字符
select * from emp where ename like '__O%';
显示没有上司的员工
select * from emp where mgr is null;
查询SMITH的编号,年薪
select empno 编号,sal*12 年薪 from Emp where ename='SMITH';
查询所有的数据 ,按照薪水的高低排序
select * from emp order by sal desc;
从小到大 顺序排序
select * from emp order by sal asc;
统计所有员工编号,姓名,年薪 包括奖金
select empno 编号,ename 姓名,(sal+nvl(comm,0))*12 年薪 from Emp;
根据别名来排序,年薪
select empno 编号,ename 姓名,(sal+nvl(comm,0))*12 年薪 from Emp order by 年薪 desc;
查询出工资月薪最高的员工和最低的员工的编号,姓名 ,月薪
select empno,ename,sal from emp where sal = (select Max(sal) 月薪 from emp) or sal = (select Min(sal) 月薪 from emp );
计算员工的平均月薪
select avg(sal) from emp;
显示平均每个部门 每个岗位最高工资和平均工资
select avg(sal) 平均工资,max(sal) 最高工资,deptno 部门,job 岗位 from emp group by deptno,job;
显示平均工资低于2000的部门和他的平均工资
select avg(sal),deptno from emp group by deptno having avg(sal)<2000;
查询Smith的上级
自连接查询
select e1.mgr,e1.ename, e2.ename from emp e1,emp e2 where e1.mgr=e2.empno and e1.ename='SMITH';
如果子查询返回多个结果,则应该使用in 不能用=
select ename,job,sal,deptno from emp where job in (select job from emp where deptno=10);
显示工资比部门30的所有员工的工资高的员工的姓名,工资,部门号
select ename,sal,deptno from emp where sal> all(select sal from emp where deptno= 30);
--查询部分数据 伪列 rownum rowid 5---10
select ROWNUM,ename,job from(select ROWNUM r,ename,job from emp where ROWNUM<=10)where r>5;
笛卡尔集,两个表有关联条件
select e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno;
显示员工姓名,工资以及工资级别
select e.ename,e.sal,s.grade from emp e,salgrade s where e.sal between s.losal and s.hisal;
显示部门号为10的部门名,员工名和工资
select e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno and e.deptno=10;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值