文档库

最新最全的文档下载
当前位置:文档库 > 数据库实验报告

数据库实验报告

实验4SQL高级应用

【实验目的】

1、掌握在SQL SERVER 2005下进行数据还原的方法。

2、掌握SQL语句的查询统计功能和数据更改功能。

【实验内容】

1.还原factory数据库。

2.在factory数据库上,完成如下各题。

(1)删除factory数据库上各个表之间建立的关系。

(2)*显示各职工的工资记录和相应的工资小计。

(3)*按性别和部门名的所有组合方式列出相应的平均工资。

(4)在worker表中使用以下语句插入一个职工记录。职工号:20;姓名:陈立;

性别:女;出生日期:55/03/08;党员否:1;参加工作:75/10/10;部门号:4。

在depart表中使用以下语句插入一个部门记录。部门号:5;部门名:设备处。

对worker和depart表进行全外连接显示职工的职工号、姓名和部门名,然后删除这两个插入的记录。

(5)显示最高工资的职工的职工号、姓名、部门名、工资发放日期和工资。

(6)显示最高工资的职工所在的部门名。

(7)显示所有平均工资低于全部职工平均工资的职工的职工号和姓名。

(8)*采用游标方式实现(6)小题的功能。

(9)*采用游标方式实现(7)小题的功能。

(10)*先显示worker表中的职工人数,开始一个事务,插入一个职工记录,再显示worker表中的职工人数,回滚该事务,最后显示worker表中的职工人数。

【实验报告要求】

1.第(1)写出操作步骤。

2.其他各题写出实现要求的命令/程序,并列出执行结果。

【操作步骤】1.还原factory数据库。

数据库实验报告

数据库实验报告

数据库实验报告

数据库实验报告

2.在factory基础上,有

(1)删除factory数据库上各个表之间建立的关系。(2)*显示各职工的工资记录和相应的工资小计。

数据库实验报告

Select 职工号,姓名,工资from salary

Order by 职工号

Compute sum (工资) by 职工号

(3)*按性别和部门名的所有组合方式列出相应的平均工资。

数据库实验报告

select worker.职工号,worker.性别,depart.部门名,avg(工资)as'平均工资' from worker inner join depart on worker.部门号=depart.部门号 inner join salary

on worker.职工号=salary.职工号

group by worker.职工号,worker.性别,depart.部门名

order by worker.职工号

(4)在worker表中使用以下语句插入一个职工记录。职工号:20;姓名:陈立;性别:女;出生日期:55/03/08;党员否: 1;参加工作:75/10/10;部门号:4。

数据库实验报告

insert into worker

values('20','陈立','女','1955-03-08','1','1975-10-10',4)

数据库实验报告

在depart表中使用以下语句插入一个部门记录。部门号:5;部门名:设备处。

数据库实验报告

Insert into depart

Values('5','设备处')

对worker和depart表进行全外连接显示职工的职工号、姓名和部门名,然后删除这两个插入的记录。

数据库实验报告

数据库实验报告

数据库实验报告

use factory

Select b.部门号,c.姓名

from salary a,departb,worker c

delete from worker

where 职工号=20

delete from depart

where 部门号=5

(5)显示最高工资的职工的职工号、姓名、部门名、工资发放日期和工资。

数据库实验报告

Use factory

Select b.部门名,c.职工号,c.姓名,b.部门名,a.日期,a.工资from salary a,departb,worker c

Where 工资in (select max(a.工资)from salary a)

and a.职工号=c.职工号and b.部门号=c.部门号

(6)显示最高工资的职工所在的部门名。

数据库实验报告

Use factory

Select b.部门名from salary a,departb,worker c

Where 工资in (select max(a.工资) from salary a)

and c.部门号=b.部门号and a.职工号=c.职工号

(7)显示所有平均工资低于全部职工平均工资的职工的职工号和姓名。

数据库实验报告

Use factory

Select a.职工号,a.姓名,avg(b.工资) as 平均工资from worker a,salary b where a.职工号=b.职工号

group by a.职工号,a.姓名

having avg(工资)<(select avg(工资) from salary)