《数据库操作及查询统计学习教案.pptx》由会员分享,可在线阅读,更多相关《数据库操作及查询统计学习教案.pptx(84页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、会计学1数据库操作数据库操作(cozu)及查询统计及查询统计第一页,共84页。25.1 5.1 5.1 5.1 数据库基本操作数据库基本操作数据库基本操作数据库基本操作 结构显示和表的访问结构显示和表的访问结构显示和表的访问结构显示和表的访问 记录操作记录操作记录操作记录操作5.2 5.2 5.2 5.2 数据库可视化操作数据库可视化操作数据库可视化操作数据库可视化操作 记录的浏览与编辑修改记录的浏览与编辑修改记录的浏览与编辑修改记录的浏览与编辑修改 备注字段和通用字段的操作备注字段和通用字段的操作备注字段和通用字段的操作备注字段和通用字段的操作5.3 5.3 5.3 5.3 排序排序排序排序
2、(pi x)(pi x)(pi x)(pi x)与索引与索引与索引与索引 排序排序排序排序(pi x)(pi x)(pi x)(pi x)操作操作操作操作 索引操作索引操作索引操作索引操作5.4 5.4 5.4 5.4 查询命令查询命令查询命令查询命令 顺序查询顺序查询顺序查询顺序查询 索引查询索引查询索引查询索引查询内容(nirng)目录第1页/共84页第二页,共84页。35.5 5.5 多表的操作多表的操作多表的操作多表的操作 工作区工作区工作区工作区 表的关联表的关联表的关联表的关联 表的联接表的联接表的联接表的联接5.6 5.6 统计命令统计命令统计命令统计命令 5.6.1 5.6.1
3、 计数命令计数命令计数命令计数命令 5.6.2 5.6.2 求和命令求和命令求和命令求和命令 5.6.3 5.6.3 求平均值命令求平均值命令求平均值命令求平均值命令 5.6.4 5.6.4 汇总命令汇总命令汇总命令汇总命令5.7 5.7 表的复制表的复制表的复制表的复制 5.7.1 5.7.1 表的复制表的复制表的复制表的复制 5.7.2 5.7.2 表结构表结构表结构表结构(jigu)(jigu)的复制的复制的复制的复制 5.8 SELECT-SQL5.8 SELECT-SQL查询查询查询查询5.9 5.9 视图视图视图视图 (*)内容(nirng)目录第2页/共84页第三页,共84页。4
4、(8)掌握(zhngw)对表中数据的四种统计命令(SUM、AVERAGE、COUNT、TOTAL)使用方法。(9)掌握(zhngw)SELECT查询语句的引用,能灵活根据数据查询要求组合WHERE、HAVING、ORDER BY、GROUP BY等子句并能使用INSERT INTO、DELETE FROM、UPDATE SET语句。第3页/共84页第四页,共84页。5.1.1 表结构显示(xinsh)和表的访问1、表结构(jigu)显示格式:LIST|DISPLAY STRUCTURE TO PRINT PROMPT|TO FILE NOCONSOLE说明:(1)TO PRINT PROMPT
5、:列表结果输入(shr)打印机,后跟 PROMPT 则显示打印机设置对话框。(2)TO FILE:列表结果保存在文件中。(3)NOCONSOLE:列表结果不在屏幕上显示。(4)LIST显示的内容是连续的,而DISPLAY是分屏显示5.1 数据库基本操作第4页/共84页第五页,共84页。例:显示XSCJ数据库STUDENT表的结构。在命令(mng lng)窗口中输入:OPEN DATABASE USE student LIST STRUCTURE第5页/共84页第六页,共84页。屏幕(pngm)上显示的表结构:第6页/共84页第七页,共84页。2、数据库结构(jigu)显示格式:LIST|DIS
6、PLAY DATABASE例:显示XSCJ数据库的结构。输入(shr)命令:OPEN DATABASE LIST DATABASE第7页/共84页第八页,共84页。第8页/共84页第九页,共84页。3、表的打开(d ki)与关闭 只有打开表后,才能对表进行操作。表关闭时数据会自动存盘。命令打开或关闭表 打开表:USE EXCLUSIVE|SHARED 关闭表:USE 菜单方式打开表 (工作(gngzu)区概念放在本章第5节介绍)第9页/共84页第十页,共84页。说明:1)打开(d ki)一个表,就自动关闭该工作区原已打开(d ki)的表,一个工作区同一时间只能打开(d ki)一个表。2)表刚打
7、开(d ki)时,记录指针指向第一条记录。3)表操作完后应及时关闭。4)只有以独占方式打开(d ki)才能对表的结构和记录内容修改。或在打开(d ki)表文件对话框中选定独占复选框。第10页/共84页第十一页,共84页。关闭表的其它方法(fngf):其它命令:命令命令功能功能CLEAR ALL关闭所有表,释放内存变量及用户定义关闭所有表,释放内存变量及用户定义的菜单和窗口(但不释放系统变量)的菜单和窗口(但不释放系统变量)CLOSE ALL关闭所有数据库和表关闭所有数据库和表CLOSE DATABASE ALL关闭当前数据库及其中的表关闭当前数据库及其中的表自由表自由表CLOSE TABLES
8、 ALL关闭当前数据库中的表关闭当前数据库中的表自由表自由表,但不,但不关闭数据库关闭数据库退出(tuch)VFP即关闭表第11页/共84页第十二页,共84页。5.1.2 5.1.2 5.1.2 5.1.2 记录记录记录记录(jl)(jl)(jl)(jl)操作操作操作操作 表记录的基本操作有显示、修改、插入、删除表记录的基本操作有显示、修改、插入、删除表记录的基本操作有显示、修改、插入、删除表记录的基本操作有显示、修改、插入、删除(shnch)(shnch)(shnch)(shnch)、替换。替换。替换。替换。1、记录(jl)显示格式:LIST|DISPLAY FIELDS FOR WHILE
9、 TO PRINTER PROMPT|TO FILE 功能:连续显示记录说明:记录范围,有NEXT、ALL、REST和RECORD记录号子句;第12页/共84页第十三页,共84页。【示例】显示学生记录。USE student LIST&显示所有的记录List for 性别=女GO 3DisplayList fields 学号,姓名,所在(suzi)系 for 党员=.t.&(或List fields 学号,姓名,所在(suzi)系 for 党员)List to List to print第13页/共84页第十四页,共84页。2、记录(jl)浏览(P74)格式(g shi):BROWSE FIE
10、LDS FOR FREEZE 【示例】浏览(li ln)学生记录。USE student browse&浏览(li ln)所有的记录browse fields 学号,姓名,所在系 freeze 姓名 for 党员=.t.第14页/共84页第十五页,共84页。记录指针:用来(yn li)指示表文件中记录位置的指针。当前记录:指针当前所指向的记录。3、记录指针(zhzhn)的定位(1)指针的绝对移动(ydng)命令格式:GO|GOTO RECORD GO|GOTO TOP|BOTTOM示例:USE student GO 3 DISP GOTO RECO 5 DISP GO TOP DISP学号学号
11、姓名姓名 性性别别98001李泳李泳 男男98002刘一帧刘一帧 女女98003王小敏王小敏 女女98004张大山张大山 男男98005张强张强男男98006王达王达女女98007许志忠许志忠 男男98008刘晓忠刘晓忠 男男第15页/共84页第十六页,共84页。(2)指针的相对(xingdu)移动命令格式(g shi):SKIP+|-示例(shl):USE student?RECNO(),BOF()&1.F.SKIP 1?RECNO(),BOF()&1.T.SKIP 1&到文件头 GO 8?RECNO(),EOF()&8.F.SKIP?RECNO(),EOF()&9.T.SKIP&到文件尾第
12、16页/共84页第十七页,共84页。4、记录的插入(ch r)与追加(1)插入(ch r)新记录格式(g shi):INSERT BLANKBEFORE 示例:USE student SKIP 2 INSERT BLANK SKIP INSERT BLANK BEFORE第17页/共84页第十八页,共84页。(2)追加(zhuji)新记录(*)INSERT-SOL命令格式:INSERT INTO 表名(字段名1,字段名2,)VALUE(表达式1,表达式2,)功能:在表尾追加一条(y tio)新记录,并直接给记录赋字段值。(不必事先打开表)第18页/共84页第十九页,共84页。APPEND命令格
13、式:APPEND BLANK 功能:在表尾追加一条(y tio)新记录。APPEND FROM命令格式(g shi):APPEND FROM FIELDS FOR TYPE.功能:在当前表末尾追加一批记录,这些记录来自于另一文 件(表、文本或EXCL文件)。第19页/共84页第二十页,共84页。示例(shl)2:USE student APPE FROM STU APPE FROM STUtx1 type delimited with blank APPE FROM STUxls xls LIST第20页/共84页第二十一页,共84页。5、记录(jl)的删除与恢复(1)逻辑删除(shnch)命
14、令格式:DELETE FOR WHILE 功能:对当前(dngqin)表在指定内符合的记录加上删除标记。(2)物理删除命令格式:PACK 功能:真正删除带有删除标记的记录。示例:USE student DELETE ALL FOR NOT 党员 PACK LIST 第21页/共84页第二十二页,共84页。(3)记录恢复(huf)命令格式:RECALL FOR WHILE 功能:对当前表在指定内符合的记录去除删除(shnch)标记。(4)记录(jl)清除命令格式:ZAP 功能:物理删当前表中所有记录。示例:USE SC DELETE ALL FOR 成绩90 LIST recall for 课程
15、号=“001”LIST 第22页/共84页第二十三页,共84页。6、表数据(shj)的替换(1)成批修改(xigi)数据格式:REPLACE WITH ADDITIVE,WITH ADDITIVE FOR WHILE 说明:ADDITIVE用在备注字段,表示将表达式的值添加到字段的原有内容后,而不是替换。示例:REPLACE ALL 成绩 WITH 成绩+10 FOR 成绩60 LIST第23页/共84页第二十四页,共84页。(2)单记录与数组间的数据(shj)传送将记录(jl)传送到数组或内存格式:SCATTER FIELDS TO|MEMVAR 说明:将当前记录(jl)的字段值按顺序依次送
16、入数组中,或依次送入一组内存变量。示例:USE student SCATTER FIELDS 学号,姓名(xngmng),性别 to A?A(1),A(2),A(3)SCATTER FIELDS 学号,姓名(xngmng),性别 MEMVAR?m.学号,m.姓名(xngmng),m.性别第24页/共84页第二十五页,共84页。将数组或内存(ni cn)变量传送到记录格式:GATHER FROM|MEMVAR FIELDS说明:将数组或内存(ni cn)变量的数据依次传送到当前记录,以替换相应字段值。示例(shl):USE student GO 4 SCATTER to A?A(1),A(2),
17、A(4),A(6)A(6)=“MA”GATHER FROM A DISPLAY第25页/共84页第二十六页,共84页。(3)成批记录(jl)与数组间的数据传送将表的一批记录复制到数组格式(g shi):COPY TO ARRY FIELDSFOR WHILE说明:将当前表选定的数据复制到表数组中,不复制备注型字段。(菜单方式:文件 导出)从数组向表追加记录格式:APPEND FROM ARRY FIELDS FOR 说明(shumng):将满足条件的数组行数据按记录依次追加到当前表中。(菜单方式:文件 导入)第26页/共84页第二十七页,共84页。7、逻辑(lu j)表的设置(1)过滤器(记录
18、筛选,即关系的选择(xunz)运算)格式:SET FILTER TO 功能:从当前表中过滤(gul)出符合的记录,不符合的记录被“遮蔽”。示例:USE sc SET FILTER TO 成绩80 AND LEFT(学号,2)=“98”LIST SET FILTER TO LIST第27页/共84页第二十八页,共84页。(2)字段表(字段筛选,即关系(gun x)的投影运算)格式(g shi):SET FIELDS TO|ALL LIKE|EXCEPT功能:设置后,只能对当前表中指定的字段(列)进行操作,其它字段被“遮蔽”,用SET FIELDS OFF解除。示例:USE student SET
19、 FIELDS TO 学号,姓名(xngmng),所在系 LIST SET FIELDS OFF LIST第28页/共84页第二十九页,共84页。(1 1)两种记录显示方式:编辑和浏览)两种记录显示方式:编辑和浏览)两种记录显示方式:编辑和浏览)两种记录显示方式:编辑和浏览通过通过通过通过“显示显示显示显示”菜单来切换菜单来切换菜单来切换菜单来切换(2 2)浏览窗口的操作)浏览窗口的操作)浏览窗口的操作)浏览窗口的操作(cozu)(cozu)命令打开浏览窗口:命令打开浏览窗口:命令打开浏览窗口:命令打开浏览窗口:USE USE BROWSE BROWSE 独占方式打开表才可对表数据进行修改。独
20、占方式打开表才可对表数据进行修改。独占方式打开表才可对表数据进行修改。独占方式打开表才可对表数据进行修改。一窗两区显示记录的操作一窗两区显示记录的操作一窗两区显示记录的操作一窗两区显示记录的操作(cozu)(cozu)方法。方法。方法。方法。browse redit partition 50 browse redit partition 505.2.1 记录(jl)浏览与编辑修改5.2 数据库可视化操作(cozu)第29页/共84页第三十页,共84页。(3 3)在浏览窗口追加与删除记录)在浏览窗口追加与删除记录)在浏览窗口追加与删除记录)在浏览窗口追加与删除记录记录的追加:有记录的追加:有记录
21、的追加:有记录的追加:有“追加方式追加方式追加方式追加方式”和和和和“追加新记录追加新记录追加新记录追加新记录”两种菜单选项两种菜单选项两种菜单选项两种菜单选项操作操作操作操作(cozu)(cozu),前者为连续追加。,前者为连续追加。,前者为连续追加。,前者为连续追加。记录的删除:先给记录打上删除标记再从磁盘上删除。即先做记录的删除:先给记录打上删除标记再从磁盘上删除。即先做记录的删除:先给记录打上删除标记再从磁盘上删除。即先做记录的删除:先给记录打上删除标记再从磁盘上删除。即先做逻辑删除,在进行物理删除。逻辑删除,在进行物理删除。逻辑删除,在进行物理删除。逻辑删除,在进行物理删除。第30页
22、/共84页第三十一页,共84页。(1 1)通用型字段数据录入)通用型字段数据录入)通用型字段数据录入)通用型字段数据录入双击进入录入窗口双击进入录入窗口双击进入录入窗口双击进入录入窗口(chungk(chungk u)u),插入图像、图形、声音,插入图像、图形、声音,插入图像、图形、声音,插入图像、图形、声音等对象等对象等对象等对象(2 2)通用型字段数据的修改)通用型字段数据的修改)通用型字段数据的修改)通用型字段数据的修改 进入通用型字段数据录入窗口进入通用型字段数据录入窗口进入通用型字段数据录入窗口进入通用型字段数据录入窗口(chungk(chungk u)u),双击该窗口,双击该窗口,
23、双击该窗口,双击该窗口(chungk(chungk u)u)进入对象文件的编辑环境修改。进入对象文件的编辑环境修改。进入对象文件的编辑环境修改。进入对象文件的编辑环境修改。注意对象的链接与嵌入(注意对象的链接与嵌入(注意对象的链接与嵌入(注意对象的链接与嵌入(OLEOLE)两种方式的区别。)两种方式的区别。)两种方式的区别。)两种方式的区别。(3 3)通用型字段数据删除)通用型字段数据删除)通用型字段数据删除)通用型字段数据删除2、通用型字段的操作方法5.2.2 备注(bizh)字段和通用字段的操作1、备注字段的操作方法 Ctrl+PgDn或双击进入,Ctrl+W存盘(cn pn)退出,Ctr
24、l+Q或Esc放弃退出。第31页/共84页第三十二页,共84页。5.3 5.3 5.3 5.3 排序排序排序排序(pi x)(pi x)(pi x)(pi x)与索引与索引与索引与索引(P83)(P83)(P83)(P83)排序:表中记录(jl)按照某个字段值的大小顺序重新排列。排序后将产生一个新表,但原文件不变。5.3.1 排序(pi x)操作命令格式:SORT TO ON /A/D/C,/A/D/C FOR WHILE FIELDS 示例:对STUDENT表按所在系排序。use student SORT ON 学号/d TO&按学号降序排序,并将结果存入中 USE tt&打开 LIST&显
25、示结果大小第32页/共84页第三十三页,共84页。(要注意区分索引与排序(pi x)的差别。)5.3.2 索引(suyn)操作格式1(建立.IDX单索引文件(wnjin)):INDEX ON TO FOR UNIQUE COMPACT ADDITIVE示例:USE sc*按学号建普通索引文件XHidx*INDEX ON 学号 TO XHidx LIST*按课程号升序建唯一索引文件KHidx*INDEX ON 课程号 TO KHidx UNIQUE LIST 1、建立索引文件第33页/共84页第三十四页,共84页。格式2(建立.CDX复合(fh)索引文件):INDEX ON TAG OF UNI
26、QUE|CANDIDATE ASCENDING/DESCENDING ADDITIVE FOR 示例:对建立各项索引。USE sc*按成绩(chngj)降序建普通索引标识cj*INDEX ON 成绩(chngj)TAG cj DESCENDING LIST*先按课程号升序再按成绩(chngj)升序建普通索引标识kccj*INDEX ON 课程号+STR(成绩(chngj),6,2)TAG kccj LIST*先按课程号升序再按成绩(chngj)降序建候选索引标识kccj1*INDEX ON VAL(课程号)-成绩(chngj)/1000 TAG kccj1 CANDIDATE 第34页/共84
27、页第三十五页,共84页。2、索引(suyn)文件的使用 一个表可以打开(d ki)多个索引文件,但任何时候只有一个索引文件起作用,这当前起作用的索引文件就称为主控索引文件;同样,对一个复合索引文件打开(d ki)的多个索引标识中,任何时候都只有主控索引起作用。结构复合索引文件随着表的打开(d ki)而打开(d ki)。第35页/共84页第三十六页,共84页。单索引文件的打开和关闭(gunb)(*)打开格式:1、USE INDEX 2、SET INDEX TO ADDITIVE 关闭(gunb)格式(关闭(gunb)表就自然关闭(gunb)了索引文件):SET INDEX TO 示例:USE s
28、c SET INDEX TO XHidx,KHidx&前者(qin zh)xhidx为主控索 引文件 LIST第36页/共84页第三十七页,共84页。确定复合索引的主控索引 格式:SET ORDER TO|TAG第37页/共84页第三十八页,共84页。取消复合索引(suyn)的主控索引(suyn)格式:SET ORDER TO 或 SET ORDER TO 0删除索引(suyn)(删除文件方式来删除单索引(suyn)文件)删除索引(suyn)标识命令格式:DELETE TAG ALL|,重新索引 主控索引随着记录操作自动更新,而非主控索引不会(b hu),在使用该索引时需要进行重新索引。格式:
29、REINDEX第38页/共84页第三十九页,共84页。5.4 5.4 5.4 5.4 查询查询查询查询(chxn)(chxn)(chxn)(chxn)命令命令命令命令5.4.1 顺序(shnx)查询1、LOCATE命令格式:LOCATE FOR WHILE功能:顺序查找指定条件的记录,记录指针(zhzhn)并定位在该记录 上。2、CONTINUE命令格式:CONTINUE功能:继续先前的LOCATE查询【示例】按指定条件定位记录。第39页/共84页第四十页,共84页。USE studentLOCATE FOR 所在系=”IS”&找到第一个“IS”系学生(xu sheng)记录continue&
30、再找到下一个“IS”系学生(xu sheng)的记录第40页/共84页第四十一页,共84页。FIND和SEEK是针对索引关键字进行查找,故使用索引查询命令前,要求查询的文件必须(bx)先建立了索引,1、FIND命令格式(g shi):FIND 功能:在索引的表文件中查询与字符表达式匹配的第一个记录5.4.2 索引查询(chxn)命令(FIND和SEEK)第41页/共84页第四十二页,共84页。【示例】查找学号=“98004”的学生。USE studentINDEX ON 学号 TAG snott=98004FIND&ttDISPLAY记录号 学号 姓名(xngmng)性别 出生日期 党员 所在
31、系 简历 照片 4 98004 张大山 男 11/30/81 .T.CS memo gen第42页/共84页第四十三页,共84页。2、SEEK命令格式:SEEK 功能:在主控索引的表中按索引关键字搜索(su su)满足值的第一个记录。【示例】查找学号=“98004”的学生。USE student SET ORDER TO snoSEEK“98004”DISPLAY记录号 学号 姓名 性别 出生日期 党员 所在系 简历 照片(zhopin)4 98004 张大山 男 11/30/81 .T.CS memo gen第43页/共84页第四十四页,共84页。5.5 5.5 多表的操作多表的操作多表的操
32、作多表的操作(cozu)(cozu)5.5.1 工作(gngzu)区 学籍管理使用的4个表学生(xu sheng)情况表(STUDENT.DBF):STUDENT(学号 c(5),姓名 c(8),性别 c(2),出生日期 d,党员 l,所在系 c(2),简历 m,照片 g)课程情况表(COURSE.DBF):course(课程号 c(3),课程名 c(10),学 时数 n(4),学分 n(3,1)成绩表(SC.DBF):sc(学号 c(5),课号 c(3),成绩 n(6,2)学生(xu sheng)特长表(SPE.DBF):spe(学号 c(5),专业 c(10),外语水平 c(4),特长 c
33、(20)第44页/共84页第四十五页,共84页。1、工作区号 VFP提供了32767个工作区,编号从1到32767。每个工作区只允许打开一个(y)表,在同一工作区打开另一个(y)表时,以前打开的表就会自动关闭。一个(y)表如果要在不同工作区中再次打开,则须在USE命令中加上“AGAIN”选项。2、别名前10个工作区除使用110为编号外,还默认用AJ十个字母(zm)作为工作区别名。VFP自动使用文件名作为默认表别名。可用 USE ALIAS 来指定表别名。第45页/共84页第四十六页,共84页。3、工作区的使用(1)SELECT&指定(zhdng)要打开表的工作区号 SELECT 0&选定当前尚
34、未使用的最小 号工作区SELECT()&返回当前工作区号 别名.字段名&引用其它工作区中打开的 表的字段 (2)USE IN&在指定(zhdng)的工作区 打开表,但不改变 当前工作区第46页/共84页第四十七页,共84页。【示示示示例例例例】通通通通过过过过(tnggu)(tnggu)(tnggu)(tnggu)多多多多区区区区操操操操作作作作从从从从表表表表中中中中学学学学号号号号查查查查出出出出其其其其在在在在表表表表中中中中对应的姓名。对应的姓名。对应的姓名。对应的姓名。第47页/共84页第四十八页,共84页。CLOSE ALL&关闭所有打开的表,当前工作区为1号工作区SELECT 1
35、USE scGO 8&该记录(jl)的学号字段值为98004SELECT 0&选定2号工作区为当前工作区USE studentINDEX ON 学号 TAG snoSEEK sc学号&即 SEEK “98004”?sc.学号,姓名,SC.成绩&98004 张大山 SELECT sc&选定所在工作区为 当前工作区?学号,STUDENT.姓名,成绩&98004 张大山 89.00 第48页/共84页第四十九页,共84页。5.5.2 5.5.2 5.5.2 5.5.2 表的关联表的关联表的关联表的关联(gunlin)(*)(gunlin)(*)(gunlin)(*)(gunlin)(*)1 1 1
36、1、关联的概念、关联的概念、关联的概念、关联的概念 令不同工作区的记录指针建立一种临时的联动关系,令不同工作区的记录指针建立一种临时的联动关系,令不同工作区的记录指针建立一种临时的联动关系,令不同工作区的记录指针建立一种临时的联动关系,使一个表的记录指针移动时另一个表的记录指针能随之移动。使一个表的记录指针移动时另一个表的记录指针能随之移动。使一个表的记录指针移动时另一个表的记录指针能随之移动。使一个表的记录指针移动时另一个表的记录指针能随之移动。2 2 2 2、建立关联步骤、建立关联步骤、建立关联步骤、建立关联步骤 (1)(1)(1)(1)、确定建立关联的两个表,一为父表,、确定建立关联的两
37、个表,一为父表,、确定建立关联的两个表,一为父表,、确定建立关联的两个表,一为父表,一为子表。一为子表。一为子表。一为子表。(2)(2)(2)(2)子表用关联的字段表达式先建立索引。子表用关联的字段表达式先建立索引。子表用关联的字段表达式先建立索引。子表用关联的字段表达式先建立索引。(3)(3)(3)(3)用关联命令建立关联。命令中指明关联字段表达式。用关联命令建立关联。命令中指明关联字段表达式。用关联命令建立关联。命令中指明关联字段表达式。用关联命令建立关联。命令中指明关联字段表达式。(4)(4)(4)(4)如是如是如是如是(r sh)(r sh)(r sh)(r sh)一多关系,声名一多关
38、系一多关系,声名一多关系一多关系,声名一多关系一多关系,声名一多关系 第49页/共84页第五十页,共84页。3、关联命令 1)建立关联格式:SET RELATION TO INTO,INTO ADDITIVE 功能:以当前表为父表与其它子表建立关联 2)解除关联:格式:SET RELATION TO 3)说明(shumng)一多关系:格式:SET SKIP TO,功能:用在SET RELATION命令后,说明(shumng)已建关联为一多关系 4)取消一多关系:SET SKIP TO 第50页/共84页第五十一页,共84页。【示例】利用(lyng)建立表间关联,列出所有学生的学号、姓名、系名、
39、课程号、成绩,试写出命令序列。系表结构为 dep(所在系 C(2),系名 C(12)STUDENTDEP 多一关系 STUDENTSC 一多关系第51页/共84页第五十二页,共84页。CLOS ALLSELECT 2USE depINDEX ON 所在(suzi)系 TAG xbh ADDITIVESELECT 3USE scINDEX ON 学号 TAG xh ADDITIVESELECT 1USE studentSET RELATION TO 所在(suzi)系INTO depSET RELATION TO 学号INTO sc ADDITIVE SET SKIP TO scBROWSE F
40、IELDS STUDENT.学号,STUDENT.姓名,DEP.系名,;SC.课程号,SC.成绩第52页/共84页第五十三页,共84页。5.5.3 5.5.3 5.5.3 5.5.3 表的联接表的联接表的联接表的联接(lin(lin(lin(lin ji)ji)ji)ji)格式:格式:JOIN WITH JOIN WITH|TOTO FOR FOR FIELDS FIELDS NOOPTIMIZE NOOPTIMIZE 功能:按照功能:按照FORFOR子句规定的联接条件,将当前工作区中的表与另一个子句规定的联接条件,将当前工作区中的表与另一个(y)(y)以以 或或 表示的工作区中的表进行联接,
41、从而产生一个表示的工作区中的表进行联接,从而产生一个(y)(y)新表。新表。第53页/共84页第五十四页,共84页。【示例】将表【示例】将表SCSC和表和表COURSECOURSE联接为一个新表联接为一个新表SCBSCB,要求包含学号,课程,要求包含学号,课程(kchng)(kchng)名和成绩等名和成绩等3 3个字段。个字段。CLOSE ALLCLOSE ALLSELECT 1SELECT 1USE courseUSE courseSELECT 2SELECT 2USE scUSE scJOIN WITH course JOIN WITH course TOTO scb FIELDS scb
42、 FIELDS 学号学号,;,;course.course.课程课程(kchng)(kchng)名名,成绩成绩 FOR course.FOR course.课程课程(kchng)(kchng)号号=课程课程(kchng)(kchng)号号USE scbUSE scbBROWSEBROWSE第54页/共84页第五十五页,共84页。5.6 5.6 5.6 5.6 统计统计统计统计(tngj)(tngj)(tngj)(tngj)命令命令命令命令5.6.1 计数(j sh)命令 格式:COUNT FOR WHILE TO 功能:计算指定范围内满足条件的记录数。VFP提供5种命令来支持统计功能。【示例】
43、:统计数学成绩不及格人数 use sc count for 成绩60.and.课程号=“002”to rs?“数学成绩不及格人数:”,rs第55页/共84页第五十六页,共84页。5.6.2 求和(qi h)命令格式:SUM FOR WHILE TO|ARRAY 功能:在打开的表中,对的各个表达式分别(fnbi)求和。【示例(shl)】根据求所有课程的总学分。use course SUM 学分 to xf?“课程总学分为:”,xf第56页/共84页第五十七页,共84页。5.6.3 求平均值命令(mng lng)格式:AVERAGE FOR WHILE TO|ARRAY 功能:在打开的表中,对中的
44、各个表达式分 别求平均值。【示例】根据求98001号学生所有(suyu)课程的平均成绩。use sc AVERAGE 成绩 to pjcj for 学号=“98001”?“98001号学生的平均成绩为:”,pjcj第57页/共84页第五十八页,共84页。5.6.4 汇总(huzng)命令格式:TOTAL TO ON FIELDS FOR WHILE 功能:分别对值相同的记录的数值型字段值求和,并将结果存入一个新表。一组关键字值相同的记录在新表中产生一个记录;对于非数值型字段,只将关键字值相同的第一个记录的字段值放入该记录。说明:(1)指排序(pi x)字段或索引关键字,即当前表必须是有序的,否
45、则不能汇总。(2)FIELDS子句的指出要汇总的字段。若缺省,则对表中所有数值型字段汇总。第58页/共84页第五十九页,共84页。【示例】对宾馆收银表SY,按楼层对其数值字段进行汇总。USE SYINDEX ON 楼层 TO SYISET INDEX TO SYILISTRecord#楼层 房号 姓名(xngmng)其它应收 房费实际金额TOTAL ON 楼层(lu cn)TO NSUM FIELDS 其它应收,房费,实际金额USE NSUMLISTRecord#楼层(lu cn)房号姓名其它应收 房费 实际金额第59页/共84页第六十页,共84页。5.7 5.7 5.7 5.7 表的复制表的
46、复制表的复制表的复制(fzh)(fzh)(fzh)(fzh)5.7.1 5.7.1 5.7.1 5.7.1 表与表结构表与表结构表与表结构表与表结构(jigu)(jigu)(jigu)(jigu)的复制的复制的复制的复制1、任意(rny)类型文件的复制格式:COPY FILE TO 示例:第60页/共84页第六十一页,共84页。2、数据表文件(wnjin)的复制(*)格式:COPY TO FIELDS FOR WHILE TYPE.示例(shl)1:USE student COPY TO student3 fields 学号,姓名 FOR 所在系=“CS”USE student3 LIST示例
47、2:USE student copy to STUtxt type sdf copy to STUtxt1 type delimited with blank copy to STUxls xls type 第61页/共84页第六十二页,共84页。5.7.2 表结构(jigu)的复制格式(g shi):COPY STRUCTURE TO FIELDS 示例1:USE student COPY STRU TO student4 fields 学号,姓名(xngmng),所在系 USE student4 LIST STRU第62页/共84页第六十三页,共84页。5.8 SELECT-SQL5.8
48、SELECT-SQL5.8 SELECT-SQL5.8 SELECT-SQL查询查询查询查询(chxn)(chxn)(chxn)(chxn)SELECT-SQL查询是从SQL语言移植过来的查询命令,具有强大的单表与多表查询功能。SQL是一种结构化数据库查询语言,它是一种使用你选择的标准(biozhn)从数据库记录中选择某些记录的方法。其发音为“sequel”或“S-Q-L”。VFP支持在命令窗口直接使用SELECT-SQL命令,也可通过“查询设计器”窗口来设计查询、生成查询文件,然后运行定制的查询。第63页/共84页第六十四页,共84页。SQL主要几个(j)命令动词:SELECT、CREATE
49、、DROP、ALTER、INSERT、UPDATE、DELETE CREAT TABLE(,),)ALTER TABLE ADD|ALTER COLUMN,(,)INSERT INTO 表名(字段名1,字段名2,)VALUE(表达式1,表达式2,)DROP TABLE UPDATE SET,DELETE FROM WHERE 第64页/共84页第六十五页,共84页。5.8.1 用SELECT-SQL命令(mng lng)直接查询1 1 1 1、SELECT-SQLSELECT-SQLSELECT-SQLSELECT-SQL命令的格式命令的格式命令的格式命令的格式 SELECT ALL|DIST
50、INCT SELECT ALL|DISTINCT SELECT ALL|DISTINCT SELECT ALL|DISTINCT.AS AS AS AS,.AS AS AS AS FROM FORCEFROM FORCEFROM FORCEFROM FORCE !INNER|LEFTOUTER|RIGHTOUTER|FULLOUTER JOIN INNER|LEFTOUTER|RIGHTOUTER|FULLOUTER JOIN INNER|LEFTOUTER|RIGHTOUTER|FULLOUTER JOIN INNER|LEFTOUTER|RIGHTOUTER|FULLOUTER JOIN