书签 分享 收藏 举报 版权申诉 / 85
上传文档赚钱

类型《VisualFoxPro数据库基础》第7章:数据查询与视图设计课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3367885
  • 上传时间:2022-08-24
  • 格式:PPT
  • 页数:85
  • 大小:910.51KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《VisualFoxPro数据库基础》第7章:数据查询与视图设计课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    VisualFoxPro数据库基础 VisualFoxPro 数据库 基础 数据 查询 视图 设计 课件
    资源描述:

    1、http:/ FoxPro的的SQL命令的使用;查询命令的使用;查询设计器各选项卡的设置与设计器各选项卡的设置与SQL_Select子句的对应关系。子句的对应关系。http:/ 查询查询n7.2 视图视图n7.3 SQL命令命令n7.4 查询程序设计实例查询程序设计实例 n7.5 上机指导上机指导 n7.6 习题习题 http:/ 查询设计器简介查询设计器简介 n7.1.2 创建单表查询创建单表查询 n7.1.3 创建多表查询创建多表查询 n7.1.4 创建交叉数据表创建交叉数据表 n7.1.5 运行查询运行查询 http:/ FoxPro的查询设计器提供了一种直观而快速的数据检索途径,使用查

    2、询设计器可以从一个或多个表中检索满足条件的记录,还可以根据需要对检索到的记录进行排序和分组,并可根据检索结果创建表、报表或图表等以显示或保存检索结果。如果仅从一个表中检索记录,就称为单表查询,否则,为多表查询。所创建的查询可以保存为默认扩展名为.QPR的查询文件,以供反复调用,执行指定的数据检索任务。http:/ 查询设计器选项卡http:/ Null:表示选择字段值为空(Null)的记录;Between:与之相配合的是实例文本框中以西文逗号分隔的2个实例数值,用于限定指定字段的数值范围;In:与之相配合的是实例文本框中几个以西文逗号分隔的实例数值,它表示指定字段是否与某个实例相匹配。n实例:

    3、用于输入具体的条件值。n大小写:在进行字符数据的比较时,是否区分大小写。n否:对设置的条件表达式进行非运算。n逻辑:若想使当前行条件与下行条件构成复合条件,则在下拉列表中选择相应的AND或OR来连接,如果设置只有一行的简单条件则使用默认的【无】。n插入:单击【插入】按钮,可以在当前条件行之上插入一个空行。n移去:选中一个条件行时,单击【移去】按钮可以将该条件行删除。http:/ 查询设计器工具栏http:/ 根据学生数据表建立查询文件NSNL.QPR,查询男生的学号、姓名、年龄和性别,并按年龄降序排列记录。操作步骤简述如下:(1)打开查询设计器并添加表。选择【文件】|【新建】|【查询】命令,单

    4、击【新建文件】按钮,选择数据表:“学生”,单击【添加】按钮,单击【关闭】按钮。(2)选择字段。单击字段选项卡,在【可用字段】列表中,依次双击“学生.学号”、“学生.姓名”、“学生.性别”,将3个字段添加到【选定字段】列表中。在【函数和表达式】文本框中输入YEAR(DATE()-YEAR(学生.出生日期)AS 年龄,单击【添加】按钮,把该表达式添加到【选定字段】列表中。http:/ 例7.1查询结果http:/ 根据学生表创建交叉数据表,查询各专业男、女生的平均入学成绩。操作步骤简述如下:(1)打开查询设计器并添加表。选择【文件】|【新建】|【查询】命令,单击【新建文件】按钮,选择数据表“学生”

    5、,单击【添加】按钮,单击【关闭】按钮。(2)选择字段。单击【字段】选项卡标签,将【可用字段】列表中的“学生.性别”、“学生.专业”,添加到【选定字段】列表中。单击【函数和表达式】文本框右侧的按钮,打开【表达式生成器】,在【数学】函数下拉列表中单击求平均值的函数AVG,在【字段】列表中双击“入学成绩”,这时,【表达式】文本框中显示“AVG(学生.入学成绩)”,单击【确定】按钮,该表达式出现在【函数和表达式】文本框中,单击【添加】按钮,把该表达式添加到【选定字段】列表中。http:/ 例7.2查询结果http:/ nsnl.qpr。http:/ 创建视图创建视图 n7.2.2 修改视图修改视图 n

    6、7.2.3 删除视图删除视图 n7.2.4 打开打开/关闭视图关闭视图 http:/ FoxPro在数据库中仅保存对每个视图的定义。该定义包括视图中要引用数据所在表的表名、字段名及其属性设置等。当使用视图时,Visual FoxPro根据视图定义临时获取数据。因此,视图被称为虚表或逻辑表。仅引用一个数据表中的数据所建立的视图称为单表视图;通过引用多个数据表中的数据而建立的视图称为多表视图。使用当前数据库表中数据建立的视图称为本地视图;使用远程服务器上数据建立的视图称为远程视图。http:/ DATABASE。(2)打开视图设计器。选择【文件】|【新建】|【视图】命令,单击【新建文件】按钮,选定

    7、所需的数据表,单击【添加】按钮,单击【关闭】按钮进入视图设计器窗口。方式二:(1)使用菜单打开数据库。选择【文件】|【打开】命令,选择所需数据库,进入数据库设计器窗口。(2)打开视图设计器。选择【数据库】|【新建本地视图】|【新建视图】命令,选择所需的数据表,单击【添加】按钮,单击【关闭】按钮进入视图设计器窗口。观察视图设计器窗口可以发现,视图设计器仅仅比查询设计器窗口多了一个【更新条件】选项卡标签,其余选项卡标签相同,而视图设计器工具栏比查询设计器工具栏少了一个【查询去向】按钮,其余按钮相同。http:/ 根据学生数据表建立视图“平均入学成绩”,含有每个专业学生平均入学分数,记录按平均分降序

    8、排列。操作步骤简述如下:(1)打开数据库。用菜单方式或命令方式打开学生管理数据库。(2)打开视图设计器。添加学生表。(3)选择字段。单击字段选项卡,双击【可用字段】列表中的“学生.专业”,将其添加到【选定字段】列表中,单击【函数和表达式】文本框右侧按钮,打开表达式生成器,在【数学】函数下拉列表中单击AVG函数,在【字段】列表中双击“入学成绩”,在【表达式】文本框中的表达式行尾输入“AS 平均入学成绩”,单击【确定】按钮,单击【添加】按钮,把表达式“AVG(学生.入学成绩)AS 平均入学成绩”,添加到【选定字段】列表。http:/ 例7.3视图浏览(6)查看视图。单击系统菜单的【查询】|【运行查

    9、询】,显示结果如图7.2.1所示。(7)保存视图。关闭视图窗口,在【保存】对话框中输入视图名“平均入学成绩”,单击【确定】按钮。打开数据库设计器窗口查看学生管理数据库,可以看到刚刚建立的视图。http:/ 根据学生表和成绩表建立视图“高等数学成绩”,含有计算机专业学生的学号、姓名、专业和高等数学成绩,记录按学号升序排列。操作步骤简述如下:(1)打开数据库。用菜单方式或命令方式打开学生管理数据库。(2)打开视图设计器。添加学生表和成绩表。(3)设置连接表达式。单击【连接】选项卡标签,设置连接条件为:学生.学号成绩.学号,连接类型为内部连接。(4)选择字段。单击【字段】选项卡标签,依次双击【可选字

    10、段】列表中的“学生.学号”、“学生.姓名”、“学生.专业”、“成绩.高等数学”,将个字段添加到【选定字段】列表中。http:/ 例7.4视图浏览(7)查看视图。选择【查询】|【运行查询】命令,显示结果如图7.2.2所示。(8)保存视图。关闭视图窗口,在【保存】对话框中输入视图名“高等数学成绩”,单击【确定】按钮。http:/ 在前面例题所建立的视图中,对记录进行筛选的筛选实例都是在设计阶段就确定了的,视图中的记录是相对固定的。如上例,筛选条件为:学生.专业计算机,筛选实例“计算机”在设计阶段即已确定。如果希望在每次使用视图时临时指定记录的筛选实例,例如,打开视图时提示输入具体专业名称以筛选指定

    11、专业的记录,则可以采用参数视图,如下例。例例7.5 根据学生表建立视图“专业学生”,给出用户指定专业的学生信息。操作步骤简述如下:(1)打开数据库。用菜单方式或命令方式打开学生管理数据库。(2)打开视图设计器。添加学生表。(3)选择字段。单击【字段】选项卡标签,单击【全部添加】按钮选择全部字段为选定字段。(4)设置筛选条件。单击【筛选】选项卡标签,设置筛选条件为:学生.专业=?专业。http:/ 例7.5视图浏览图7.2.3 视图参数对话框http:/ 使用视图,可以从表中提取一组记录,改变这些记录的值,并把更新结果送回到源表中,视图的这一功能是通过对视图设计器的【更新条件】选项卡进行相应设置

    12、来实现的。如图7.2.5所示,更新条件选项卡的各项功能如下:(1)【表】下拉列表:指定视图使用的、可以更新数据的表。(2)【字段名】列表:显示视图的选定字段,这些字段又可分为如下3类:图7.2.5 更新条件选项卡n关键字段:在钥匙符号列有标记的是关键字段,关键字段用来使视图中的修改与源表中的原始记录相匹配。系统自动将表的主关键字标记为关键字段,用户可以根据需要另选其他字段作为关键字段,方法是点击该字段的钥匙列按钮使标记出现。n可更新字段:在笔型符号列有标记的是可更新字段。n普通字段:在钥匙和笔型符号列均无标记的字段。http:/ WHERE子句包括】单选项:在远程视图进行更新源表操作时,用于检

    13、测服务器上的更新冲突,4个选项如下:n【关键字段】:当源表中的关键字段被改变时,更新失败。n【关键字和可更新字段】:当远程表中的可更新字段被改变时,更新失败。n【关键字和已修改字段】:当在本地修改的任一字段在源表中已被改变时,更新失败。n【关键字和时间戳】:当远程表记录的时间戳首次检索以后又被修改过,更新失败。(7)【使用更新】单选项:用于指定字段在服务器上的如下2种更新方式:nSQL DELETE然后INSERT:删除源表记录,再创建一个新的在视图中被修改的记录。nSQL UPDATE:用视图字段的变化来修改源表的相应字段。http:/ 根据学生表建立视图“更改专业”,包含所有学生的学号、姓

    14、名、性别和专业字段,使专业字段可更新。操作步骤简述如下:(1)打开学生管理数据库。(2)打开视图设计器,添加学生表,在【字段】选项卡中选定所需的4个字段。(3)单击【更新条件】选项卡标签,如图7.2.5所示,指定关键字段和可更新字段,选中【发送SQL更新】。(4)关闭视图设计器窗口,保存视图为“更改专业”。(5)在数据库设计器窗口,双击视图“更改专业”,在打开的浏览窗口,将学生“章硕”的专业字段值由“管理”改为“计算机”,关闭该视图浏览窗口,双击学生数据表,观察到“章硕”的所学专业已改为“计算机”。http:/ DATABASE 和MODIFY VIEW ,进入视图设计器窗口。http:/ D

    15、ATABASE 和DELETE VIEW ,删除指定视图。http:/ DATABASE 和USE IN,打开指定视图。2.关闭视图使用命令:USE IN,关闭在指定工作区中打开的视图。http:/ Visual FoxPro的的SQL查询命令查询命令 n7.3.2 Visual FoxPro的的SQL定义命令定义命令n7.3.3 Visual FoxPro的的SQL操纵命令操纵命令 http:/ Query Language)是一种通用的、功能强大的关系数据库标准语言,国际标准化组织已将其确定为关系数据库语言的国际标准,被绝大多数商品化的关系数据库系统所采用,它简洁易学、使用方便灵活、功能丰

    16、富。前面已经提到过,在使用设计器设计查询和视图时,可随时查看所对应的SQL命令,可见Visual FoxPro也支持SQL命令。Visual FoxPro的SQL命令可实现数据定义、操纵和查询功能。http:/ FoxPro的SQL查询命令,该命令的查询功能十分丰富,使用方便灵活,可实现单表查询和相关多表查询,并可嵌套使用。1.SQL_SELECT命令 简单地讲,SQL_SELECT命令实现的是从指定表,按指定方式查找指定数据并送到指定地点的操作。该命令的可选项较多,这里仅介绍其一般格式。命令格式:SELECT ALL|DISTINCT TOPPERCENT.AS,.AS.FROM!INNER

    17、|LEFT|RIGHT|FULL JOIN!ON INTO|TO FILE ADDITIVE|TO PRINTER PROMPT|TO SCREENWHERE GROUP BY ,.HAVING ORDER BY ASC|DESC,ASC|DESC.http:/ JOINON 选项用于设置多表查询的连接条件,与【连接】选项卡中的设置相对应,INNER|LEFT|RIGHT|FULL分别表示内部连接、左连接、右连接和完全连接,省略时默认为内部连接。WHERE 子句用于设置对查询结果记录的筛选条件,与【筛选】选项卡中的设置相对应。GROUP BY ,.子句用于设置分组依据,与【分组依据】选项卡中的

    18、设置相对应。HAVING 选项用于对分组记录进行筛选,只有满足筛选条件的分组记录才可能被输出,HAVING子句要与GROUP BY子句配合使用。http:/ BY ASC|DESC,ASC|DESC.子句用于表示查询结果记录的排列方式,与【排序依据】选项卡中的设置相对应。若排序依据列为表达式,则通常使用该列在输出列中的序号表示。ASC/DESC分别表示升序和降序,省略时,默认为升序。ALL|DISTINCT 和TOPPERCENT选项分别与【杂项】选项卡中的“无重复记录”和“列在前面的记录”设置相对应,ALL表示输出满足条件的全部记录,是选项省略时的默认值;DISTINCT表示重复的记录只输出

    19、一次,即查询结果当中无重复记录;TOP子句表示输出查询结果的前N条(无PERCENT时)或前N%条(有PERCENT时),TOP子句必须配合ORDER BY子句使用,当排序依据字段有重复值时,输出的记录可能多于TOP的设置值。INTO|TO FILE ADDITIVE|TO PRINTER PROMPT|TO SCREEN子句用于指定查询结果的去向。INTO子句的可以是:ARRAY、CURSOR、DBF 或TABLE;TO FILE子句指定将查询结果送指定的文本文件,使用ADDITIVE表示将查询结果追加到指定的文本文件中,否则,覆盖文本文件内容;TO PRINTER PROMPT子句表示将查

    20、询结果送打印机输出,使用PROMPT表示打印之前弹出打印设置对话框,供用户进行打印设置;TO SCREEN子句表示在Visual FoxPro主窗口或用户自定义的当前窗口中显示查询结果。当INTO或TO子句省略时,查询结果显示在浏览窗口中。http:/ FROM,它表示在浏览窗口中显示指定表的指定列。另外,在SELECT子句中还可以使用以下函数实现统计查询:AVG():计算表达式的平均值。COUNT(/*):统计指定字段的值的个数/输出记录数。MAX():求表达式的最大值。MIN():求表达式的最小值。SUM():计算表达式的和。使用上列函数时,若配合GROUP BY子句可以实现分组统计。ht

    21、tp:/ 查询学生的学号和姓名。SELECT 学生.学号,学生.姓名 FROM 学生命令执行结果如图7.3.1所示。图7.3.1 例7.7命令执行结果http:/ 查询招生专业。SELECT DISTINCT 学生.专业 FROM 学生命令执行结果如图7.3.2所示。例例7.9 查询英语专业的学生信息。SELECT*FROM 学生 WHERE 学生.专业=英语命令执行结果如图7.3.3所示。图7.3.2 例7.8命令执行结果图7.3.3 例7.9命令执行结果http:/ 查询所有王姓学生的信息。SELECT*FROM 学生 WHERE 学生.姓名 LIKE 王%命令执行结果如图7.3.4所示。

    22、例例7.11 查询管理专业学生的入学成绩,并按入学成绩降序排列记录。SELECT 学生.学号,学生.姓名,学生.专业,学生.入学成绩;FROM 学生;WHERE 学生.专业=管理;ORDER BY 学生.入学成绩 DESC命令执行结果如图7.3.5所示。图7.3.4 例7.10命令执行结果图7.3.5 例7.11命令执行结果http:/ 查询学生平均入学成绩。SELECT AVG(学生.入学成绩)AS 平均入学成绩 FROM 学生命令执行结果如图7.3.6所示。例例7.13 查询各专业学生平均入学成绩。SELECT 学生.专业,AVG(学生.入学成绩)AS 平均入学成绩;FROM 学生;GRO

    23、UP BY 学生.专业命令执行结果如图7.3.7所示。例例7.14 查询学生人数。SELECT COUNT(*)AS 学生人数 FROM 学生命令执行结果如图7.3.8所示。图7.3.6 例7.12命令执行结果图7.3.7 例7.13命令执行结果图7.3.8 例7.14命令执行结果http:/ 查询各专业女学生人数,结果按人数升序排列。SELECT 学生.专业,COUNT(*)AS 女生人数;FROM 学生;WHERE 学生.性别=女;GROUP BY 学生.专业;ORDER BY 2命令执行结果如图7.3.9所示。例例7.16 查询专业数量。SELECT COUNT(DISTINCT 学生.

    24、专业)AS 专业数 FROM 学生命令执行结果如图7.3.10所示。在本例中,如果把命令中的DISTINCT去掉,执行结果显示的专业数为12,所统计的是专业字段值(非NULL)的个数,而不是专业的种类数。因此,需要对专业字段使用关键字DISTINCT把重复值去掉,从而实现本例要求。图7.3.9 例7.15命令执行结果图7.3.10 例7.16命令执行结果http:/ 查询最高和最低入学成绩。SELECT MAX(学生.入学成绩)AS 最高入学成绩,;MIN(学生.入学成绩)AS 最低入学成绩;FROM 学生命令执行结果如图7.3.11所示。例例7.18 从成绩表中查询总分的最高分。SELECT

    25、 MAX(成绩.计算机+成绩.英语+成绩.高等数学)AS 最高总分;FROM 成绩命令执行结果如图7.3.12所示。图7.3.11 例7.17命令执行结果图7.3.12 例7.18命令执行结果http:/ 多表查询是指从一个以上的相关表中查找所需数据,因此,表与表之间连接条件的设置通常是必不可少的。连接条件既可以通过JOIN_ON子句来设置,还可以通过WHERE子句来设置,只是WHERE子句无法指定连接类型。例例7.19 从学生表和成绩表中,查询学生的学号、姓名、性别、专业、计算机、英语、高等数学成绩和总分,查询结果首先按专业升序排列记录,专业相同时按总分降序排列记录。此例要求与例7.3完全相

    26、同,对应的SQL_SELECT命令如下:SELECT 学生.学号,学生.姓名,学生.性别,学生.专业,;成绩.计算机,成绩.英语,成绩.高等数学,;成绩.计算机+成绩.英语+成绩.高等数学AS总分;FROM 学生 INNER JOIN 成绩;ON 学生.学号=成绩.学号;ORDER BY 学生.专业,8 DESC http:/ 学生.学号,学生.姓名,学生.性别,学生.专业,;成绩.计算机,成绩.英语,成绩.高等数学,;成绩.计算机+成绩.英语+成绩.高等数学AS总分;FROM 学生,成绩;WHERE 学生.学号=成绩.学号;ORDER BY 学生.专业,8 DESC 若命令中引用的字段名在F

    27、ROM子句所列出的所有表中是唯一的,则该字段名的前缀可以省略,否则,需使用所在表的别名做前缀以表明该字段属于哪个表,如上列命令可简化如下:SELECT 学生.学号,学生.姓名,性别,专业,计算机,英语,高等数学,;计算机+英语+高等数学AS总分;FROM 学生,成绩;WHERE 学生.学号=成绩.学号;ORDER BY专业,8DESC命令执行结果如图7.3.13所示。http:/ 例7.19命令执行结果http:/ 查询计算机专业学生的成绩。SELECT 成绩.*;FROM 成绩,学生;WHERE 成绩.学号=学生.学号 AND 学生.专业=计算机命令执行结果如图7.3.14所示。图7.3.1

    28、4 例7.20命令执行结果http:/ 所谓嵌套查询是指,在一个SQL_SELECT命令的WHERE子句中含有另一个SQL_SELECT命令,这个命令通常被称为子查询。子查询的结果通常用来表示条件值。嵌套查询的WHERE条件通常有如下几种形式:ALL():筛选指定字段与全部子查询结果都满足条件的记录。ANY/SOME():筛选指定字段至少与一个子查询结果满足比较条件的记录。IN():筛选指定字段值在子查询结果中的记录。EXIST():只要子查询结果非空筛选条件就为真值。其中,比较运算符为:、=、=、=和(!=,#)。注意:HAVING子句的筛选条件不能使用子查询。http:/ 查询入学成绩最高

    29、的学生信息。SELECT*FROM 学生;WHERE 学生.入学成绩=ALL(SELECT 学生.入学成绩 FROM 学生)命令执行结果如图7.3.15所示。图7.3.15 例7.21命令执行结果http:/ 查询计算机专业有选修课程的学生信息,并以查询结果生成表文件“CC.DBF”。SELECT 学生.*;FROM 学生;WHERE 学生.学号 IN(SELECT 选课.学号 FROM 选课);AND 学生.专业=计算机;INTO TABLE CCBROWSE命令执行结果如图7.3.16所示。图7.3.16 例7.22命令执行结果http:/ FoxPro的SQL定义命令用于定义表结构、定义

    30、视图、修改表结构以及删除表或视图。1.定义表结构简单命令格式:CREATE TABLE FREE(,),(,)命令功能:建立一个含有指定字段的空表。http:/ 各种数据类型的表示符号http:/ 在学生管理数据库中建立学生档案表,结构与学生表相同。使用命令:OPEN DATABASE 学生管理CREATE TABLE 学生档案(学号C(7),班级编号C(2),姓名C(8),性别C(2),;出生日期D,党团员L,专业C(8),入学成绩N(8,0),;e_mail C(15),简历M)执行上述命令,在学生管理数据库中,创建了一个名为“学生档案”的空表。http:/ TABLE ADD (,)命令

    31、功能:为指定表增加一个新的字段。简单命令格式2:ALTER TABLE ALTER (,)命令功能:对指定表修改指定字段的数据类型、字段宽度或小数位数。简单命令格式3:ALTER TABLE DROP 命令功能:从指定表中删除指定字段。http:/ 为学生档案表增加一个通用型字段用以存放学生照片。执行命令:ALTER TABLE 学生档案 ADD 照片 G例例7.25 把学生档案表的入学成绩字段的数据类型改为整型。执行命令:ALTER TABLE 学生档案 ALTER 入学成绩 I例例7.26 删除学生档案表的照片字段。执行命令:ALTER TABLE 学生档案 DROP 照片 http:/

    32、SQL VIEW AS 命令功能:由SQL_SELECT的描述生成指定的视图定义。例例7.27 由学生档案表生成视图“英语专业学生”,该视图含有英语专业的学生信息。执行命令:CREATE SQL VIEW 英语专业学生 AS SELECT*FROM 学生档案;WHERE 专业=英语 http:/ TABLE 命令功能:删除指定表。例例7.28 删除学生档案表。执行命令:DROP TABLE 学生档案命令格式2:DROP VIEW 命令功能:删除指定视图。例例7.29 删除英语专业学生视图。执行命令:DROP VIEW 英语专业学生提示:学生档案表被英语专业学生视图引用,当该表被删除后,引用该表

    33、的视图虽在,但该视图已无法使用。http:/ FoxPro的SQL数据操纵命令用于对表中的记录进行更新,包括插入记录、删除记录和修改记录。1.插入记录命令格式:INSERT INTO (,)VALUES(,)命令功能:向指定表追加一条具有给定字段值的记录。http:/ 向学生表追加一条新记录:2004120,02,李柠,女,12/25/85,F,英语,608。执行命令:INSERT INTO 学生;(学号,班级编号,姓名,性别,出生日期,党团员,专业,入学成绩);VALUES;(2004120,02,李柠,女,1985-12-25,.,英语,608)说明:命令执行后,记录指针指向追加的新记录。

    34、若被追加记录的表尚未打开,命令执行时系统自动选择一个新的工作区把表打开追加记录,但当前工作区不变化;若被追加记录的表已经打开,但不在当前工作区,命令执行后,当前工作区不变化。若省略字段名列表,则表示字段值的各表达式的排列顺序要与字段在表结构中的定义顺序一致。http:/ SET=,=WHERE命令功能:对指定表中满足条件的记录,用指定表达式的值修改相应字段值。说明:省略WHERE时,表示对表中所有记录执行指定的修改操作。例例7.31 修改学生表中李柠的记录,将“党团员”改为“真值”,“专业”改为“管理”。执行命令:UPDATE 学生 SET 党团员=.T.,专业=管理;WHERE 学号=200

    35、4120 http:/ FROM WHERE 命令功能:在指定表中,为满足条件的记录加删除标记。说明:省略WHERE时,表示为表中所有记录加删除标记。例例7.32 将学生表中,学生李柠的记录删除。执行命令:DELETE FROM 学生 WHERE 学号=2004120SELECT 学生PACKhttp:/ FROM 命令。该命令执行后,学生表一定处于打开状态,但未必在当前工作区。而该删除命令仅仅为要删除的记录添加删除标记。如果要物理删除该记录,就要先使学生表所在工作区为当前工作区,然后执行PACK命令,使学生李柠的记录被真正删除。例例7.33 逻辑删除学生表的所有记录,再去掉所有删除标记。执行

    36、命令:DELETE FROM 学生SELECT 学生BROWSERECALL ALLBROWSE http:/ 根据学生表设计如图7.4.1所示的查询表单,具有按学号和专业查询学生档案的功能,文件名为“学生档案查询.SCX”。图7.4.1 例7.34表单设计界面http:/ file(temp.dbf)use in temp delete file temp.dbfendif if thisform.OptiongroupQuery.value=1 if not empty(alltrim(thisform.Txt学号.value)select*from 学生 where;学生.学号=allt

    37、rim(thisform.Txt学号.value)into dbf temp select temp browse title 查询结果 else messagebox(请输入学号!,0+64+0,查询提示)endifelse if not empty(thisform.Combo专业.value)select*from 学生 where 学生.专业=thisform.Combo专业.value;order by 学生.班级编号 into dbf temp select temp browse title 查询结果 else messagebox(请指定专业!,0+64+0,查询提示)endi

    38、fendif http:/ FORM 学生档案查询运行结果参见图7.4.2。图7.4.2 例7.34表单运行结果参考http:/ 创建单表查询创建单表查询 n7.5.2 创建多表查询创建多表查询 n7.5.3 在表单中显示视图及更新数据在表单中显示视图及更新数据 http:/ 根据学生数据表建立查询文件RXJF.QPR,按性别查询平均入学分数。操作步骤简述如下:(1)打开查询设计器并添加表。选择【文件】|【新建】|【查询】命令,单击【新建文件】按钮,选择数据表“学生”,单击【添加】按钮,单击【关闭】按钮。(2)选择字段。单击【字段】选项卡标签,在【可用字段】列表中,双击“学生.性别”,将该字段

    39、添加到【选定字段】列表中。单击【函数和表达式】文本框右侧的按钮,打开表达式生成器,在【数学】函数下拉列表中单击求平均值的函数AVG,在【字段】列表中双击“入学成绩”,这时,【表达式】文本框中显示:AVG(学生.入学成绩),在其后输入:AS 平均入学成绩,使表达式文本框中显示:AVG(学生.入学成绩)AS 平均入学成绩,单击【确定】按钮,该表达式出现在【函数和表达式】文本框中,单击【添加】按钮,把该表达式添加到【选定字段】列表中。http:/ 例7.35 查询结果http:/ 根据学生表和成绩表建立查询文件ZCJ.QPR,查询学生的学号、姓名、性别、专业、计算机、英语、高等数学成绩和总分,查询结

    40、果首先按专业升序排列记录,专业相同时按总分降序排列记录。操作步骤简述如下:(1)打开查询设计器并添加表。选择【文件】|【新建】|【查询】命令,单击【新建文件】按钮,选择数据表“学生”,单击【添加】按钮,选择数据表“成绩”,单击【添加】按钮。(2)建立表间连接。接上步,在打开的连接条件对话框中,系统给出默认连接条件为:学生.学号=成绩.学号,连接类型为内部连接,恰好满足本例设计要求,单击【确定】按钮,单击【关闭】按钮。(3)选择字段。单击【字段】选项卡标签,在【可用字段】列表中,依次双击“学生.学号”、“学生.姓名”、“学生.性别”、“学生.专业”、“成绩.计算机”、“成绩.英语”、“成绩.高等

    41、数学”,将所需字段添加到【选定字段】列表中。单击【函数和表达式】文本框右侧的按钮,打开【表达式生成器】,从【来源于表】下拉列表中选择“成绩”,在【字段】列表中,依次双击“计算机”、“英语”、“高等数学”,在表达式文本框的这3个字段之间键入加号,在行尾输入:AS 总分,形成表达式:成绩.计算机+成绩.英语+成绩.高等数学 AS 总分,单击【确定】按钮,单击【添加】按钮,把该表达式添加到【选定字段】列表中。http:/ 例7.36查询结果http:/ 为例7.6创建的视图“更改专业”。建立数据编辑表单,仅允许修改专业字段,并可随时浏览源表的相应变化,表单文件名为“更改专业.SCX”。操作过程简述如

    42、下:(1)创建表单。为简化表单设计过程,采用向导方式创建表单,过程如下:n选择【文件】|【新建】|【表单】|【向导】命令,单击【表单向导】,单击【确定】按钮。n在向导步骤1中,选择学生数据库中的更改专业视图的全部字段为选定字段。n在向导步骤2中,选择浮雕样式和文本按钮。n在向导步骤4中,输入表单标题“使用视图更改专业”;选择【保存表单并用表单设计器修改表单】,单击【完成】按钮,输入表单文件名“更改专业”。单击【保存】按钮。http:/ 例7.37表单http:/ 学生BROWSE NOMODIFY http:/ FORM 更改专业 在表单中,用定位按钮或查询按钮,定位到要修改专业的记录。单击【

    43、编辑】按钮进入记录编辑状态,修改当前记录的专业字段值,单击【保存】按钮。单击【浏览源表】按钮,在浏览窗口中可以看到源表相应记录的专业字段值被修改。最后单击ESC键关闭浏览窗口。http:/ 。(2)若有查询文件:MyQuery.QPR,执行该查询的命令为 。(3)查询设计器的【连接】选项卡在创建 查询时使用,默认的连接类型为 。(4)与查询设计器【筛选】选项卡设置相对应的SQL_SELECT子句是 子句。(5)与查询设计器【排序依据】选项卡设置相对应的SQL_SELECT子句是 子句。(6)在查询设计器的“分组依据”选项卡中,“满足条件”所对应的SQL_SELECT命令子句是 子句。(7)在查

    44、询设计器的【杂项】选项卡中,选中“无重复记录”所对应的SQL_SELECT命令的关键字是 。(8)在SQL_SELECT命令中,将查询结果输出到表文件中,应该使用 子句。http:/ 登记表 SET WHERE 。(18)使用SQL命令创建视图:计算机学生选课,其中含有计算机专业学生的学号、姓名、专业和课程名,请对如下命令填空:CREATE SQL AS SELECT 学号,姓名,专业,;FROM 学生,WHERE 。(19)删除(13)题所创建的表,对应的SQL命令为:DROP 登记表。(20)删除(16)题所创建的视图,对应的SQL命令为:DROP 计算机学生选课。http:/ OPEN

    45、QUERY MyQuery.QPR B MODIFY QUERY MyQuery.QPR C DO QUERY MyQuery.QPR D CREATE QUERY MyQuery.QPR(2)在Visual FoxPro中,关于视图的正确叙述是()。A 视图与数据库表相同,用来存储数据 B 视图不能同数据库表建立连接 C 在视图上不能进行更新操作 D 视图是从一个或多个数据库表导出的虚拟表(3)下面有关视图的描述正确的是()。A 可以使用MODIFY STRUCTURE命令修改视图的结构 B 视图不能删除,否则影响源表 C 视图是由表复制产生的 D 使用SQL_SELECT命令对视图进行查询

    46、时,必须事先打开该视图所在的数据库http:/ 筛选 B 排序依据 C 分组依据 D 更新条件(5)在SQL语句中,与表达式入学成绩 BETWEEN 590 AND 610功能相同的表达式是()。A 入学成绩=590 AND 入学成绩590 AND 入学成绩610 C 入学成绩610 D 入学成绩=590 OR 入学成绩=610(6)在SQL语句中,与表达式“班级编号 NOT IN(01,02)”功能相同的表达式是()。A 班级编号=01 AND 班级编号=02 B 班级编号!=01 OR 班级编号#02 C 班级编号01 OR 班级编号!=02 D 班级编号!=01 AND 班级编号!=02

    47、http:/ ALT B DELETE C ESC D RETURN(8)使用SQL_SELECT命令进行分组检索时,为了去掉不满足条件的分组,应当使用()。A WHERE子句 B 在GROUP BY后面使用HAVING 子句 C 先使用WHERE子句,再使用HAVING子句 D 先使用HAVING 子句,再使用WHERE子句(9)在SQL_SELECT嵌套查询中,与量词ANY同意的词是()。A ALL B EXIST C IN D SOME(10)下面有关HAVING子句描述错误的是()。A HAVING子句必须与GROUP BY子句同时使用,不能单独使用 B 使用HAVING子句的同时不能使用WHERE子句 C 使用HAVING子句的同时可以使用WHERE子句 D 使用HAVING子句的作用是限定分组的条件 http:/ FoxPro的哪几种SQL命令?每种命令的主要作用为何?http:/

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《VisualFoxPro数据库基础》第7章:数据查询与视图设计课件.ppt
    链接地址:https://www.163wenku.com/p-3367885.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库