《VisualFoxPro6.0的操作.ppt》由会员分享,可在线阅读,更多相关《VisualFoxPro6.0的操作.ppt(89页珍藏版)》请在三一办公上搜索。
1、1,2023/11/8,在关系型数据库中,一个关系就是一张二维表。二维表以文件形式存储于计算机中,称为表文件(简称表),表文件扩展名为.dbf。表是处理数据和建立关系型数据库的基本单元,是数据库的基本组成成分。Visual FoxPro系统有两种表:数据库表和自由表。二者可以相互转换。,2,2023/11/8,2.1 表的创建2.2 表的基本操作2.3 表的排序与索引2.4 表的查询2.5 表的统计与计算2.6 多表操作,3,2023/11/8,2.1 表的创建,表由表结构和表记录两部分组成。表结构描述了数据存放形式以及存储的顺序,也就是指一张表的表头结构,即字段的基本属性。确定了表的字段,就
2、完成了对表机构的定义。表记录即表中的一行,是表要保存的数据主体。数据由记录组成,字段是构成记录的基本单元。创建一个表,首先要建立表结构,然后再输入表记录。,4,2023/11/8,2.1.1 表结构的设计,表机构的设计就是定义表中各个字段的属性。字段的属性包括字段名、字段类型、字段宽度、小数位数和空值支持。,5,2023/11/8,1.字段名字段又称为字段变量,字段名即每个字段的名字,必须以字母或汉字开头,可由字母、数字、汉字、下划线组成,字母大小写无区别,但其中不允许出现空格或其他字符。自由表的字段名最多可由10个字符组成,数据库表的字段名最多可由128个字符组成。当数据库表转换成自由表时,
3、此表的长字段名将截短为10个字符。,6,2023/11/8,2.字段类型字段类型决定了存储在该字段变量中的数据类型。Visual FoxPro定义了13种字段类型,常用的字段类型有字符型(C)、数值型(N)、货币型(Y)、日期型(D)、日期时间型(T)、逻辑型(L)、备注型(M)和通用型(G)。3.字段宽度字段宽度规定了字段所能容纳数据的最大字节数。,7,2023/11/8,4.小数位数小数位数规定了数值型数据要保留几位小数。此时的字段宽度=整数位数+1+小数位数。5.NULL值用于表明某个字段是否允许NULL值(空值)。NULL值是指无明确的值。NULL值不等同于零或空格。一个NULL值不能
4、认为比某个值(包括另一个NULL值)大或小,相等或不等。作为关键字的字段不允许空值。,8,2023/11/8,2.1.2 表的创建,1.表结构的创建【格式】CREATE 表文件名【功能】创建表的结构【说明】表文件的扩展名“.dbf”可以省略不写。此命令所创建的表文件是保存在Visual FoxPro的默认路径下,Visual FoxPro的默认路径可以通过相关设置进行更改。,9,2023/11/8,【例2.1】创建学生表。CREATE 学生在命令窗口中执行上述命令后,则弹出表设计器。将各字段的字段名、类型、宽度和小数位数等输入到表设计器中,单击“确定”按钮,即可完成表结构的创建。如图所示。,1
5、0,2023/11/8,2.表记录的输入在表设计器中设置好表结构后,单击“确定”按钮,则会弹出如图所示的对话框,询问用户是否现在输入记录。如果单击“是”按钮,则会打开如图所示的输入记录窗口。,11,2023/11/8,2.2 表的基本操作,表的基本操作包括表的打开与关闭、表结构的显示与修改、表记录的显示、记录指针定位、表记录的修改、表记录的添加、表记录的删除和恢复、表的复制及表与数组间的数据传递。,12,2023/11/8,2.2.1 表的打开与关闭,1.表的打开【格式】USE【功能】打开指定的表。【说明】表文件的扩展名“.dbf”可以省略不写。新打开的表文件,记录指针指向第一条记录。,13,
6、2023/11/8,2.表的关闭(1)使用USE命令【格式】USE【功能】关闭当前工作区中已经打开的表文件。(2)使用CLEAR命令【格式】CLEAR ALL【功能】关闭所有工作区中已经打开的表文件、索引文件、格式文件和备份文件等,同时释放所有的内存变量,并选择工作区1为当前工作区。,14,2023/11/8,(3)使用CLOSE命令【格式】CLOSE ALL【功能】关闭各种类型文件,并选择工作区1为当前工作区。(4)退出Visual FoxPro系统【格式】QUIT【功能】关闭所有打开的文件,退出Visual FoxPro 系统,并返回到操作系统。,15,2023/11/8,2.2.2 表结
7、构的显示与修改,1.表结构的显示【格式】LIST|DISPLAY STRUCTURE TO PRINTTO FILE【功能】显示当前表文件的结构。2.表结构的修改【格式】MODIFY STRUCTURE【功能】修改当前表文件的结构,16,2023/11/8,【例2.3】显示学生表的结构。USE 学生 LIST STRUCTURE显示结果如图所示。,17,2023/11/8,2.2.3 表记录的显示,【格式】LIST|DISPLAY FIELDS FOR WHILE OFF TO PRINTER PROMPT|TO FILE【功能】将当前表文件的记录按照指定的选项进行显示。,18,2023/11
8、/8,【说明】FIELDS:用来指定要显示的字段,关键字FIELDS可以省略不写。如果将FIELDS 全部省略,则默认显示表中所有字段。:用来指定要显示的记录范围。范围子句共有4种指定方式,分别是ALL、RECORD N、NEXT N和REST。FOR 和WHILE:用来指定要显示的记录所要满足的筛选条件。二者的区别在于FOR 指定表中满足筛选条件的所有记录,WHILE 指定表中从当前记录开始到第一次条件不满足为止之前的所有记录。命令动词DISPLAY和LIST的区别:DISPLAY是分屏显示,LIST是滚屏显示;如果同时省略和子句,DISPLAY只显示当前记录,而LIST则显示全部记录。OF
9、F选项:若不需要显示记录号,则使用OFF选项。LIST和DISPLAY两条命令在执行过程中都可能会引起记录指针的移动。,19,2023/11/8,【例2.5】显示学生表中全部记录的学号、姓名、性别、专业和入学成绩字段。USE 学生LIST FIELDS 学号,姓名,性别,专业,入学成绩显示结果如图所示。,20,2023/11/8,【例2.7】显示学生表中前5条记录的全部信息。USE 学生 LIST NEXT 5显示结果如图所示。,21,2023/11/8,【例2.8】显示学生表中计算机专业学生的学号、姓名和专业信息。USE 学生LIST 学号,姓名,专业 FOR 专业=”计算机”显示结果如图所
10、示。,22,2023/11/8,【例2.10】显示学生表中入学成绩在590分至610分之间的少数民族学生的全部信息。USE 学生DISPLAY FOR 入学成绩=590 AND 入学成绩=610 AND NOT 汉族否显示结果如图所示。,23,2023/11/8,2.2.4 记录指针定位,表的记录指针,是一个指示器,用以指示当前被操作的记录,即当前记录。如果要对某条记录进行操作,必须移动记录指针,使其指向该条记录,这就是记录指针的定位。刚打开的表,即使是空表,记录指针都自动指向记录号为1的记录。记录指针的定位有绝对定位、相对定位和查询定位。,24,2023/11/8,1.绝对定位【格式】GOT
11、O RECORD【功能】将记录指针绝对定位到“记录号”所指示的记录上。【说明】绝对定位与是否打开索引文件没有关系。,25,2023/11/8,【例2.12】显示学生表中第3条和第5条记录。USE 学生GO 3DISPLAY5?RECNO()DISPLAY结果如图所示。,26,2023/11/8,2.相对定位【格式1】SKIP【功能】将记录指针从当前记录位置向上或向下移动若干条记录。【格式2】GOTO【功能】将记录指针移到表文件的首记录或尾记录。,27,2023/11/8,【例2.13】写出下列命令执行后的结果。USE 学生SKIP 2?RECNO()GO TOP?RECNO()?BOF(),E
12、OF()SKIP-1?BOF(),EOF()?RECNO()GO BOTTOM?RECNO()?BOF(),EOF()SKIP?RECNO()?BOF(),EOF(),28,2023/11/8,2.2.5 表记录的修改,1.编辑修改【格式】EDIT|CHANGEFIELDSFOR【功能】按照给定的范围和条件编辑修改当前打开的表文件的记录。执行该命令后,系统打开记录编辑窗口,供用户进行记录的修改。2.浏览修改【格式】BROWSEFIELDSFOR【功能】按照给定的条件浏览修改当前打开的表文件的记录。执行该命令后,系统打开记录浏览窗口,供用户进行记录的修改。,29,2023/11/8,3.替换修改
13、【格式】REPLACE WITH ADDITIVE,WITH ADDITIVE,FOR【功能】用指定表达式的值替换当前表中满足条件记录的指定字段的值。,30,2023/11/8,【例2.17】将学生表中所有少数民族学生的入学成绩加10分。USE 学生REPLACE 入学成绩 WITH 入学成绩+10 FOR NOT 汉族否LIST显示结果如图所示。,31,2023/11/8,【例2.18】求出入学成绩表中每个学生的总分。USE 入学成绩REPLACE ALL 总分 WITH 语文+数学+外语+综合LIST显示结果如图所示。,32,2023/11/8,2.2.6 表记录的添加,1.插入记录【格式
14、】INSERT BEFORE BLANK【功能】在当前表的指定位置上插入一条或多条记录。【例2.19】在学生表中第2条记录之后插入一条新记录,在第5条记录之前插入一条空白记录。USE 学生GO 2INSERTGO 5INSERT BEFORE BLANK,33,2023/11/8,2.追加记录【格式】APPEND BLANK【功能】在当前表的表尾追加一条或多条记录。【例2.20】在学生表的表尾追加一条空白记录。USE 学生APPEND BLANK3.从另一个表文件中追加记录【格式】APPEND FROM FIELDS FOR【功能】从指定表文件中读取数据并追加到当前表文件的末尾。,34,202
15、3/11/8,【例2.21】现有一空表,表名为“计算机专业学生信息”,表结构与学生表完全相同。要求从学生表中读取计算机专业的学生信息追加到此表中。USE 计算机专业学生信息APPEND FROM 学生 FOR 专业=”计算机”LIST显示结果如图所示。,35,2023/11/8,2.2.7 表记录的删除和恢复,1.逻辑删除记录【格式】DELETE FOR WHILE【功能】对当前表中指定的范围内满足条件的记录加上删除标记。,36,2023/11/8,【例2.22】逻辑删除学生表中入学成绩低于600分的学生记录。USE 学生DELETE FOR 入学成绩600LIST显示结果如图所示。,37,2
16、023/11/8,2.隐藏逻辑删除的记录【格式】SET DELETED ON|OFF【功能】将表中已经逻辑删除的记录隐藏或显示。【例2.23】隐藏例3.22中学生表中逻辑删除的记录。USE 学生SET DELETED ONLIST显示结果如图所示。,38,2023/11/8,3.恢复逻辑删除的记录【格式】RECALL FOR WHILE【功能】对当前表中指定范围内满足条件并已逻辑删除的记录取消其删除标记,恢复为正常记录。,39,2023/11/8,【例2.24】恢复学生表中所有被逻辑删除的记录。USE 学生RECALL ALLLIST显示结果如图所示。,40,2023/11/8,4.物理删除已
17、被逻辑删除的记录【格式】PACK【功能】将当前表中所有带删除标记的记录彻底从表中删除。5.物理删除全部记录【格式】ZAP【功能】物理删除当前表中的全部记录。,41,2023/11/8,【例2.25】逻辑删除计算机专业学生信息表中男生的记录后再将其物理删除。USE 计算机专业学生信息DELETE FOR 性别=”男”LISTPACKLIST显示结果如图所示。,42,2023/11/8,2.2.8 表的复制,1.复制表结构【格式】COPY STRUCTURE TOFIELDS【功能】将当前表的结构复制到指定的表中。仅复制当前表的结构,不复制其记录数据。【例2.26】将学生表的学号、姓名、性别、专业
18、和入学成绩字段复制给新表JGFZ。USE 学生COPY STRUCTURE TO JGFZ FIELDS 学号,姓名,性别,专业,;入学成绩,43,2023/11/8,2.复制表文件【格式】COPY TO FIELDSFOR【功能】将当前表中的数据与结构同时复制到指定的表文件中。此命令还可以将当前表复制生成一个其他格式的数据文件。【例2.27】将学生表复制生成新表STUDENT,其结构和记录完全相同。USE 学生COPY TO STUDENT,44,2023/11/8,2.2.9 表与数组间的数据传递,1.将表的单个记录的值传递到一维数组中【格式】SCATTER FIELDS TO【功能】将当
19、前表中当前记录指定字段的内容依次存入数组中。2.将数组传递到表的当前记录中【格式】GATHER FROM FIELDS MEMO【功能】将数组中的数据作为一条记录传递到当前表的当前记录中,以更新各个字段的内容。,45,2023/11/8,3.将表的多条记录复制到二维数组中【格式】COPY TO ARRAY FIELDS FOR【功能】将把指定范围内满足条件的所有记录的有关字段内容全部复制到指定的数组中。4.从数组向表传递多个记录【格式】APPEND FROM ARRAY FOR FIELDS【功能】将满足条件的数组行的数据按记录形式依次添加到当前表中,但该命令将忽略备注型字段。,46,2023
20、/11/8,2.3 表的排序与索引,表中的记录是按照输入记录时的先后顺序即物理顺序排列存放的。但在实际的数据处理应用中,表中的数据量很大,为了方便迅速查找及处理数据,就需要将表中的记录按一定的顺序重新排列。在Visual FoxPro中提供了两种重新排列数据的方法:排序和索引。,47,2023/11/8,2.3.1 排序,【格式】SORT TO ON/A|/D/C,/A|/D/C FIELDS FOR【功能】对当前表中的记录按指定的字段进行排序,并将排序后的记录保存到一个新表中。,48,2023/11/8,【例2.28】将学生表中所有男生的记录按入学成绩从高到低进行排序,生成新表NSCJ。US
21、E 学生SORT TO NSCJ ON 入学成绩/D FOR 性别=”男”USE NSCJLIST显示结果如图所示。,49,2023/11/8,【例2.29】将学生表中的所有记录按专业升序排列,专业相同的按入学成绩降序排列,生成新表ZYCJ,只包含学号、姓名、专业和入学成绩4个字段。USE 学生SORT TO ZYCJ ON 专业,入学成绩/D FIELDS 学号,姓名,专业,;入学成绩USE ZYCJLIST显示结果如图所示。,50,2023/11/8,2.3.2 索引,1.索引的定义索引是按指定的关键字表达式将表中记录从逻辑上进行有序排列的技术。索引是以索引文件的形式存在的。索引文件决定的
22、记录的排列顺序称为逻辑顺序。一个表文件可以创建多个索引文件,索引文件必须与表文件一起使用,而不能单独使用。,51,2023/11/8,2.索引文件的类型索引文件的类型有两种:单索引文件和复合索引文件。单索引文件是根据一个索引关键字表达式建立的索引文件,其扩展名为.idx。复合索引文件中可包含多个索引标识,复合索引文件的扩展名为.cdx。复合索引文件又分为两种:结构复合索引文件和非结构复合索引文件。结构复合索引文件的主文件名与对应的表文件的主文件名同名,其扩展名为.cdx。结构复合索引文件随表的打开而自动打开,随表的关闭而自动关闭。非结构复合索引文件的主文件名由用户指定,其扩展名为.cdx。,5
23、2,2023/11/8,3.索引的类型主索引候选索引 普通索引 唯一索引,53,2023/11/8,4.索引文件的建立(1)单索引文件的建立【格式】INDEX ON TO UNIQUE FOR ADDITIVE【功能】对当前表文件按指定的索引关键字表达式升序建立普通索引或唯一索引,并存储在单索引文件中。,54,2023/11/8,【例2.30】将学生表中的所有记录按入学成绩建立单索引文件。USE 学生INDEX ON 入学成绩 TO RXCJLIST显示结果如图所示。,55,2023/11/8,【例2.31】将学生表中的所有记录按专业和入学成绩建立单索引文件。USE 学生INDEX ON 专业
24、+STR(入学成绩,5,1)TO ZYCJLIST显示结果如图所示。,56,2023/11/8,(2)结构复合索引文件的建立【格式】INDEX ON TAG UNIQUE|CANDIDATE ASCENDING|DESCENDING FOR ADDITIVE【功能】对当前表文件按指定的索引关键字表达式升序或降序建立普通索引、唯一索引、候选索引,并以索引标识的形式存储在与表同名的结构复合索引文件中。,57,2023/11/8,【例2.33】将学生表中的所有记录按入学成绩降序建立结构复合索引文件的索引标识。USE 学生INDEX ON 入学成绩 TAG CJ DESCENDINGLIST显示结果如
25、图所示。,58,2023/11/8,(3)非结构复合索引文件的建立【格式】INDEX ON TAG OF UNIQUEASCENDING|DESCENDING FOR ADDITIVE【功能】对当前表文件按指定的索引关键字表达式升序或降序建立普通索引或唯一索引,并以索引标识的形式存储在非结构复合索引文件中。,59,2023/11/8,【例2.34】为学生表建立一个名为FJG的非结构复合索引文件,其中包含一个按专业建立的索引标识ZY。USE 学生INDEX ON 专业 TAG ZY OF FJGLIST显示结果如图所示。,60,2023/11/8,5.索引文件的打开(1)同时打开表和索引文件【格
26、式】USE INDEX ORDER|TAGOFASCENDING|DESCENDING【功能】打开指定表文件的同时打开相关的索引文件。,61,2023/11/8,【例2.35】在打开学生表的同时打开单索引文件RXCJ和ZYCJ,指定ZYCJ为主控索引。USE 学生 INDEX ZYCJ,RXCJLIST显示结果如图所示。,62,2023/11/8,(2)打开表后再打开索引文件【格式】SET INDEX TOORDER|TAGOFASCENDING|DESCENDING【功能】在已打开表文件的前提下,打开相关索引文件。【例2.36】打开学生表的两个单索引文件RXCJ和ZYCJ,指定ZYCJ为主控
27、索引。USE 学生SET INDEX TO ZYCJ,RXCJ,63,2023/11/8,6.主控索引的指定【格式】SET ORDER TO|TAGOFASCENDING|DESCENDING【功能】指定主控索引。【例2.37】在学生表已经打开的索引文件中,重新指定RXCJ为主控索引。USE 学生SET INDEX TO ZYCJ,RXCJLISTSET ORDER TO RXCJ,64,2023/11/8,7.索引文件的关闭【格式1】USE【功能】关闭当前工作区中打开的表文件及所有索引文件。【格式2】SET INDEX TO【功能】关闭当前工作区中打开的所有单索引文件和非结构复合索引文件,而
28、表文件和结构复合索引文件保持打开状态。【格式3】CLOSE INDEX【功能】关闭当前工作区中打开的所有单索引文件和非结构复合索引文件,而表文件和结构复合索引文件保持打开状态。,65,2023/11/8,8.索引文件的更新【格式】REINDEX【功能】按照原先创建索引的规则重新创建索引文件。,66,2023/11/8,2.4 表的查询,查询是指按照指定的查找条件从数据表中查找所需的记录。在数据处理的实际应用中,经常需要在大量的数据中进行查询操作,查询是检索数据的主要方法。Visual FoxPro提供的查询方法有顺序查询和索引查询。,67,2023/11/8,2.4.1 顺序查询,【格式】LO
29、CATE FOR WHILE【功能】按顺序搜索表从而找到满足指定条件的第一条记录。【例2.38】查询学生表中计算机专业女生的信息。USE 学生LOCATE FOR 专业=“计算机”AND 性别=”女”?FOUND()DISPLAYCONTINUEDISPLAY,68,2023/11/8,2.4.2 索引查询,1.FIND查询【格式】FIND|【功能】在表中查找其主控索引关键字值与或相匹配的第一条记录。【例2.39】查询学生表中姓名为“刘阅”的记录信息。USE 学生INDEX ON 姓名 TO XMFIND 刘阅?FOUND()DISPLAY显示结果如图所示。,69,2023/11/8,2.SE
30、EK查询【格式】SEEK【功能】在表中查找其主控索引关键字值与指定表达式的值相匹配的第一条记录。【例2.40】查询学生表中所有少数民族学生的信息。USE 学生INDEX ON 汉族否 TO MZSEEK.F.?FOUND()DISPLAYSKIP,70,2023/11/8,DISPLAYSKIPDISPLAY显示结果如图所示。,71,2023/11/8,【例2.41】查询学生表中计算机专业男生的信息。USE 学生INDEX ON 专业+性别 TO ZYXBSEEK“计算机男”?FOUND()DISPLAYSKIPDISPLAY显示结果如图所示。,72,2023/11/8,2.5 表的统计与计算
31、,统计与计算也是数据处理应用中常用的一类操作。Visual FoxPro主要提供了5个相关的命令,分别是统计记录数、求和、求平均值、综合计算和分类汇总。,73,2023/11/8,2.5.1 统计记录个数,【格式】COUNT FORWHILETO【功能】统计当前表中指定范围内满足指定条件的记录个数。【例2.42】统计学生表中所有少数民族学生的人数。USE 学生COUNT FOR NOT 汉族否 TO X?”少数民族学生人数是:”,X,74,2023/11/8,2.5.2 求和,【格式】SUM FORWHILETO【功能】对指定范围内满足条件的记录按指定的各个表达式分别求和。【例2.43】对入学
32、成绩表中所有学生的语文、数学、外语三科成绩分别求和。USE 入学成绩SUM 语文,数学,外语,75,2023/11/8,2.5.3 求平均值,【格式】AVERAGE FORWHILETO【功能】对指定范围内满足条件的记录按指定的各个表达式分别求平均值。【例2.44】对学生表中所有学生的入学成绩求平均分。USE 学生AVERAGE 入学成绩,76,2023/11/8,2.5.4 综合计算,【格式】CALCULATE FOR WHILE TO【功能】分别计算当前表中表达式表的值。【例2.45】分别统计计算学生表中的学生总数、平均入学成绩和最高入学成绩。USE 学生CALCULATE CNT(),A
33、VG(入学成绩),MAX(入学成绩),77,2023/11/8,2.5.5 分类汇总,【格式】TOTAL TO ON FIELDS FOR WHILE【功能】将当前表中的记录进行分类汇总,并把汇总的结果存入生成的新表中。【例2.46】将学生表中的记录按性别对入学成绩进行汇总,生成汇总表CJHZ。USE 学生INDEX ON 性别 TO XBTOTAL TO CJHZ ON 性别USE CJHZLIST,78,2023/11/8,2.6 多表操作,前面几节介绍的表操作都是在默认的同一个工作区中进行的,而Visual FoxPro规定一个工作区最多只能打开一个表,因此,当打开一个新表时,以前打开的
34、表就被自动关闭了,则进行的表操作始终都是针对单个表的。但在数据处理的实际应用中,经常需要同时对多个表的数据进行操作。为了解决这个问题,Visual FoxPro提供了多工作区的工作模式。,79,2023/11/8,2.6.1 工作区,1.工作区的定义工作区是Visual FoxPro用来存放打开的表而在内存中开辟的一块存储区域。Visual FoxPro一共提供了32767个工作区,而每个工作区只能打开一个表,则Visual FoxPro最多同时可以打开32767个表来进行多表操作。但一次只能对一个工作区进行操作,则当前正在操作的工作区称为当前工作区,当前工作区中的表称为当前表。系统默认1号工
35、作区为当前工作区。,80,2023/11/8,2.选择当前工作区【格式】SELECT|【功能】选择指定的工作区为当前工作区。【例2.47】依次在1、2、3号工作区打开学生表、教师表和入学成绩表,并指定教师表为当前表,显示其记录信息。SELECT 1 USE 学生SELECT 2USE 教师 ALIAS JSSELECT C USE 入学成绩SELECT JS,81,2023/11/8,3.工作区的互访【格式1】别名.字段名【格式2】别名-字段名【例2.48】依次在1、2号工作区打开学生表和入学成绩表,并指定1号工作区为当前工作区,且显示学生表所有记录的学号、姓名、专业字段和入学成绩表的语文、数
36、学字段。SELECT AUSE 学生SELECT BUSE 入学成绩SELECT ALIST 学号,姓名,专业,B.语文,B-数学,82,2023/11/8,2.6.2 表间临时关联,1.关联的定义表间临时关联是指将当前工作区中的表与其他工作区中的表按某种条件建立关系,从而实现各表记录指针的临时联动。发出关联的表称为父表或主表,被关联的表称为子表。表间临时关联可分为一对一关联、一对多关联和多对多关联。,83,2023/11/8,2.建立表间临时关联(1)建立一对一关联【格式】SET RELATION TO|INTO|ADDITIVE【功能】以当前表为主表与子表建立一对一关联。【例2.49】将学
37、生表与入学成绩表以学号为关联关键字建立一对一关联,并显示学生表中所有学生记录的学号、姓名、专业信息和对应的入学成绩表中每个学生的语文、数学信息。,84,2023/11/8,SELECT 2USE 入学成绩INDEX ON 学号 TO XHSELECT 1USE 学生SET RELATION TO 学号 INTO BLIST 学号,姓名,专业,B.语文,B-数学显示结果如图所示。,85,2023/11/8,(2)建立一对多关联【格式】SET SKIP TO【功能】以当前表为主表与指定工作区中的子表建立一对多关联。【例2.50】将学生表与选课表以学号为关联关键字建立一对多关联,并显示每个学生的学号
38、、姓名、课程号和成绩信息。SELECT 2USE 选课INDEX ON 学号 TO XKXHSELECT 1USE 学生,86,2023/11/8,SET RELATION TO 学号 INTO BSET SKIP TO BLIST 学号,姓名,B.课程号,B.成绩显示结果如图所示。,87,2023/11/8,3.取消表间临时关联在创建关联的命令中,如果不使用ADDITIVE选项,则在建立新关联的同时就取消了当前表原来建立的关联。单独执行SET RELATION TO即取消当前表与其他表的所有关联。使用“SET RELATION OFF INTO|”命令,取消当前表与指定工作区中的表之间的关联。关闭表文件,则所有关联被取消。下次使用时,必须重新建立。,88,2023/11/8,2.6.3 表的连接,【格式】JOIN WITH|TO FORFIELDS【功能】将当前表与其他工作区中的表按指定条件进行连接,生成一个新表。【例2.51】将教师表和课程表进行连接,生成一个含有姓名、课程名、职称和部门字段的新表。SELECT 2USE 课程SELECT 1USE 教师,89,2023/11/8,JOIN WITH B TO JSKC FOR 教师号=B.教师号 FIELDS 姓;名,B.课程名,职称,部门USE JSKCLIST显示结果如图所示。,