1、- 1 -设有数据库“rsda”(考 VFP 的同学请下载,并解压到自己的文件夹;考 ACCESS 的同学请下载) ,其中,数据表 rsda 包含以下字段:工号(C)、姓名(C) 、性别(C)、出生年月(D) 、部门(C)、婚否(L) 、基本工资(N) 、补贴(N)、公积金(N),应发工资(N) 。 (命令可以使用 SQL 语句或 VFP 命令)(1) 要求:列出 rsda 数据表中部门为“教务处”的女性职工的工号,姓名,性别和部门。(2)要求:统计 rsda 数据表中男性已婚职工的应发工资的平均值,并将结果赋给变量 A54(或者新字段 A54) 。(3)要求:列出 rsda 数据表中部门为“
2、教务处”和“ 基础部”的所有女性职工的信息。(4)要求:将 rsda 数据表中工号前 2 位是“10”的职工所属部门改为“ 后勤集团” 。(5)要求:计算并替换每一条记录中的“应发工资”字段(应发工资=基本工资+补贴-公积金) 。(注:如果没有条件,既 for 子句的话,all 不能省略)(6)要求:统计 rsda 数据表中部门为“基础部”的女性职工的基本工资的平均值,并将结果赋给变量 A53(或者新字段 A53) 。(7)要求:列出 rsda 数据表中工号前 2 位等于“10”的男性职工的信息。(8)要求:统计 rsda 数据表中男性职工中补贴一项的最高值,并将结果赋给变量 A57(或者新字
3、段 A57) 。(9)要求:计算并替换每一条记录中的“补贴”字段(补贴=基本工资*0.05) 。(10)要求:列出 rsda 数据表中工资小于 1200 元的女性职工的工号、姓名、性别、部门和应发工资。(11)要求:列出 rsda 数据表中工号前 2 位等于“12”的女性职工的信息。(12)要求:为 rsda 数据表中 1976 年出生的职工每人增加 55 元补贴。(13)要求:统计 rsda 数据表中女性职工中基本工资不超过 1800 元的人数,并将结果赋给变量 A56(或者新字段 A56) 。(14)要求:统计 rsda 数据表中部门为“基础部”的女性职工的基本工资字段总和,并将结果赋给变
4、量 A51(或者新字段 A51) 。(15)要求:统计 rsda 数据表中“总务处”和“ 教务处”这两个部门人员的平均应发工资和平均补贴,并将结果赋给变量 A591和 A592(或者新字段 A591 和 A592) 。- 2 -(16)要求:统计 rsda 数据表中男性已婚职工的应发工资字段总和,并将结果赋给变量 A52(或者新字段 A52) 。(17)要求:统计 rsda 数据表中女性职工中补贴一项的最低值,并将结果赋给变量 A58(或者新字段 A58) 。(18)要求:统计 rsda 数据表中“学生处”和“ 总务处”这两个部门职工的基本工资总和、补贴总和,并将结果赋给变量A5101、A51
5、02(或者新字段 A5101、A5102) 。(19)要求:显示补贴的最小值和最大值,并将结果分别赋给变量 minbt、maxbt。(20)要求:计算部门为“ 基础部”、补贴不足 300 元的人员的基本工资的平均值。(21)要求:为 rsda 数据表中部门是“教务处”的人员每人增加 25%的补贴(补贴=补贴*1.35) 。(22)要求:为 rsda 数据表中 1980 年以前(不含 1980 年)出生的职工每人增加 38 元补贴。(23)要求:列出 rsda 数据表中部门为“基础部”的男性职工的工号,姓名,性别和部门。(24)要求:在 rsda 数据表的“基本工资”字段中,为 1980 年以前
6、(不含 1980 年)出生的人员每人增加 570.5 元。(25)要求:列出 rsda 数据表中所有已婚男性职工的部门、姓名、婚否和基本工资。(26)要求:物理删除 rsda 数据表中部门为“基础部”的所有男性职工的记录。(27)要求:将工号前 2 位是“13”的职工所属部门改为“学工部” 。(28)要求:统计男性职工中基本工资超过 1500 元的人数,并将结果赋给变量 A55(或者新字段 A55) 。(29)要求:列出 rsda 数据表中所有未婚女性职工的部门、姓名、婚否和应发工资。(30)要求:列出 rsda 数据表中应发工资大于 1500 元的男性职工的工号、姓名、性别、部门和应发工资。
7、(31)要求:列出 rsda 数据表中部门为“总务处”和“ 学生处”的所有男性职工的信息。(32)要求:为部门是“ 总务处”的职工每人增加 15%的补贴(补贴=补贴*1.15) 。(33)要求:在 rsda 数据表的“基本工资”字段中,为 1980 年以后(含 1980 年)出生的人员每人增加 175 元。(34)要求:显示所有未婚男教工的信息。- 3 -(35)要求:统计讲授“ 英语写作”课程的老师的应发工资的平均值,并将结果赋给变量 A56(或者新字段 A56) 。(注:数据表 rsda.dbf 假设保存在 d:盘下)select 1use rsdaindex on 工号 to ghsel
8、ect 2use kcmset relation to 工号 into a average a.应发工资 all for 课程名=“英语写作“ to a56(注:set relation toset relation to 是主表与子表之间建立临时关联,建立临时关联的含义是:当主表指针移动时,子表指针会自动跟着移动到关键字值相同的记录上。join with 是当前表与别名表横向连接生成一个新表。)/SELECT AVG(Rsda.应 发 工 资 ) as A56 FROM rsda!kcm INNER JOIN rsda!rsda ON Kcm.工 号 =Rsda.工 号 WHERE Kcm.
9、课 程 名 =“英 语 写 作 “(36)要求:计算补贴的平均值、公积金的平均值,并将结果分别赋给变量 rjbt、rjgjj(37)要求:统计 35 岁(含 35 岁)以下的老师各自讲授的课程数目。select rsda.姓名 ,rsda.出生年月,count(kcm .课程名) FROM rsda!kcm LEFT JOIN rsda!rsda ON Kcm.工号= Rsda.工号 WHERE year(date()-year(rsda.出生年月) month(date() and (month(出生年月)=month(date() and day(出生年月)day(date()/list
10、for date(year(date(),month(出生年月),day(出生年月)date()(83)要求:计算基本工资和应发工资的平均值,并将结果分别赋给 avg_sal1、avg_sal2。(84)要求:按照“出生年月”降序形式显示所有人员的信息。(85)要求:统计每位教师讲授的课程数目。SELECT Rsda.工号 ,Rsda.姓名,Kcm.课程名,count(kcm.课程名) FROM rsda!rsda LEFT JOIN rsda!kcm ON Rsda.工号=Kcm.工号 GROUP BY Rsda.工号(86)要求:显示讲课教师中年龄最大的教师的姓名和性别。SELECT Rs
11、da.姓名,Rsda.性别,max(Rsda.出生年月) FROM rsda!rsda- 8 -(87)要求:统计 30 岁(不含 30 岁)以上的老师各自讲授的课程数目。SELECT Rsda.姓名,COUNT(Kcm.课程名), year(date()-year(Rsda.出生年月) as 年龄 FROM rsda!kcm INNER JOIN rsda!rsda ON Kcm.工号=Rsda .工号 WHERE year(date()-year(Rsda.出生年月)=30 GROUP BY Rsda.姓名(88)请从下面两小题中选作一题:(1)填写 VFP 命令,要求将记录指针定位在第一
12、条 1977 年出生的男性职工记录。(2)填写 SQL 命令,要求将所有男性职工的记录追加到名为“追加表”的表中,只需要其中的 4 个字段:姓名、性别、工资、补贴。(1)Locate for year(出生年月)=1977 and 性别=”男”(2)Select rsda.姓名,rsda.性别,rsda.工资,rsda.补贴 as 追加表 from rsda where rsda.性别=”男”(89)要求:将 rsda 数据表中“部门”字段的“ 学生处”改为“学生就业处”。Replace all 部门 with ”学生就业处 ” for 部门=” 学生处”(89)请从下面两小题中选作一题:(1
13、)填写 VFP(不考虑表的打开和关闭) ,要求以姓名和基本工资为索引关键字建立一个结构复合索引文件,索引名为“xmgz”。(2)填写 SQL 命令,要求利用学号的前 2 位产生一个新字段“部门代码”,并在查询中显示原来的所有字段和“部门代码” 字段。(1)index on 姓名+str(基本工资) tag xmgz(2)SELECT Rsda.*,LEFT(Rsda.工号,2) as 部门代码 FROM rsda(90)要求:物理删除 rsda 数据表中部门为“教务处”的所有女性职工的记录。(91)要求:按照“姓名”升序(字典序列)形式显示所有人员的信息。(92)要求:按照“部门”升序(字典序
14、列)形式显示所有人员的信息。(93)要求:显示讲课教师中年龄最小的教师的姓名和性别。SELECT Rsda.姓名,Rsda.性别,MAX(Rsda.出生年月) FROM rsda!kcm INNER JOIN rsda!rsda ON Kcm.工号=Rsda.工号(94)要求:统计讲授“ 英语听力”课程的老师的补贴的平均值,并将结果赋给变量 A59(或者新字段 A59) 。Select 1Use kcmIndex on 工号 to ghSelect 2Use rsdaSet relation to 工号 into aAverage 补贴 all for a.课程名=”英语听力” to A59/SELECT AVG(Rsda.补 贴 ) as A59 FROM rsda!kcm INNER JOIN rsda!rsda ON Kcm.工 号 =Rsda.工 号 WHERE Kcm.课 程 名 =“英 语 听 力 “(95)要求:计算部门为“ 基础部”、基本工资不足 1000 元的人员的补贴的平均值。(96)要求:显示所有本年度已经过完生日(不含当日)的人员信息。