数据库题目

更新时间:2024-07-01 04:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、 完成下列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) --姓

本文来源:https://www.bwwdw.com/article/8ay.html

Top