=================================================
1、掌握复杂查询(连接、子查询),完成以下题目:
a、 显示姓名中倒数第三个字母为I的雇员的姓名、部门号。
b、 按照工作种类进行分组,显示各个组内工资的最高(Maximum)、最低(Minimum)、合计(Sum)和平均值(Average),平均工资四舍五入到小数点后两位。
c、 查询工资比Smith高的职工人数
d、 查询出和Smith同一部门,并且职务为“CLERK”的职工
e、 在部门号30的所有雇员中,查询工资最高的前3名职工
f、 查询出部门平均工资超过Smith所在部门平均工资的部门名称
2、 使用IN实现多行子查询,完成以下题目:
a、 在部门号为10,20,30的部门中查询出工资超过3000的职工
b、 在工资最高的前3名职工所在部门中查询工资最低的职工
3、 多列子查询,完成以下题目:
a、 查询出和Smith同部门、职务也相同的职工
4、显示雇员姓名、年限工资(以New Salary作为列标题)。年限工资的计算方法:从受雇日期起至今满10年的,工资增加10%;满20年的,工资增加20%,满30年的,工资增加30%;其他的不变。
==============================
1、登录到SQL*Plus,初始用户名为:scott,口令为tiger
2、分别显示雇员表emp、部门表dept,salgrade表结构。
以下题目将使用用户scott下的雇员表emp,请自行参考该表格结构
3、用一个逗号和一个空格将雇员姓名和雇员工作连接后作为一个整体输出,显示的列标题为Employeeand Title。
4、创建一个查询显示每个雇员的雇员编号、姓名、工作、受雇日期。并且要求将雇员受雇日期显示格式为“年-月-日”,且日期显示需要去掉前导空格,例如“2018-3-1”。再用命令将该SQL语句保存成文件exp1.sql,并用命令执行该脚本文件。
5、创建一个查询显示工资大于2850美元的雇员的姓名及工资。要求工资显示格式如下: $2000。再用命令将该查询保存成脚本文件exp2.sql,并执行该文件。
6、显示受雇时间在1981年2月20日到1981年5月1日之间的并且工资大于1500美元的雇员的姓名、受雇时间、转正时间(受雇后的6个月即转正时间)和工资,列标题分别显示为Employee、Hire Date、CorrectTime和Monthly Salary。(注意有些列名中间有空格)
7、显示部门号为10和30的所有雇员的姓名、工资、奖金及实际收入(工资奖金之和即为实际收入),并以工资升序、奖金降序排列。
8、显示姓名中两次出现字母L,并且在30部门工作或者有上级管理者的雇员的姓名、部门编号、管理者编号。
9、按照工作种类(job)进行分组,显示各个组内工资的最高(Maximum)、最低(Minimum)、合计(Sum)和平均值(Average),平均工资四舍五入到小数点后两位。
10、显示雇员的编号、姓名、工资以及工资增长15%后的整数值(整数值要求四舍五入后的值,并以New Salary作为列标题)。
11、查询每个经理管理的员工人数。要求只显示管理人数超过2个人(含2人)的经理编号和管理的员工人数(列名为EmpNumber)。
12、查询一个列,其中包含雇员姓名和以*为指示符代表的工资数额(该列标题为EMPLOYEE_AND_THEIR_SALARIES)。工资数额的一个指示符*代表一百美元。查询结果以“雇员名***”的格式显示,并以工资数额降序排列。
如果SMITH工资为360美元,FORD工资为300美元,则显示如下:
EMPLOYEE_AND_THEIR_SALARIES |
SMITH**** |
FORD*** |
============================================