数据查询部分测验
每题6分,共100分,时间90分钟。
要求拷贝命令截图。完成后,改文件名为:学号+姓名+数据查询测验,提交。
目标:掌握在数据表上进行select查询操作,包括子查询、集合操作、连接查询等。
准备:接收文件b.dmp,导入数据库数据文件,此次操作均在该数据库上完成。
首先,建立运行环境,本例中数据表定义如下:
表一:IT_EMPLOYEES
它由编号EMPLOYEE_ID、名FIRST_NAME、姓LAST_NAME、邮箱EMAIL、电话号码PHONE_NUMBER、部门编号JOB_ID、薪资SALARY、部门经理编号MANAGER_ID和雇员生日BIRTHDATE九个属性组成。
create table IT_EMPLOYEES
(
EMPLOYEE_ID NUMBER(6) not null unique,
FIRST_NAME V ARCHAR2(20),
LAST_NAME VARCHAR2(25) not null,
EMAIL V ARCHAR2(25),
PHONE_NUMBER V ARCHAR(20),
JOB_ID V ARCHAR2(10),
SALARY NUMBER(8,2),
MANAGER_ID NUMBER(6),
BIRTHDA TE DATE;
);
实验数据可自己定义,
如:000001 四李aa@https://www.wendangku.net/doc/769515937.html, 11111111 001 2000 000000,01-1月-1980
表二:COUNTRIES
它由国家编号COUNTRY_ID、国名COUNTRY_NAME、REGION_ID
create table COUNTRIES
(
COUNTRY_ID NUMBER(6) not null unique,
COUNTRY_NAME V ARCHAR2(20) not null,
REGION_ID NUMBER(6)
);
实验数据可自己定义,
如3001 china 3,1001 france 1,2001 mexico 2,4001 egypt 4
表三:EMPLOYEES (结构与IT_EMPLOYEES相似)
它由编号EMPLOYEE_ID、名FIRST_NAME、姓LAST_NAME、邮箱EMAIL、电话号码PHONE_NUMBER、部门编号DEPARTMENT_ID、薪资SALARY和部门经理编号MANAGER_ID 八个属性组成。
表四:部门表DEPARTMENT
部门编号DEPARTMENT_ID,部门名DEPARTMENT_NAME,地区号location_id
【1】对employees表中薪金的调整,所有人员的薪金增加10%:
【2】在EMPLOYEES表中包含一个DEPARTMENT_ID列。检索该表中出现的所有部门。去掉重复列。
【3】编写一个查询,判断所有FIRST_NAME列以"B"开头的雇员:
【4】查询出所有属于IT部门(DEPARTMENT_ID=60),并且薪金值大于2000的雇员。
【5】查询不同部门(部门号为60和30)的雇员信息:
【6】查询工资高于2000的员工信息,按照薪金从低到高的升序排列
【7】列出平均薪金值大于10000的部门统计信息,包括部门号、平均工资、工资总和、最高工资、部门人数
【8】显示工作部门为Shipping的雇员信息:
【9】查询雇员信息,以及雇员所对应的部门信息:
【10】使用内连接查询工作编号为ad_asst的雇员信息和雇员所在的部门名称:
【11】查询雇员和所在部门经理的信息。
【12】查询所有LAST NAME列以C或者S开头的雇员信息,以及所有LAST_NAME列以S或者T开头的雇员信息。结果是所有LAST_NAME列以C或者S或者T开头的雇员信息均会被列出。
【13】修改【12】的查询语句,使用INTERSECT集合操作,在查询结果集中保留LAST_NAME 以S开头的雇员:
【14】使用运算符MINUS求两个要查询的差集。第一个查询返回所有LAST_NAME以C或S 开头的雇员,第二个查询返回所有LAST_NAME以S和T开头的雇员。两个查询结果集的MINUS 操作将返回LAST_NAME以C开头的那些雇员。
【15】使用子查询查看所有部门在某一地区(1700)的雇员信息:
【16】查询EMPLOYEES表,将薪金大于本职位平均薪金的雇员信息显示出来:[10分]