# Oracle基础——简单查询练习(一)

练习基于Oracle数据库中SCOTT用户下的emp表

  1. 查询scott用户下的所有表
select * from tabs;
  1. 查询雇员表中的全部信息
select * from emp;
  1. 查询雇员编号,姓名,工作,工资。
select empno,ename,job,sal from emp;
  1. 查询雇员编号,姓名,工作,工资,列表标题需中文显示。
SELECT empno "雇员编号",ename "雇员姓名" ,job "工作",sal "工资" from emp;
  1. 查询雇员工作种类。
select distinct job from emp;
  1. 查询所有雇员编号,姓名,工作.按以下格式显示:编号:7369-姓名:SMITH-工作:CLERK (返回一个列)
select  '编号:' || empno || '-姓名:' || ename || '-工作:' || job as 详情 from emp;
  1. 查询雇员编号,姓名,工作,年薪
select empno,ename,job,(sal + nvl(comm,0))*12 YearlySalary from emp;
  1. 查询工资大于1500的雇员所有信息
select * from emp where sal >1500;
  1. 查询可以得到奖金的雇员的名字与奖金
select ename,comm from emp where NVL(comm,0)>0;

select ename,comm from emp where DECODE(comm,null,0,comm) > 0;
  1. 查询工资大于1500或可以得到奖金的雇员
select ename from emp where sal > 1500 or nvl(comm,0) > 0;

select ename from emp where sal > 1500 or DECODE(comm,null,0,comm) > 0;
  1. 查询工资大于1500并且可以领取奖金的雇员
select ename from emp where sal > 1500 and nvl(comm,0) > 0;

select ename from emp where sal > 1500 and DECODE(comm,null,0,comm) > 0;
  1. 查询工资不大于1500或者不可以领取奖金的雇员
select ename from emp where sal <= 1500 or nvl(comm,0) = 0;
  1. 查询工资在1500到3000的所有雇员信息
select * from emp where sal >=1500 and sal <= 3000;
  1. 查询系统当前时间
select sysdate from dual;
  1. 查询在1981年雇用的员工信息
select * from emp where hiredate like '%81%';

select * from emp where to_char(hiredate,'YYYY') = '1981';

select * from emp where hiredate <= to_date('1981-12-31','YYYY-mm-dd') and hiredate >= to_date('1981-01-01','YYYY-mm-dd');

select * from emp where hiredate between to_date('1981-01-01','YYYY-mm-dd') and to_date('1981-12-31','YYYY-mm-dd');
  1. 查询雇员姓名中第三个字母为”A”的雇员信息
select * from emp where ename like '__A%';
  1. 查询雇员编号为7369的雇员信息
select  * from emp where empno = '7369';
  1. 查询雇员编号不为7369的雇员信息
select  * from emp where empno != '7369';

select  * from emp where empno <> '7369';
  1. 查询编号是7369,7900的雇员信息
select * from emp where empno in (7369,7900);
  1. 查询编号不是7369,7900的雇员信息
select * from emp where empno not in (7369,7900);
  1. 查询雇员信息,按工资由低到高排序
select * from emp order by sal;

select * from emp order by sal asc;
  1. 查询雇员信息,按工资由高到低排序
select * from emp order by sal desc;
  1. 请查询没有领导的员工名和职位
select ename,job from emp where mgr is null;
  1. 查询有领导的员工名和职位
select ename,job from emp where mgr is not null;
  1. 查询所有员工名、职位以及领导名
select e1.ename,e1.job,e2.ename from emp e1,emp e2 where e1.mgr = e2.empno(+);
  1. 查询部门30中的所有员工信息
select * from emp where deptno = 30;
  1. 列出所有办事员(CLERK)的姓名,编号和部门编号(按部门编号升序排列)
select ename,empno,deptno from emp where job = 'CLERK' order by deptno;
  1. 找出佣金高于薪金的员工
select * from emp where nvl(comm,0) > sal;
  1. 找出佣金低于薪金的40%的员工信息
select * from emp where nvl(comm,0) < sal*0.4;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值