VFP实验指导 联系客服

发布时间 : 星期二 文章VFP实验指导更新完毕开始阅读42195eae33687e21ae45a945

《Visual FoxPro数据库程序设计》实验指导书

学号 99700123 99700210 99700239 99500031 99500276 99600089 99700119 99500035 学号 99600089 99700123 99700210 99700239 99500031 99600089 99500276 99700119 99500035 99700119

33

班级 99711 99712 99711 99512 99512 99611 99712 99512 姓名 陈爱洁 李一光 李环芬 黄小月 王利群 李星光 陈建国 黄回春 课程名 女 男 女 女 男 男 男 女 性别 cj.dbf(学号 C(8),课程名 C(20),成绩 N(5,1) 成绩 92 84 56 88 69 51 65 73 94 72 计算机基础 计算机基础 计算机基础 高等数学 高等数学 高等数学 计算机基础 高等数学 高等数学 计算机基础 《Visual FoxPro数据库程序设计》实验指导书

实验八 SQL语言(二)与视图

一、实验目的

1.训练掌握SQL-SELECT查询命令。 2.熟悉查询向导的使用。 3.掌握查询设计器的使用。 4.掌握视图建立命令。 5.掌握视图设计器的使用。 二、知识要点 三、实验准备

1.做好准备,拟出操作提纲,明确要记录的数据;

2.从ftp上下载自己的学号文件夹到本机D盘,并设为默认路径。 四、实验内容

1.实验要求

(一)SQL-SELECT命令对数据库glk.dbc完成以下查询。 (1)查询表rsb.dbf中所有职工信息,并按工作日期升序排序。

(2)查询表rsb.dbf中职称为副教授的职工编号、姓名、出生日期和基本工资,并将结果输出到屏幕上。

(3)查询表rsb.dbf中的讲师的人数、讲师的基本工资的平均值、最大值和最小值。 (4)查询表rsb.dbf中出生在1965年7月到1975年6月的职工编号、姓名、性别、出生日期和职称。

(5)统计表rsb.dbf中部门个数。 (6)求出计算机系职工的平均基本工资。

(7)查询奖励工资最高的职工的编号、姓名、部门名称和奖励。 (8)统计各部门的人员数。

(9)求出各个部门基本工资总数,并且按基本工资数从高到低排列。

(10)查询1980年及以后参加工作的并且职称为讲师的职工的姓名、工作日期、部门名、职称、奖励工资和实发工资,并按实发工资降序排序输出。

(11)查询职工的姓名、部门名、职称、奖励工资和基本工资,要求先按奖励工资的降序输出到文本文件wb.txt。

2.操作步骤

(1)SELECT * FROM rsb ORDER BY 工作日期

(2)SELELCT 编号,姓名,出生日期,基本工资 FROM rsb WHERE 职称=“副教授”;

34

《Visual FoxPro数据库程序设计》实验指导书

TO SCREEN

(3)SELECT CNT(*) AS 讲师人数,AVG(基本工资) AS 平均工资,MAX(基本工资) AS;

最大值,MIN(基本工资) AS 最小值 FROM rsb WHERE 职称=“讲师” (4)SELECT 编号,姓名,性别,出生日期,职称 FROM rsb WHERE ; 出生日期>={^1965/7/1} AND出生日期<{^1975/7/1} (5)SELECT CNT(DISTINCT 部门代码)AS 部门个数 FROM rsb

函数CNT(DISTINCT<表达式>)统计表中记录的个数。有DISTINCT选项时,统计记录表达式值相同的记录,只统计一条。

(6)SELECT bmdm.部门名称,AVG(基本工资) AS 平均工资 FROM rsb INNER JOIN;

bmdm ON rsb.部门代码=bmdm.代码 WHERE bmdm.部门名称=“计算机系” (7)SELECT rsb.编号, rsb.姓名,bmdm.部门名称,gzb.奖励 FROM rsb INNER JOIN; Bmdm INNER JOIN gzb ON rsb.部门代码=bmdm.代码 ON rsb.编号=gzb.编号; WHERE gzb.奖励(SELECT MAX(奖励) FROM gzb)

(8)SELECT bmdm.部门名称,CNT(*) AS 人数 FROM rsb INNER JOIN bmdm ON ; rsb.部门代码= bmdm.代码 GROUP bmdm.部门名称

(9)SELECT bmdm.部门名称,SUM(rsb.基本工资) AS 基本工资总数 FROM rsb; INNER JOIN bmdm ON rsb.部门代码=bmdm.代码 GROUP BY bmdm.部门名称; ORDER BY 2 DESC

(10)SELECT rsb.姓名,rsb.工作日期,bmdm.部门名称, rsb.职称,gzb.奖励,; gzb.实发工资 FROM rsb,bmdm,gzb WHERE rsb.部门代码= bmdm.代码; .AND. rsb.编号 .AND.YEAR(rsb.工作日期)>=1980 .AND.职称“讲师”; ORDER BY 实发工资 DESC

(11)SELECT rsb.姓名, bmdm.部门名称, rsb.职称,gzb.奖励,rsb.基本工资; FROM rsb,bmdm,gzb WHERE rsb.部门代码= bmdm.代码 .AND. rsb.编号; =gzb.编号 ORDER BY gzb.奖励 DESC,rsb.基本工资 DESC INTO TABLE cx (12)SELECT rsb.姓名, bmdm.部门名称,zz.增资日期,zz.增资 FROM rsb,bmdm,zz; WHERE rsb.部门代码= bmdm.代码 .AND. rsb.编号=zz.编号;

ORDER BY 1 TO FILE wb (二)利用查询向导创建查询 1.实验要求

从glk.dbc中查询每位职工的保险金额,并按保险字段的降序排序输出姓名、性别、出生日期、基本工资和保险5个字段内容,以文件名cx1.qpr保存查询设置。

2.操作步骤

步骤1:启动“查询向导”。单击“文件”→“新建”→“查询”→“向导”,在“向

35

《Visual FoxPro数据库程序设计》实验指导书

导选取”对话框中的选取要使用的向导列表中选取“查询向导”,单击“确定”按钮,启动查询向导。

步骤2:在“查询向导”对话框的“步骤1-字段选取”。选取表rsb.dbf和gzb.dbf,将姓名、性别、出生日期、基本工资和保险5个字段从“可用字段”列添加到“选定字段”列。单击“下一步”。

步骤3:进入“步骤2-为表建立关系”。选择rsb.编号和gzb.编号,单击“添加”按钮,建立两表的关联。单击“下一步”。

步骤4:进入“步骤2a-字段选取“。选择仅包含匹配的行”单选按钮,单击“下一步”。

步骤5:进入“步骤3-选取字段”。此处根据题意无设置,单击“下一步”。 步骤6:进入“步骤4-记录排序”。将“gzb.保险”字段从“可用字段”列添加到“选定字段”列,并选择“降序”单选按钮,单击“下一步”。

步骤7:进入“步骤4a-限制记录”。使用默认设置,单击“下一步”。

步骤8:进入“步骤5-完成”。单击“预览”按钮可看预览效果,单击“完成”按钮,输入保存文件名cx1.qpr。

步骤9:运行查询:在命令窗口中输入命令DO cx1.qpr 。 查询结果如图8-1所示:

图8-1运行查询结果显示

写出上述操作相应的SQL-SELECT 命令: 。 (三)利用查询设计器建立查询 1.实验要求

从glk.dbc查询职称为副教授或教授,或者1990年以前参加工作的职工的姓名、职称、工作日期、所在部门名称和基本工资的内容,输出按基本工资的降序排列,并以文件

36