资源描述:
《VisualFoxPro程序设计第4章ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VisualFoxPro程序设计教程在软件开发中经常用到数据的查询,如学生成绩管理、人事档案、图书检索等软件,查询的准确性、速度直接影响软件的质量、效率、应用及维护。VFP开发工具用三种途径解决查询问题:用查询设计器建立查询;用视图设计器建立视图;用SQL语句查询。第4章查询与视图4.1概念4.1.1查询使用查询设计器,从数据库表或自由表中获取有用数据,经过对查询条件、查询要求的设置,形成一个后缀为qpr的文件,通过do命令来执行。用视图设计器从数据库表中获取有用数据,与查询一样经过查询条件、查询要求的设置形成视图。视图是以视图名的形式存在数据库中。视图中数据的更新可以
2、使源表相应数据更新。视图的执行要在数据库中执行。4.1.2视图SQL语言是关系数据库的标准语言。它是结构化的查询语言。它集数据定义语言、数据操纵语言、数据控制语言的功能为一体。4.1.3SQL查询4.2SQL语句4.2.1SELECT查询语句1、基本语句格式:SELECT<行列限制表达式>[INTODBF
3、TABLE<新表名>]FROM<表名列表>[WHERE<条件>]功能:从表名列表的表中查询符合条件的,按<行列限制表达式>的形式显示。若选[INTODBF
4、TABLE<新表名>]子句,查询结果存入新表。说明:<行列限制表达式>格式:[ALL
5、DISTINCT][TOP
6、<数值表达式>[PERCENT][别名.][列名[AS栏目名]][,[别名.][列名AS[栏目名]……][ALL
7、DISTINCT]子句:ALL输出结果有重复记录,是子句默认值。DISTINCT输出结果无重复记录。[TOP<数值表达式>[PERCENT]]子句:TOP<数值表达式>是符合条件的内容中取前<数值表达式>个记录。PERCENT是取前面分之<数值表达式>个记录。[别名.][列名[AS栏目名]][,[别名.][列名AS[栏目名]……]子句:列名可以是字段、含字段的表达式。指定输出结果中的字段,此子句也可用*代替此时显示表中所有字段。例4.1SELECT基本语句应用
8、opendatabase学生select*from学生select*from学生intotable学生yselect姓名,入学成绩from学生where入学成绩>=500selectdistinct性别from学生select学生.学号,学生.姓名,学生成绩.数学from学生,学生成绩where学生.性别=‘女’and学生成绩.数学>=60and学生.学号=学生成绩.学号selecttop2*from学生orderby学号closedatabaseall2、SELECT中常用的系统函数在实际应用中经常有统计、求平均值、汇总等操作。SQL提供一些常用的系统函数。函数说明AV
9、G(<表达式>)求<表达式>的平均值COUNT(*)统计记录个数MIN(<表达式>)求<表达式>的最小值MAX(<表达式>)求<表达式>的最大值SUM(<表达式>)求<表达式>的和3、SELECT分组子句格式:[GROUPBY<表达式1>[,<表达式2>[,……]]][HAVING<筛选条件>]功能:对查询结果进行分组。[HAVING<筛选条件>]为指定分组必须满足的条件例4.2分组查询应用opendatabase学生selectavg(入学成绩)from学生selectcount(*)from学生selectsum(入学成绩)from学生groupby性别having性
10、别=‘女’4、排序子句格式:[ORDERBY<关键字表达式>[ASC
11、DESC][,<关键字表达式>[ASC
12、DESC]……]]功能:查询结果按关键字排序,ASC升序为默认值,DESC为降序例4.3查询排序应用opendatabase学生select学号,姓名,入学成绩from学生orderby入学成绩descselect学生.学号,学生.姓名,学生成绩.英语from学生,学生成绩where学生.学号=学生成绩.学号orderby学生成绩.英语selectavg(入学成绩)as“入学成绩平均分”from学生groupby性别orderby入学成绩descclosedata
13、baseall5、嵌套查询嵌套查询就是在SELECT语句中套用SELECT语句,被套在内的SELECT子句通常称为子查询(1)IN等谓词及比较运算符结合使用例4.4IN与NOTIN在嵌套查询中的应用opendatabase学生select*from学生where学号in(select学号from学生成绩where英语>=90)select*from学生where学号notin(select学号from学生成绩where英语<90)closedatabaseall例4.5比较运算符在嵌套查询中的应用opendatabase学生s