09VFP课件09版总复习.ppt

上传人:sccc 文档编号:5324939 上传时间:2023-06-26 格式:PPT 页数:70 大小:1.13MB
返回 下载 相关 举报
09VFP课件09版总复习.ppt_第1页
第1页 / 共70页
09VFP课件09版总复习.ppt_第2页
第2页 / 共70页
09VFP课件09版总复习.ppt_第3页
第3页 / 共70页
09VFP课件09版总复习.ppt_第4页
第4页 / 共70页
09VFP课件09版总复习.ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《09VFP课件09版总复习.ppt》由会员分享,可在线阅读,更多相关《09VFP课件09版总复习.ppt(70页珍藏版)》请在三一办公上搜索。

1、第9章VFP总复习,9-1 基本操作复习9-2 SQL语言复习9-3 报表制作复习9-4 表单制作复习,第9章 VFP总复习,第一部分基本操作复习,创建项目管理器和数据库,1、在d:学生管理建立一个名为“学生管理”的项目文件;2、在项目管理器中建立一个名为“学生管理”的数据库。,3、在学生管理数据库中建立学生成绩表,表结构如下:学号 字符型(8)姓名 字符型(10)数学 数值型(5.1)该字段允许出现空值,默认值为.NULL.英语 数值型(5.1)该字段允许出现空值,默认值为.NULL.计算机 数值型(5.1)该字段允许出现空值,默认值为.NULL.数据如下:学号 姓名 数学 英语 计算机20

2、041030 谢林胜 78 88 9020041031 张辉臣 82 67 54,文件备份,4、将“学生表”备份到“学生备份表”中,将”学生选课表”备份到“学生选课备份表”中。use 学生表 copy to 学生备份表5、将学生备份表中出生日期字段值为1985年8月1日以前的记录进行逻辑删除。DELE ALL FOR 出生日期 1985/08/01,文件备份,6、复制“学生表”结构,删除入学时间、入学成绩、专业编号、简历、照片字段,将其命名为“学生简表”,将“学生备份表”中的所有记录追加到“学生简表”中,并取消所有逻辑删除标记。COPY STRU TO 学生简表 USE 学生简表 APPE F

3、ROM 学生表 RECL ALL,添加数据表,7、将学生备份表和“学生选课备份表”添加到“学生管理”数据库中。,字段有效性规则,8、为学生备份表的性别字段设置字段有效性规则:性别=“男”.or.性别=“女”,出错提示信息为:“性别等于男或女”,默认值为:男。,修改数据表,9.在学生备份表中增加一个名为班级的字段,字段数据类型为字符型、宽度为20。,建立表间关系,10、通过学号字段建立学生备份表表和学生选课备份表间的永久联系(如果必要请先建立有关索引)。,数据排序,11、将学生备份表中的记录按出生日期先后顺序排序,在出生日期相同的情况下,再按学号从低到高排序,排序结果存入表NEW_STUDENT

4、中。sort to NEW_STUDENT on 出生日期,学号,查询向导,12、使用查询向导建立一个标准查询QUERY.QPR,表选取“学生表”,字段选取“姓名”和“出生日期”。13、从学生备份表中查询所有女同学(即:性别=女)信息,查询结果存入女同学表。,本地视图,14、建立本地视图stu_view,视图的字段为学生备份表的学号、姓名和出生日期字段,并按出生日期先后顺序排序,出生日期相同的情况下,按学号升序排序。,第二部分SQL语言复习,知识点,SELECT FROM 文件名 查询CREATE VIEW 视图名 AS 创建,SELECT说明要查询的数据FROM说明要查询的数据来自哪个或哪些

5、表,可以对单个表或多个表进行查询;WHERE说明查询条件,即选择元组的条件;GROUP BY短语用于对查询结果进行分组,可以利用它进行分组汇总;HAVING短语必须跟随GROUP BY 短语使用,它用来限定分组必须满足的条件;ORDER BY 用来对查询的结果进行排序。,简单查询,1、列出学生表里所有学生的信息 SELECT*FROM 学生2、列出学生选课表里所有课程的编号 SELECT DIST 课程编号 FROM 学生选课*(使用DIST可去掉重复行),条件查询,1、列出学生表里03专业所有学生的学号,姓名,专业编号 SELECT 学号,姓名,专业编号 FROM 学生;WHERE 专业编号

6、=032、查找入学成绩500600之间所有学生;SELECT*FROM 学生 WHERE 入学成绩;BETWEEN 500 AND 6003、查询专业编号为03和04的学生信息;SELECT 学号,姓名,专业编号 FROM 学生;WHERE 专业编号 IN(03,04),4、查询入学成绩600分以上学生信息并排序输出 SELECT 学号,姓名,入学成绩 AS 总成绩;FROM 学生 WHERE 入学成绩600;ORDE BY 总成绩 DESC,5、查询专业编号为“04”所有女学生信息 SELECT*FROM 学生;WHERE 专业编号=04 AND 性别=女6、查询专业编号为“04”且入学成绩

7、大于600分的所有男学生信息。SELECT*FROM 学生;WHERE 专业编号=04 AND 入学成绩=600;AND 性别=男,7、查找所有姓“李”学生指定信息;SELECT 学号,姓名,入学成绩 FROM 学生;WHERE 姓名 LIKE李%8、查询选课成绩=80学生姓名成绩;SELECT 学生.姓名,学生选课.成绩;FROM 学生 INNER JOIN 学生选课;ON 学生.学号=学生选课.学号;AND 学生选课.成绩=80,统计查询,1、查询全体学生总人数;SELECT COUNT(*)AS 全体学生总人数;FROM 学生&不允许使用DISTINCT关键字,统计查询,2、求2004年

8、年龄大于18岁的学生人数。SELECT COUNT(*)AS 大于18岁人数;FROM 学生;WHERE 2004-YEAR(出生日期)18,3、计算入学成绩在600分以上人数;SELECT COUNT(*)AS 入学600分人数;FROM 学生 WHERE 入学成绩=6004、计算女生平均入学成绩;SELECT AVG(入学成绩)AS 女生平均分;FROM 学生 WHERE 性别=女*(问:要求统计最高(低)入学成绩如何修改表达式),5、统计每个学生选修课的门数;SELECT 学号,COUNT(*)AS 选修门数;FROM 学生选课 GROUP BY 学号*(该题把学号相同的记录作为一组,;

9、*对每一组用COUNT进行计算,统计出每个学生选修课的门数),6、统计选修课门数3门以上学生;SELECT 学号,COUNT(*)AS 选修门数;FROM 学生选课 GROUP BY 学号;HAVING COUNT(*)=3*(注意:此语句中用了HAVING语句,*其功能是选择满足条件的组。),7、求入学成绩最高与最低相差分数。SELECT MAX(入学成绩)AS 最高成绩,;MIN(入学成绩)AS 最低成绩,;MAX(入学成绩)-MIN(入学成绩);AS 高低成绩相差 FROM 学生,8、显示总分最高的前3位学生的信息;SELECT*TOP 3 FROM 学生成绩;ORDER BY 总分 D

10、ESC9、显示总分最低的30%学生信息;SELECT*TOP 30 PERCENT;FROM 学生成绩 ORDER BY 总分,查询输出,1、学生选课成绩输出到数据表;SELECT 学号,课程编号,成绩 FROM 学生选课;ORDER BY 成绩 desc;INTO TABLE 作业442、学生选课成绩输出到文本文件;SELECT 学号,课程编号,成绩 FROM 学生选课;ORDER BY 成绩 desc;TO FILE 作业44.TXT,数据库定义,1、从单个表派生出的视图 从学生表中创立视图1,使其显示学号和专业编号两个字段全部记录。OPEN DATA 学生选课库CREATE VIEW 视

11、图1 AS;SELECT 学号,专业编号 FROM 学生,数据库定义,2、从多个表中派生出来的视图 在学生选课库数据库中,根据学生表建立一个统计各专业学生人数的视图,该视图包含专业编号、学生人数两个字段,视图名为view1,并按专业编号升序排序;(提示:可先编一个程序,用SQL语句直接建立这个视图),在“学生选课库”数据库中,根据学生表建立一个统计各专业学生人数的视图,该视图包含“专业编号”、“学生人数”两个字段,视图名为“view1”,并按专业编号升序排序OPEN DATA 学生选课库CREATE VIEW view1 AS;SELECT 专业编号,COUNT(*)AS 学生人数;FROM

12、学生 GROUP BY 专业编号,用SQL编写视图实例(作业35),在职工管理数据库中,建立一个名称为s_view的视图,字段为职工表中的编号、姓名、性别、民族和工资表中的基本工资、奖金、工资合计(其中工资合计=基本工资+奖金),结果按工资合计降序排序,工资相同的情况下按编号升序排序。注意:视图中的字段个数、字段名和字段先后排列的顺序,要与题目叙述的一致,否则不得分。,open data 职工管理CREATE VIEW s_view AS;SELECT 职工表.编号,职工表.姓名,;职工表.性别,职工表.民族,;工资表.基本工资,工资表.奖金,;工资表.基本工资+工资表.奖金 as 工资合计;

13、FROM 职工表 INNER JOIN 工资表;ON 工资表.编号=职工表.编号,第三部分报表制作(简单应用题),简单应用题1(作业37),请在Visual FoxPro中完成下列操作(本题共有1小题):使用报表向导建立一个简单报表。要求选择成绩表中学号、姓名和英语三个字段,报表的标题为英语考试成绩表,其他选项使用默认设置,报表文件名为English_score.frx。,简单应用题2(作业38),请在Visual FoxPro中完成下列操作(本题共有1小题):使用向导建立一对多报表student_report。父表为学生.dbf,字段为学号、姓名、性别和入学成绩,子表为学生成绩.dbf,字段

14、为各科成绩和总分,报表标题为学生入学前后成绩对照表,其他使用默认设置。,第四部分表单制作(综合应用题),等级考试综合应用题1(作业57),请在Visual FoxPro中完成下列操作(本题共有1小题):建立一个表单,将表单的标题和表单文件名都设置为:查询职工信息。在表单中,添加下列控件:1)表格控件(Grid1),其数据源类型(RecordSourceType)设置为:0-表;2)选项组控件(Optiongroup1),选项组控件有两个按钮职工表(名称为Option1)和工资表(名称为Option2);3)命令按钮(Command1),标题设置为:查询,功能为:在选项组控件中选择职工表或工资表

15、,单击查询命令按钮后,在表格控件(Grid1)中显示所选择表的记录(使用IF语句判断);4)命令按钮(Command2),标题设置为:退出,功能为:用鼠标单击该按钮时,释放所在表单。5)表单上要有考生姓名,1)表格控件(Grid1)2)选项组控件有两个按钮“职工表和”工资表”3)命令按钮(Command1),标题设置为:查询,功能为:在选项组控件中选择职工表或工资表,单击查询命令按钮后,在表格控件(Grid1)中显示所选择表的记录(使用IF语句判断);4)命令按钮(Command2),标题设置为:退出,制作表单,请制作一个表单“求最大数和最小数”,使它能够显示从键盘输入的任意三个数中最大的数和

16、最小的数。作业要求和评分标准:1、表单上要有清屏、计算和退出三个按钮,并要有考生的姓名。10分2、三个数能够正确输入。10分3、三个数中的最大数和最小数能够正确显示,10分,计算按钮,a=thisform.text1.valueb=thisform.text2.valuec=thisform.text3.valuem=max(a,b,c)n=min(a,b,c)thisform.text4.value=mthisform.text5.value=n,清屏按钮,thisform.text1.value=0thisform.text2.value=0thisform.text3.value=0th

17、isform.text4.value=0thisform.text5.value=0thisform.text1.setfocus,查询按钮方法代码,N=THISFORM.Optiongroup1.VALUEIF N=1 THISFORM.GRID1.RECORDSOURCE=职工表.dbfELSE THISFORM.GRID1.RECORDSOURCE=工资表.dbfENDIF,等级考试综合应用题2(作业58),请在Visual FoxPro中完成下列操作(本题共有1小题):建立一个表单,将表单的文件名和标题均设置为:浏览;在表单中,添加下列控件:1)页框(PageFrame1),有学生表(

18、Page1)和成绩表(Page2)两个选项卡,单击选项卡学生表时,在选项卡学生中使用表格方式显示学生表中的记录;单击选项卡成绩时,在选项卡成绩表中使用表格方式显示成绩表中的记录;要求:将学生表和成绩表添加到数据环境。2)命令按钮(Command1),其标题为:退出,功能为:用鼠标单击该按钮时,释放所在表单。3)表单上要有考生姓名,等级考试综合应用题3(作业47),打开testform2表单,表单的标题设置为:学生成绩查询。在表单中,添加下列控件:1)文本框(text1);2)查询按钮(Command1):在查询按钮的Click事件中,使用SQL的SELECT命令查询成绩表中每个学生的学号、姓名

19、、总分,并将查询结果存储到总分表表中。在文本框text1中,显示查询结束。(注:总分为数学、英语和计算机三门课成绩之和)3)退出按钮(Command2):单击退出按钮时,关闭表单。表单设计完成后,运行表单进行查询。,查询按钮代码:,SELE 学号,姓名,数学+外语+计算机 AS 总分;FROM 学生成绩 ORDE BY 总分 DESC;into tabl 总分表thisform.refreshTHISFORM.TEXT1.VALUE=查询结束!,等级考试综合应用题4(作业49),请在Visual FoxPro中完成下列操作(本题共有1小题):在人事管理数据库中,根据职工表建立一个统计各部门职工

20、人数的视图,该视图包含部门号、职工人数两个字段,视图名为view1,并按部门号升序排序;打开考试文件夹下的表单testform7。将表单的标题设置为:查询部门职工人数;在表单的数据环境中,添加视图view1。在表单中,添加下列控件:1)表格控件Grid1,运行表单时,在表格控件Grid1中显示视图view1的记录;2)命令按钮Command1,标题设置为:关闭,功能为:用鼠标单击该按钮时,释放所在表单。,本题可编写程序制作视图:,open data 人事管理crea view view1 as;SELECT 部门号,COUNT(*)AS 职工人数;FROM 职工表 GROUP BY 部门号,等

21、级考试综合应用题5(作业18),打开考试文件夹下的表单testform3。表单的标题设置为:查询职工信息。在表单的数据环境中,添加职工管理库中的表:职工.dbf。在表单中,添加下列控件:1)标签label1和label2,其标题为:姓名和年龄;2)文本框text1和text2,设置文本框text1和text2的ControlSource属性,当执行表单时,该框中分别显示职工.dbf中的姓名和年龄;(不需要编写事件代码)3)命令按钮command1和command2,其标题分别为:上一记录和下一记录。功能分别为:用鼠标单击command1按钮时,将表记录指针移动到上一条记录,如果移到表文件首,则

22、移到末记录;用鼠标单击command2按钮时,将表记录指针移动到下一条记录,如果移到表文件末,则移到首记录;4)命令按钮command3,其标题为:退出,功能为:用鼠标单击该按钮时,释放所在表单。,“上一记录”方法代码:,if not bof()skip-1 thisform.refreshelse go bott thisform.refreshendif,“下一记录”方法代码:,if not eof()skip 1 thisform.refreshelse go top thisform.refreshendif,等级考试综合应用题6(作业56),打开考试文件夹下的表单testform4。

23、将表单的标题设置为:浏览;将表单中的表格控件(Grid1)的数据源类型(RecordSourceType)设置为:0-表;在表单中,添加三个命令按钮Command1、Command2和Command3,并完成下列操作:1)命令按钮Command1的标题设置为:显示学生表,功能为:用鼠标单击该按钮时,表格控件(Grid1)的数据源(RecordSource)设置为学生表.dbf;2)命令按钮Command2的标题设置为:显示成绩表,功能为:用鼠标单击该按钮时,表格控件(Grid1)的数据源(RecordSource)设置为成绩表.dbf;3)将命令按钮Command3的标题设置为:退出,功能为:

24、用鼠标单击该按钮时,释放所在表单。,THISFORM.Grid1.RecordSource=学生表.dbfthisform.refresh,等级考试综合应用题7(作业55),打开考试文件夹下的表单testform5。表单的标题设置为:浏览学生表。在表单的数据环境中,添加学生库中的表:学生表.dbf。在表单中,添加下列控件:1)标签label1和label2,其标题为:学号和姓名;2)编辑框Edit1和Edit2,设置编辑框Edit1和Edit2的ControlSource属性,当执行表单时,该框中分别显示表学生表中的学号和姓名;(不需要编写事件代码)3)计时器 Timer1,功能为:表单运行时,每1秒钟向下移动1条记录,如果移到表文件末,再返回到首记录;(在移动记录过程中,表单中的内容要随着更新。)4)命令按钮command1,其标题为:退出,功能为:用鼠标单击该按钮时,释放所在表单。,if not eof()skip 1 thisform.refreshelse go top thisform.refreshendif,完!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号