VFP查询.docx
《VFP查询.docx》由会员分享,可在线阅读,更多相关《VFP查询.docx(23页珍藏版)》请在冰点文库上搜索。
VFP查询
VFP-查询
查询一
教学目标:
创建查询向导
比较运算符及含义
教学重点:
比较运算符的含义
教学难点:
比较运算符及含义
备课时间:
2012年2月5
课时数:
2课时
授课时间:
2012年2月13号
教学方法:
多媒体
1、引入
同学们都知道学校学生众多,如果我想查找学校的团员同学的信息的话,这个时候可能要在上万的数据里面去统计。
这样是不是很费时?
那么在VFP中可以用查询来实现查找我们所需的数据。
2、新课
1、查询:
扩展名(.qpr)
【实现方法】查询向导、查询设计器、SQL--SELECT语句
【创建的步骤】命令:
createquery[<查询文件名>]
1 使用查询向导或查询设计器开始创建查询
2 指定查询的数据表
3 选择在查询结果中须出现的字段
4 指定查询条件来筛选所需记录
5 设置排序或分组来查询结果
6 保存与运行查询。
7 设置查询结果的输出方式
【实例1】利用查询向导在xsqk表中查询出入学成绩在460分以上的所有男生记录,并按入学成绩升序输出,查询文件名为“qry1.qpr”
1 单击“文件”-----“新建”----“查询”---“向导”
2 选取“查询向导”----“确定”
3 在查询向导里面进行设置。
选取数据源和字段
设置筛选的条件
【想一想】“与”和“或”的含义
与:
()
或:
()
排序查询结果
设置查询结果所包含的记录数
保存查询
说明:
完成里面有三个选项."保存查询":
只保存查询。
“保存并运行查询”:
保存查询并且运行查询的结果。
“保存查询并在查询设计器修改”:
保存查询并且打开查询的设计器窗口。
【运行查询】:
“!
”对应的快捷键是CTRL+Q或者命令:
do<查询文件名>(必须接上扩展名)
【打开查询设计器】modifyquery[<查询文件名>]
【查询去向】运行查询,默认输出到“浏览”窗口,是临时的,一旦关闭浏览窗口,将自动删除。
如希望永久保存,则须设置查询去向。
方法:
“查询”菜单----“查询去向”---在弹出的“查询去向“对话框,选择查询结果的输出去向。
输出去向有:
浏览、临时表、表、图形、屏幕、报表、标签。
其中默认输出到浏览窗口。
查询去向窗口
【练习1】
1 在xscj表中查询数学及格的所有记录信息。
2 在xscj表中查询出总分前3名的学生记录信息。
【实例2】利用查询设计器,在xsqk表中查询如下信息。
1 姓”刘“的记录。
2 入学成绩介于450到500分的记录。
3 按入学成绩降序排序记录。
4 男女同学入学成绩最高分。
5 入学成绩前3名的记录。
3、小结
请同学总结。
4、作业
1 姓”刘“的记录。
2 入学成绩介于450到500分的记录。
3 按入学成绩降序排序记录。
4 男女同学入学成绩最高分。
入学成绩前3名的记录
5、板书
查询:
扩展名(.qpr)
【实现方法】查询向导、查询设计器、SQL--SELECT语句
【创建的步骤】命令:
createquery[<查询文件名>]
1 使用查询向导或查询设计器开始创建查询
2 指定查询的数据表
3 选择在查询结果中须出现的字段
4 指定查询条件来筛选所需记录
5 设置排序或分组来查询结果
6 保存与运行查询。
7 设置查询结果的输出方式
6、教学后记
1、学生能很好的运用查询向导。
2、对筛选不够熟悉。
查询二
教学目标:
利用查询设计器创建查询
比较运算符及含义
教学重点:
每个选项卡的作用
教学难点:
筛选选项卡的使用
备课时间:
2012年2月5
课时数:
1课时+2上机
授课时间:
2012年2月15、17号
教学方法:
多媒体
1、引入
复习引入。
二、新课
【启动查询设计器方法】单击“文件”-----“新建”----“查询”---“新建文件”
查询设计器窗口组成:
上下两部分,上半部分指定数据源,下半部分由多个选项卡组成。
Ø字段选项卡:
用于指定所需的字段和字段函数(函数和表达式的位置)。
常用函数如下表。
为查询选择字段,还有如下一些快捷方法:
双击字段、双击表中的“*”添加所有字段、按住CTRL键单击多个字段,然后拖动。
函数名称
功能简介
实例
Count()
统计指定字段的记录数
Count(*)Count(姓名)count(distinct姓名)
Min()
计算指定字段值中的最小值
Min(入学成绩)
Max()
计算指定字段的值中的最大值
Max(入学成绩)
Avg()
计算指定字段的值中的平均值
Avg(入学成绩)
Sum()
计算指定字段的值的总计
Sum(入学成绩)
Ø筛选选项卡:
用于为查询设置筛选条件。
比较运算符见书上83页。
Ø排序依据选项卡:
用于排序。
Ø分组依据选项卡:
用于为查询结果分组。
Ø杂项选项卡:
设置无重复记录
说明:
当从多个表获取数据时,就需要将多个表联接起来,VFP提供了4中联接类型。
内部联接、左联接、右联接、完全联接,默认为内部联接。
函数表达式的行标题格式为函数名+下划线+字段名,可使用AS来改变行标题。
格式“函数表达式as行标题”。
3、小结
这节课重点在于几个常用的字段函数以及表间的关系。
4、作业
上机练习。
本节练习题。
5、板书
查询设计器窗口组成:
上下两部分,上半部分指定数据源,下半部分由多个选项卡组成。
Ø字段选项卡:
用于指定所需的字段和字段函数(函数和表达式的位置)。
常用函数如下表。
为查询选择字段,还有如下一些快捷方法:
双击字段、双击表中的“*”添加所有字段、按住CTRL键单击多个字段,然后拖动。
函数名称
功能简介
实例
Count()
统计指定字段的记录数
Count(*)Count(姓名)count(distinct姓名)
Min()
计算指定字段值中的最小值
Min(入学成绩)
Max()
计算指定字段的值中的最大值
Max(入学成绩)
Avg()
计算指定字段的值中的平均值
Avg(入学成绩)
Sum()
计算指定字段的值的总计
Sum(入学成绩)
Ø筛选选项卡:
用于为查询设置筛选条件。
比较运算符见书上83页。
Ø排序依据选项卡:
用于排序。
Ø分组依据选项卡:
用于为查询结果分组。
Ø杂项选项卡:
设置无重复记录
说明:
当从多个表获取数据时,就需要将多个表联接起来,VFP提供了4中联接类型。
内部联接、左联接、右联接、完全联接,默认为内部联接。
函数表达式的行标题格式为函数名+下划线+字段名,可使用AS来改变行标题。
格式“函数表达式as行标题”。
6、教学后记
学生对字段函数比较陌生,需加强记忆和练习。
查询三
教学目标:
利用sql-select语句创建查询
显示区的理解
教学重点:
显示区的理解
教学难点:
显示区的理解
备课时间:
2012年2月6
课时数:
2课时
授课时间:
2012年2月20号
教学方法:
多媒体
一、引入
前面我们已经将了查询向导和查询设计器,还有一种方法就是SQL-SELECT。
二、新课
1、利用SQL-select语句实现查询。
【格式】select显示区from数据源
Where<条件>
Orderby<排序字段>descending|ascending
Groupby<分组字段>
Into查询去向
【显示区】显示查询最后的结果部分。
1 All|distinctall表示允许在查询结果中出现内容重复的记录;distinct表示不允许出现内容重复的字段。
省略两者则表示默认状态为all。
一般放在字段的前面。
2 字段名列表:
用于指定需要查询的字段,多个字段时用“,”隔开。
3 “*”:
代表全部字段。
4 字段函数:
函数[+as新的列标题]
函数名
功能
Count()
统计指定字段的记录数
Max()、min()
统计指定字段的最大值和最小值
Avg()
统计指定字段的平均值
Sum()
统计指定字段的总和
5 From表名:
指定数据源。
实例1:
selectall团员否fromxsqk
实例2:
selectdistinct性别fromxsqk
实例3:
从xsqk表中查询出所有的字段的全部记录内容。
实例4:
从xscj表中查询出语文成绩的最大值、最小值、总语文成绩、平均语文成绩。
实例5:
统计xsqk表中总学生人数。
实例6:
查询xsqk表中的学号、姓名、入学成绩字段的所有记录。
3、小结
这节主要讲了sele的显示区,以及from子句。
4、板书
1、利用SQL-select语句实现查询。
【格式】select显示区from数据源
Where<条件>
Orderby<排序字段>descending|ascending
Groupby<分组字段>
Into查询去向
【显示区】显示查询最后的结果部分。
1 All|distinctall表示允许在查询结果中出现内容重复的记录;distinct表示不允许出现内容重复的字段。
省略两者则表示默认状态为all。
一般放在字段的前面。
2 字段名列表:
用于指定需要查询的字段,多个字段时用“,”隔开。
3 “*”:
代表全部字段。
4 字段函数:
函数[+as新的列标题]
函数名
功能
Count()
统计指定字段的记录数
Max()、min()
统计指定字段的最大值和最小值
Avg()
统计指定字段的平均值
Sum()
统计指定字段的总和
5 From表名:
指定数据源。
5、作业
1:
selectall团员否fromxsqk
2:
selectdistinct性别fromxsqk
3:
从xsqk表中查询出所有的字段的全部记录内容。
4:
从xscj表中查询出语文成绩的最大值、最小值、总语文成绩、平均语文成绩。
5:
统计xsqk表中总学生人数。
6:
查询xsqk表中的学号、姓名、入学成绩字段的所有记录。
6、教学后记
这节主要是学了sele命令,学生对显示区的概念不是很清楚,需加强练习。
查询四
教学目标:
利用sql-select创建查询
掌握Where子句
教学重点:
where子句的比较运算符
教学难点:
where子句的比较运算符
备课时间:
2012年2月6
课时数:
1课时+2上机
授课时间:
2012年2月22、24号
教学方法:
多媒体
1、引入
接着前面的select语句,我们应该学习其中的where子句。
2、新课
【where<条件>】指定查询中需要满足的条件。
常用关系运算符和逻辑运算符构造。
1 Between…and…:
判断数据是否在指定的范围内。
2 in(表达式表):
判断数据是否在表达式表中,各表达式间用逗号隔开。
3 like:
常与“%”和“_”搭配使用。
4 And表示两个条件必须同时满足。
Or表示两个条件满足其中一个就行。
实例1:
查询xsqk表中入学成绩在480---到510分范围内的姓名、性别、入学成绩字段的信息。
实例2:
查询xsqk表中籍贯是重庆或北京的学号、姓名、籍贯字段的信息。
实例3:
查询xscj表中语文在80分以上和数学在80分以上的记录信息。
【orderby排序字段】排序结果按排序字段的顺序排序。
Descending----降序、ascending----升序。
实例1:
用SELECT命令创建一个按入学成绩降序排列的查询。
实例2:
用select创建一个姓名升序排序的查询。
实例3:
从xsqk表中查询每个学生的学号、姓名、性别和入学成绩,先按性别升序,性别相同时,按入学成绩降序排序,实现的语句为?
3、小结
这堂课主要学习了where子句和orderby子句。
4、作业
1:
查询xsqk表中入学成绩在480---到510分范围内的姓名、性别、入学成绩字段的信息。
2:
查询xsqk表中籍贯是重庆或北京的学号、姓名、籍贯字段的信息。
3:
查询xscj表中语文在80分以上和数学在80分以上的记录信息。
4:
用SELECT命令创建一个按入学成绩降序排列的查询。
5:
用select创建一个姓名升序排序的查询。
6:
从xsqk表中查询每个学生的学号、姓名、性别和入学成绩,先按性别升序,性别相同时,按入学成绩降序排序,实现的语句为?
5、板书
【where<条件>】指定查询中需要满足的条件。
常用关系运算符和逻辑运算符构造。
1 Between…and…:
判断数据是否在指定的范围内。
2 in(表达式表):
判断数据是否在表达式表中,各表达式间用逗号隔开。
3 like:
常与“%”和“_”搭配使用。
4 And表示两个条件必须同时满足。
Or表示两个条件满足其中一个就行。
5 实例1:
查询xsqk表中入学成绩在480---到510分范围内的姓名、性别、入学成绩字段的信息。
【orderby排序字段】排序结果按排序字段的顺序排序。
Descending----降序、ascending----升序。
实例1:
用SELECT命令创建一个按入学成绩降序排列的查询。
6、教学后记
这节学生对where子句的比较运算符运用不熟悉。
查询五
教学目标:
利用sql-select创建查询
掌握groupby子句和into子句
教学重点:
groupby子句
教学难点:
groupby子句
备课时间:
2012年2月8
课时数:
2课时
授课时间:
2012年2月27号
教学方法:
多媒体
一、复习引入
请同学上来写出上节课的作业。
【groupby分组字段】分组的操作主要用字段函数对每一组中的记录进行统计。
常用的有count()、max()、min()、sum()、avg()。
实例1:
从xsqk表中查询男女同学的学生人数。
实例2:
从xsqk表中查询团员和非团员的入学成绩的最高、最低、和平均值。
实例3:
统计xsqk表中政治面貌的有数量。
【into目标】将查询结果保存在指定的目标中。
主要掌握两个,一个是intotable<表名>,保存到表;另一个是intocursor<临时表名>,保存到临时表。
实例1:
从xsqk表中查询出学号、姓名字段内容,并将查询结果保存到表名为xsqk11.dbf中。
3、小结
请学生总结。
4、作业
1、查询xsqk表中入学成绩的最大值和最小值的记录。
2、查询xsqk表中性别为男的并且是团员的记录。
3、查询xscj表中语文和数学成绩都高于80分的记录。
4、查询男女同学的语文最高分。
5、查询xsqk表中入学成绩的前三名的记录。
6、写出下列程序的结果
1 Sele*fromxsqkwhere性别=“男”ornot团员否intotablexsqk1
Closeall
Usexsqk1
S=0
S=s+入学成绩
Skip
Enddo
?
“s=”,str(s/reccount(),5,1)
Use
2 Sele*fromxsqkwhere入学成绩between480and510orderby入学成绩intotablexsqk2
Closeall
Usexsqk2
Scan
?
?
姓名
endscan
5、板书
【groupby分组字段】分组的操作主要用字段函数对每一组中的记录进行统计。
常用的有count()、max()、min()、sum()、avg()。
实例1:
从xsqk表中查询男女同学的学生人数。
实例2:
从xsqk表中查询团员和非团员的入学成绩的最高、最低、和平均值。
实例3:
统计xsqk表中政治面貌的有数量。
【into目标】将查询结果保存在指定的目标中。
主要掌握两个,一个是intotable<表名>,保存到表;另一个是intocursor<临时表名>,保存到临时表。
实例1:
从xsqk表中查询出学号、姓名字段内容,并将查询结果保存到表名为xsqk11.dbf中。
6、教学后记
同学对分组理解不够彻底,需加强练习。
SQL语言
教学目的:
能用sql语言创建数据表
能用sql语言向表输入记录内容
能更新数据表的记录内容
教学重点:
sql语句
教学难点:
命令较多
备课时间:
2011年2月5
课时数:
4课时+上机2节
教学方法:
多媒体
1、复习引入
在上节课中我们学习了select语句,请同学起来书写它的命令格式。
2、新课
1、SQL语句是结构化查询语言的缩写。
【功能】数据定义、数据更新、数据查询和数据控制等方面的功能,核心是数据查询。
【数据定义】主要包括数据库和数据表的定义,其核心语句是create、alter、drop。
【数据更新】主要包括数据插入、删除、修改三个方面。
核心语句是insert、delete、update。
2、创建数据表createtable命令
【格式】createtable<表名>(<字段定义>)
【功能】在当前数据库中创建一个数据表。
字段定义包含:
字段名、数据类型、字段宽度、小数位数、字段的完整性约束。
【完整性约束】
1 Default<表达式>默认值约束。
Default'男'-----默认值为男。
2 Unique单值约束。
定义该字段的所有取值必须互不相同。
3 Check(<条件表达式>)error<提示信息>检查约束。
字段的有效性规定及在该规定上出错时的提示信息。
4 Primarykey主关键字约束。
定义该字段为主关键字。
【例】创建xsqk表,实现语句为:
Createtablexsqk(学号C(8)primarykeydefault"0506",;
姓名C(6)notnull,性别C
(2)default"男"check(性别=“男”;
or性别=“女”)error“性别为男或女!
”,出生日期D,团员否L,;
入学成绩N(5,1),简历M,照片(G))
【练习1】创建zgda表。
3、添加字段命令
【格式】altertable<表名>add字段定义
【功能】向指定数据表添加一个新的字段。
【例】向xsqk表增加一个“籍贯C(6)"字段值,默认值为”重庆“。
向xsqk表中增加一个”政治面貌C(4)“。
4、更新记录命令
【格式】update<表名>set<字段名1>=<表达式1>[,<字段名2>=<表达式2>...];[where<条件表达式>]
【功能】在数据表中按指定方式修改记录。
若缺省where条件,则修改数据表的全部记录。
Replace命令若缺省范围和for条件则只修改当前记录。
【例】updatexsqk2set籍贯="上海"whererecno()>=2andrencno()<=4
将xsqk2表中性别为男的同学的入学成绩都加20分,籍贯改为”四川“。
5、修改字段属性
【格式】altertable<表名>alter<字段名>[<字段类型>[(宽度,[小数位数]])]
【功能】将指定数据表的指定字段修改为语句所指定的属性。
【例】将xsqk表中的”姓名“字段的宽度改为8,实现语句是
将xsqk表中”性别“字段的宽度改为逻辑型,实现语句是
6、更改字段名称命令
【格式】altertable<表名>rename<字段名>to<新字段名>
【功能】将指定的字段更名。
【例】把xsqk表中的“学号”改名为“学生号”
7、删除字段命令
【格式】altertable<表名>drop<字段名>
【功能】删除指定字段
【说明】删除字段时,附在该字段的所有约束也一同删除。
【例】altertablexsqkdrop籍贯
8、删除记录
【格式】deleteform<表名>[where<条件表达式>]
【功能】删除指定数据表中符合条件的记录。
9、添加记录
【格式】insertinto<表名>[(<字段名1>[,<字段名2>]...)];
values(<表达式1>[,<表达式2>]...)
【功能】在指定数据表的末尾添加一条新记录。
【说明】若省略字段名表,则默认表中所有字段和表结构中的字段顺序。
该语句一次只能追加一条记录。
3、小结
本节主要了sql语言,重点是select语句。
4、作业
P124
5、板书
6、教学后记
报表
教学目的:
建立报表的的步骤
会预览和打印表
会设计报表带区并灵活使用控件
教学重点:
每一种报表的创建方法
教学难点:
备课时间:
2011年2月5
课时数:
4课时+上机2节
教学方法:
多媒体
一、引入
在数据库系统中,除了需要为用户提供各种数据的存储、维护、查询外,还需将数据打印输出。
VFP使用报表来实现。
二、新课
【扩展名】.frx
【创建报表命令】createreport[报表文件名]
【打开报表设计器】modifyreport
【实现方法】报表向导、快速报表、报表设计器
【报表组成】数据源和布局
【报表样式】列报表、行报表、一对多报表
1、使用报表向导创建xscj的总分降序报表
【步骤】
1 单击“文件”----“新建”-----“报表”-----“向导”
2 选择字段
3 分组
4 报表样式
5 排序
6 预览、保存报表
【说明】在程序中预览或打印报表可使用命令完成。
格式:
reportform<报表文件名>[preview][toprinter[prompt]]
功能:
根据报表布局文件的定义产生报表,并将报表送往屏幕显示或打印机输出。
说明:
preview预览报表
Toprinter将报表打印输出
Prompt在打印之前,弹出“打印设置”对话框
2、报表的默认带区:
页标头、细节带、页注脚带区
Ø页标头:
常用于显示各字段的标题及分隔线等。
该带区的数据每页打印一次。
Ø细节带区:
常用于放置要输出的字段值以及以及各个字段之间的分隔线等。
Ø页注脚带区:
常用于放置打印日期,页码以及说明性文本等信息。
每页打印一次。
Ø标题带区:
添加方法:
报表---标题和总结。
显示整个报表的标题等。
每一个报表打印一次。
Ø总结带区:
添加方法:
报表---标题和总结。
放置汇总的表达式,如总和、平均等,每个报表打印一次。
Ø组标头带区:
添加方法:
报表---数据分组。
常用域控件添加分组字段。
分组字段必须建立索引,并且指定为主控索引。
每一组记录打印一次。
Ø组注脚:
常用语显示本组的汇总信息。
3、小结
请学生总结。
4、作业
P115
五、板书
六、教学后记