一、 完成下列SQL语句
数据表: dept:
deptno(primary key), dname, loc emp:
empno(primary key), ename, job, mgr(references emp(empno)), sal, deptno(references dept(deptno))
1 列出emp表中各部门的部门号,最高工资,最低工资
2 列出emp表中各部门job为'CLERK'的员工的最低工资,最高工资
3 对于emp中最低工资小于1000的部门,列出job为'CLERK'的员工的部门号,最低工资,最高工资
4 根据部门号由高而低,工资由低而高列出每个员工的姓名,部门号,工资
5 写出对上题的另一解决方法
6 列出'张三'所在部门中每个员工的姓名与部门号
7 列出每个员工的姓名,工作,部门号,部门名
8 列出emp中工作为'CLERK'的员工的姓名,工作,部门号,部门名
9 对于emp中有管理者的员工,列出姓名,管理者姓名(管理者外键为mgr)
10 对于dept表中,列出所有部门名,部门号,同时列出各部门工作为'CLERK'的员工名与工作
11 对于工资高于本部门平均水平的员工,列出部门号,姓名,工资,按部门号排序
12 对于emp,列出各个部门中平均工资高于本部门平均水平的员工数和部门号,按部门号排序
13 对于emp中工资高于本部门平均水平,人数多与1人的,列出部门号,人数,按部门号排序
14 对于emp中低于自己工资至少5人的员工,列出其部门号,姓名,工资,以及工资少于自己的人数
15 查询出emp 表中 sal 按升序排列后10 - 20 的员工信息
二、 完成下列存储过程 给定数据表:
创建存储过程updatesalary(job_id number), 根据输入的 job_id 输出出从事该工作的各员工的雇佣时间和工资,并根据以下条件对工资进行更新
hire_date salary
hire_date < 1995 salary = salary*1.2 hire_date >=1995 and hire_date <= 1998 salary = salary*1.15 hire_date > 1998 and hire_date <= 2001 salary = salary *1.10 hire_date > 2001 salary = salary * 1.05
三、 创建触发器
创建触发器 dmltrigger 在对表 employees 进行 update操作前触发,将更新前的数据存入empback表中 emp 表结构
employee_id number(6) -- 员工id first_name VARCHAR2(20) --名 last_name VARCHAR2(25) --姓 empback 表结构
employee_id number(6) -- 员工id first_name VARCHAR2(20) --名 last_name VARCHAR2(25) --姓
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据库题目在线全文阅读。
相关推荐: