Oracle 数据库基础练习
来源:互联网 发布:反映网络暴力的美剧 编辑:程序博客网 时间:2024/05/19 01:09
select * from emp where deptno=30;
2 列出职位为(MANAGER)的员工的编号,姓名
select ename,empno from emp where job='MANAGER'
3 找出奖金高于工资的员工
select ename from emp where comm>sal;
4 找出每个员工奖金和工资的总和
select ename,sal+ nvl(comm,0) total from emp;
select ename,nvl2(comm,sal+comm,sal) total from emp;
5 找出部门 10 中的经理(MANAGER)和部门 20 中的普通员工(CLERK)
select * from emp where (deptno=10 and job='MANAGER') or (deptno=20 and job='CLERK');
6 找出部门 10 中既不是经理也不是普通员工,而且工资大于等于 2000 的员工
select ename from emp where (deptno=10 and sal>2000)and job!='MANAGER' and job!='CLERK' ;
select ename from emp where (deptno=10 and sal>2000)and job not in('MANAGER','CLERK') ;
7 找出有奖金的员工的不同工作
select distinct job from emp where comm>0 and comm is not null;
8 找出没有奖金或者奖金低于 500 的员工
select ename from emp where comm<500 or comm is null or comm=0;
9 显示雇员姓名,根据其服务年限,将最老的雇员排在最前面
select ename,to_char(hiredate,'yyyy-mm-dd') from emp order by to_char(hiredate,'yyyy-mm-dd');
select ename,hiredate from emp order by hiredate
***************************************************************************************************************
--1 找出每个月倒数第三天受雇的员工(如:2009-5-29)
select ename from emp where hiredate=last_day(hiredate)-2;
--2 找出 25 年前雇的员工
select ename, to_char(hiredate,'yyyy-mm-dd') from emp hiredate<add_months(sysdate,-25*12);
select ename, to_char(hiredate,'yyyy-mm-dd') from emp where months_between(sysdate,hiredate)>25*12;
select ename, to_char(hiredate,'yyyy-mm-dd') from emp where (to_char(sysdate,'yyyy')-to_char(hiredate,'yyyy')) >25;
--3 所有员工名字前加上 Dear ,并且名字首字母大写
select concat('Dear',initcap(ename)) from emp;
4 找出姓名为 5 个字母的员工
select ename from emp where length(ename)=5; -- ename like '_____';
5 找出姓名中不带 R 这个字母的员工
select ename from emp where ename not like '%R%';
6 显示所有员工的姓名的第一个字
select ename,substr(ename,0,1) from emp;
7 显示所有员工,按名字降序排列,若相同,则按工资升序排序
select ename from emp order by ename desc , sal asc;
8 假设一个月为 30 天,找出所有员工的日薪,不计小数
select ename,sal,round(sal/30,0) from emp;
9 找到 2 月份受雇的员工
select ename from emp where to_char(hiredate,'mm')='02';
10 列出员工加入公司的天数(四舍五入)
select ename,round(sysdate-hiredate) from emp;
11 分别用 case 和 decode 函数列出员工所在的部门,
deptno=10 显示'部门 10',
deptno=20 显示'部门 20'
deptno=30 显示'部门 30'
deptno=40 显示'部门 40'
否则为'其他部门'
select deptno,ename,sal,( case deptno when 10 then '部门 10' when 20 then '部门 20'
when 30 then '部门 30' when 40 then '部门 40' else '其他部门' end) dept from emp;
select deptno,ename,sal,decode(deptno,10,'部门 10',20,
'部门 20',30,'部门 30','其他部门') dept from emp;
- Oracle 数据库基础练习
- Oracle 数据库基础练习
- Oracle 数据库基础练习②
- oracle数据库基础查询sql练习
- ORACLE基础练习
- Oracle基础练习
- Oracle基础练习③
- Oracle查询基础练习
- 数据库基础练习
- oracle数据库总结练习
- Oracle数据库查询练习
- oracle数据库 练习一
- 【数据库】Oracle语句练习
- 【Oracle数据库】Oracle数据库基础
- ORACLE基础练习(一)
- oracle sql基础练习随笔
- oracle基础练习(一)
- Mysql数据库基础:安装-练习
- 城市天气和现在时间
- MySQL命令行中文编码完美解决方案
- POJ-2524 Ubiquitous Religions【并查集】
- git 分之管理---创建与合并分支
- 服务计算——配置go语言环境
- Oracle 数据库基础练习
- 几秒出现数据(图片)和时间
- struts2总结
- 自动轮播适配器
- RTU安卓开发
- 线段树+差分——【模板】树状数组2
- [深度学习]CNN的基础结构与核心思想
- MYSQL性能优化
- idea下被svn版本控制各类文件的颜色区分