oracle 数据库 练习题2
来源:互联网 发布:kettle java代码 编辑:程序博客网 时间:2024/06/05 06:45
一.使用scott/tiger用户下的emp表完成下列练习,表的结构说明如下
emp员工表 字段内容如下:
empno 员工号
ename 员工姓名
job 工作
mgr 上级编号
hiredate 受雇日期
sal 薪金
comm 佣金
deptno 部门编号
-- 选择部门30中的所有员工.SELECT *FROM EMPWHERE DEPTNO=30;-- 列出所有办事员(CLERK)的姓名,编号和部门编号.SELECT ENAME,MGR,DEPTNOFROM EMPWHERE "JOB" LIKE 'CLERK';-- 找出佣金高于薪金的员工.SELECT EMPNO,ENAMEFROM EMPWHERE COMM>SAL;-- 找出佣金高于薪金的60%的员工.SELECT EMPNO,ENAMEFROM EMPWHERE COMM>SAL*0.6;-- 找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料.SELECT *FROM EMPWHERE (DEPTNO=10 AND "JOB"='MANAGER') OR (DEPTNO=20 AND "JOB"='CLERK');-- 找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料.SELECT *FROM EMPWHERE (DEPTNO=10 AND "JOB"='MANAGER') OR (DEPTNO=20 AND "JOB"='CLERK') OR ("JOB"<>'MANAGER' AND "JOB"<>'CLERK' AND SAL>=2000);-- 找出收取佣金的员工的不同工作.SELECT DISTINCT JOBFROM EMPWHERE COMM IS NOT NULL-- 找出不收取佣金或收取的佣金低于100的员工.SELECT EMPNO,ENAME,"JOB"FROM EMPWHERE COMM IS NOT NULL AND COMM<100;-- 找出各月倒数第3天受雇的所有员工.SELECT EMPNO,ENAMEFROM EMPWHERE HIREDATE=(LAST_DAY(HIREDATE)+(INTERVAL '-2' DAY));-- 找出早于12年前受雇的员工.SELECT EMPNO,ENAMEFROM EMPWHERE HIREDATE<(trunc(sysdate)+(INTERVAL '-12' YEAR));-- 以首字母大写的方式显示所有员工的姓名.SELECT "INITCAP"(ENAME)FROM EMP-- 显示正好为5个字符的员工的姓名.SELECT ENAMEFROM EMPWHERE "LENGTH"(ENAME)=5;-- 显示不带有"R"的员工的姓名.SELECT ENAMEFROM EMPWHERE ENAME NOT LIKE '%R%';-- 显示所有员工姓名的前三个字符.SELECT substr(ENAME,1,3)FROM EMP;-- 显示所有员工的姓名,用a替换所有"A"SELECT TRANSLATE(ENAME,'A','a')FROM EMP;-- 显示满10年服务年限的员工的姓名和受雇日期.SELECT HIREDATE,ENAMEFROM EMPWHERE HIREDATE<=(trunc(sysdate)+(INTERVAL '-10' YEAR));-- 显示员工的详细资料,按姓名排序.SELECT *FROM EMPORDER BY ENAME ASC;-- 显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面.SELECT ENAME,HIREDATEFROM EMPORDER BY HIREDATE ASC;-- 显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序.SELECT ENAME,"JOB",SALFROM EMPORDER BY JOB DESC ,SAL;-- 显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面.SELECT ENAME,extract(YEAR from HIREDATE) YEAR,extract(MONTH from HIREDATE) MONTHFROM EMPORDER BY MONTH ASC,YEAR;-- 显示在一个月为30天的情况所有员工的日薪金,忽略余数.SELECT TRUNC(SAL/30)FROM EMP;-- 找出在(任何年份的)2月受聘的所有员工。SELECT ENAME,EMPNOFROM EMPWHERE extract(MONTH from HIREDATE)=2;-- 对于每个员工,显示其加入公司的天数.SELECT ROUND(sysdate-HIREDATE)FROM EMP;--显示姓名字段的任何位置包含"A"的所有员工的姓名. SELECT ENAMEFROM EMPWHERE ENAME LIKE '%A%';
总结:因为是很久之前学过的是SQL数据库,到现在还是有点生疏了,很多的函数和知识有点遗忘了,还是要查看的。
阅读全文
1 0
- oracle 数据库 练习题2
- Oracle数据库面试练习题
- Oracle数据库面试练习题
- oracle 数据库 练习题 3
- oracle 数据库 练习题4
- Oracle 数据库 练习题5
- Oracle 数据库 练习题6
- Oracle 数据库 练习题 T7
- Oracle 数据库 练习题 T8
- oracle数据库经典练习题及答案
- 史上最难oracle数据库练习题(附答案)
- oracle 练习题
- Oracle练习题
- oracle练习题
- Oracle练习题
- oracle 练习题
- oracle练习题
- oracle练习题
- hdu 1166 敌兵布阵【入门线段树 & 树状数组】
- 选择排序
- 《如何管理程序猿》
- bzoj3545[ONTAK2010]Peaks 线段树合并+离散
- LeetCode 599. Minimum Index Sum of Two Lists
- oracle 数据库 练习题2
- @font-face属性参数详细介绍
- 设计一个名为Account的类
- 2119数据结构实验之链表四:有序链表的归并
- 题目1007:奥运排序问题
- 手写svm识别人是否戴眼镜
- 619. Biggest Single Number--MAX()
- java定时任务调度工具之Timer
- spring boot hibernate 配置