数据库操作及查询统计.pptx

上传人:莉*** 文档编号:76870623 上传时间:2023-03-12 格式:PPTX 页数:84 大小:1.03MB
返回 下载 相关 举报
数据库操作及查询统计.pptx_第1页
第1页 / 共84页
数据库操作及查询统计.pptx_第2页
第2页 / 共84页
点击查看更多>>
资源描述

《数据库操作及查询统计.pptx》由会员分享,可在线阅读,更多相关《数据库操作及查询统计.pptx(84页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、15.1 5.1 数据库基本操作数据库基本操作 结构显示和表的访问结构显示和表的访问 记录操作记录操作5.2 5.2 数据库可视化操作数据库可视化操作 记录的浏览与编辑修改记录的浏览与编辑修改 备注字段和通用字段的操作备注字段和通用字段的操作5.3 5.3 排序与索引排序与索引 排序操作排序操作 索引操作索引操作5.4 查询命令查询命令 顺序查询顺序查询 索引查询索引查询内容目录第1页/共84页25.5 多表的操作多表的操作 工作区工作区 表的关联表的关联 表的联接表的联接5.6 统计命令统计命令 5.6.1 计数命令计数命令 5.6.2 求和命令求和命令 5.6.3 求平均值命令求平均值命令

2、 5.6.4 汇总命令汇总命令5.7 表的复制表的复制 5.7.1 表的复制表的复制 5.7.2 表结构的复制表结构的复制 5.8 SELECT-SQL查询查询5.9 视图视图(*)内容目录第2页/共84页3(8)掌握对表中数据的四种统计命令(SUM、AVERAGE、COUNT、TOTAL)使用方法。(9)掌握SELECT查询语句的引用,能灵活根据数据查询要求组合WHERE、HAVING、ORDER BY、GROUP BY等子句并能使用INSERT INTO、DELETE FROM、UPDATE SET语句。第3页/共84页5.1.1 表结构显示和表的访问1、表结构显示格式:LIST|DISP

3、LAY STRUCTURE TO PRINT PROMPT|TO FILE NOCONSOLE说明:(1)TO PRINT PROMPT:列表结果输入打印机,后跟 PROMPT 则显示打印机设置对话框。(2)TO FILE:列表结果保存在文件中。(3)NOCONSOLE:列表结果不在屏幕上显示。(4)LIST显示的内容是连续的,而DISPLAY是分屏显示5.1 数据库基本操作第4页/共84页例:显示XSCJ数据库STUDENT表的结构。在命令窗口中输入:OPEN DATABASE USE student LIST STRUCTURE第5页/共84页屏幕上显示的表结构:第6页/共84页2、数据库

4、结构显示格式:LIST|DISPLAY DATABASE例:显示XSCJ数据库的结构。输入 命令:OPEN DATABASE LIST DATABASE第7页/共84页第8页/共84页3、表的打开与关闭 只有打开表后,才能对表进行操作。表关闭时数据会自动存盘。命令打开或关闭表 打开表:USE EXCLUSIVE|SHARED 关闭表:USE 菜单方式打开表 (工作区概念放在本章第5节介绍)第9页/共84页说明:1)打开一个表,就自动关闭该工作区原已打开的表,一个工作区同一时间只能打开一个表。2)表刚打开时,记录指针指向第一条记录。3)表操作完后应及时关闭。4)只有以独占方式打开才能对表的结构和

5、记录内容修改。或在打开表文件对话框中选定独占复选框。第10页/共84页关闭表的其它方法:其它命令:命令命令功能功能CLEAR ALL关闭所有表,释放内存变量及用户定义关闭所有表,释放内存变量及用户定义的菜单和窗口(但不释放系统变量)的菜单和窗口(但不释放系统变量)CLOSE ALL关闭所有数据库和表关闭所有数据库和表CLOSE DATABASE ALL关闭当前数据库及其中的表关闭当前数据库及其中的表自由表自由表CLOSE TABLES ALL关闭当前数据库中的表关闭当前数据库中的表自由表自由表,但不,但不关闭数据库关闭数据库退出VFP即关闭表第11页/共84页5.1.2 5.1.2 记录操作

6、表记录的基本操作有显示、修改、插入、删除、替换。表记录的基本操作有显示、修改、插入、删除、替换。1、记录显示格式:LIST|DISPLAY FIELDS FOR WHILE TO PRINTER PROMPT|TO FILE 功能:连续显示记录说明:记录范围,有NEXT、ALL、REST和RECORD记录号子句;第12页/共84页【示例】显示学生记录。USE student LIST&显示所有的记录List for 性别=女GO 3DisplayList fields 学号,姓名,所在系 for 党员=.t.&(或List fields 学号,姓名,所在系 for 党员)List to Lis

7、t to print第13页/共84页2、记录浏览(P74)格式:BROWSE FIELDS FOR FREEZE 【示例】浏览学生记录。USE student browse&浏览所有的记录browse fields 学号,姓名,所在系 freeze 姓名 for 党员=.t.第14页/共84页记录指针:用来指示表文件中记录位置的指针。当前记录:指针当前所指向的记录。3、记录指针的定位(1)指针的绝对移动命令格式:GO|GOTO RECORD GO|GOTO TOP|BOTTOM示例:USE student GO 3 DISP GOTO RECO 5 DISP GO TOP DISP学号学号姓

8、名姓名 性性别别98001李泳李泳 男男98002刘一帧刘一帧 女女98003王小敏王小敏 女女98004张大山张大山 男男98005张强张强男男98006王达王达女女98007许志忠许志忠 男男98008刘晓忠刘晓忠 男男第15页/共84页(2)指针的相对移动命令格式:SKIP+|-示例: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&到文件尾第16页/共84页4、记录的插入与追加(1)插入新记录格式:IN

9、SERT BLANKBEFORE 示例:USE student SKIP 2 INSERT BLANK SKIP INSERT BLANK BEFORE第17页/共84页(2)追加新记录(*)INSERT-SOL命令格式:INSERT INTO 表名(字段名1,字段名2,)VALUE(表达式1,表达式2,)功能:在表尾追加一条新记录,并直接给记录赋字段值。(不必事先打开表)第18页/共84页APPEND命令格式:APPEND BLANK 功能:在表尾追加一条新记录。APPEND FROM命令格式:APPEND FROM FIELDS FOR TYPE.功能:在当前表末尾追加一批记录,这些记录来

10、自于另一文 件(表、文本或EXCL文件)。第19页/共84页示例2:USE student APPE FROM STU APPE FROM STUtx1 type delimited with blank APPE FROM STUxls xls LIST第20页/共84页5、记录的删除与恢复(1)逻辑删除命令格式:DELETE FOR WHILE 功能:对当前表在指定内符合的记录加上删除标记。(2)物理删除命令格式:PACK 功能:真正删除带有删除标记的记录。示例:USE student DELETE ALL FOR NOT 党员 PACK LIST 第21页/共84页(3)记录恢复命令格式

11、:RECALL FOR WHILE 功能:对当前表在指定内符合的记录去除删除标记。(4)记录清除命令格式:ZAP 功能:物理删当前表中所有记录。示例:USE SC DELETE ALL FOR 成绩90 LIST recall for 课程号=“001”LIST 第22页/共84页6、表数据的替换(1)成批修改数据格式:REPLACE WITH ADDITIVE,WITH ADDITIVE FOR WHILE 说明:ADDITIVE用在备注字段,表示将表达式的值添加到字段的原有内容后,而不是替换。示例:REPLACE ALL 成绩 WITH 成绩+10 FOR 成绩60 LIST第23页/共8

12、4页(2)单记录与数组间的数据传送将记录传送到数组或内存格式:SCATTER FIELDS TO|MEMVAR 说明:将当前记录的字段值按顺序依次送入数组中,或依次送入一组内存变量。示例:USE student SCATTER FIELDS 学号,姓名,性别 to A?A(1),A(2),A(3)SCATTER FIELDS 学号,姓名,性别 MEMVAR?m.学号,m.姓名,m.性别第24页/共84页将数组或内存变量传送到记录格式:GATHER FROM|MEMVAR FIELDS说明:将数组或内存变量的数据依次传送到当前记录,以替换相应字段值。示例:USE student GO 4 SCA

13、TTER to A?A(1),A(2),A(4),A(6)A(6)=“MA”GATHER FROM A DISPLAY第25页/共84页(3)成批记录与数组间的数据传送将表的一批记录复制到数组格式:COPY TO ARRY FIELDSFOR WHILE说明:将当前表选定的数据复制到表数组中,不复制备注型字段。(菜单方式:文件 导出)从数组向表追加记录格式:APPEND FROM ARRY FIELDS FOR 说明:将满足条件的数组行数据按记录依次追加到当前表中。(菜单方式:文件 导入)第26页/共84页7、逻辑表的设置(1)过滤器(记录筛选,即关系的选择运算)格式:SET FILTER T

14、O 功能:从当前表中过滤出符合的记录,不符合的记录被“遮蔽”。示例:USE sc SET FILTER TO 成绩80 AND LEFT(学号,2)=“98”LIST SET FILTER TO LIST第27页/共84页(2)字段表(字段筛选,即关系的投影运算)格式:SET FIELDS TO|ALL LIKE|EXCEPT功能:设置后,只能对当前表中指定的字段(列)进行操作,其它字段被“遮蔽”,用SET FIELDS OFF解除。示例:USE student SET FIELDS TO 学号,姓名,所在系 LIST SET FIELDS OFF LIST第28页/共84页(1)两种记录显示

15、方式:)两种记录显示方式:编辑和浏览编辑和浏览通过通过“显示显示”菜单来切换菜单来切换(2)浏览窗口的操作)浏览窗口的操作命令打开浏览窗口:命令打开浏览窗口:USE BROWSE 独占方式打开表才可对表数据进行修改。独占方式打开表才可对表数据进行修改。一窗两区显示记录的操作方法。一窗两区显示记录的操作方法。browse redit partition 505.2.1 记录浏览与编辑修改5.2 数据库可视化操作第29页/共84页(3)在浏览窗口追加与删除记录)在浏览窗口追加与删除记录记录的追加:记录的追加:有有“追加方式追加方式”和和“追加新记录追加新记录”两种菜两种菜单选项操作,前者为连续追加

16、。单选项操作,前者为连续追加。记录的删除:记录的删除:先给记录打上删除标记再从磁盘上删除。先给记录打上删除标记再从磁盘上删除。即先做逻辑删除,在进行物理删除。即先做逻辑删除,在进行物理删除。第30页/共84页(1)通用型字段数据录入)通用型字段数据录入双击进入录入窗口双击进入录入窗口,插入图像、图形、声音等对象,插入图像、图形、声音等对象(2)通用型字段数据的修改)通用型字段数据的修改 进入通用型字段数据录入窗口,双击该窗口进入进入通用型字段数据录入窗口,双击该窗口进入对象文件的编辑环境修改。对象文件的编辑环境修改。注意注意对象的链接与嵌入(对象的链接与嵌入(OLE)两种方式的两种方式的区别。

17、区别。(3)通用型字段数据删除)通用型字段数据删除2、通用型字段的操作方法5.2.2 备注字段和通用字段的操作1、备注字段的操作方法 Ctrl+PgDn或双击进入,Ctrl+W存盘退出,Ctrl+Q或Esc放弃退出。第31页/共84页5.3 5.3 排序与索引排序与索引(P83)(P83)排序:表中记录按照某个字段值的大小顺序重新排列。排序后将产生一个新表,但原文件不变。5.3.1 排序操作命令格式:SORT TO ON /A/D/C,/A/D/C FOR WHILE FIELDS 示例:对STUDENT表按所在系排序。use student SORT ON 学号/d TO&按学号降序排序,并

18、将结果存入中 USE tt&打开 LIST&显示结果大小第32页/共84页(要注意区分索引与排序的差别。)5.3.2 索引操作格式1(建立.IDX单索引文件):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页格式2(建立.CDX复合索引文件):INDEX ON TAG OF UNIQUE|CANDIDATE ASCENDIN

19、G/DESCENDING ADDITIVE FOR 示例:对建立各项索引。USE sc*按成绩降序建普通索引标识cj*INDEX ON 成绩 TAG cj DESCENDING LIST*先按课程号升序再按成绩升序建普通索引标识kccj*INDEX ON 课程号+STR(成绩,6,2)TAG kccj LIST*先按课程号升序再按成绩降序建候选索引标识kccj1*INDEX ON VAL(课程号)-成绩/1000 TAG kccj1 CANDIDATE 第34页/共84页2、索引文件的使用 一个表可以打开多个索引文件,但任何时候只有一个索引文件起作用,这当前起作用的索引文件就称为主控索引文件;

20、同样,对一个复合索引文件打开的多个索引标识中,任何时候都只有主控索引起作用。结构复合索引文件随着表的打开而打开。第35页/共84页单索引文件的打开和关闭(*)打开格式:1、USE INDEX 2、SET INDEX TO ADDITIVE 关闭格式(关闭表就自然关闭了索引文件):SET INDEX TO 示例:USE sc SET INDEX TO XHidx,KHidx&前者xhidx为主控索 引文件 LIST第36页/共84页确定复合索引的主控索引 格式:SET ORDER TO|TAG第37页/共84页取消复合索引的主控索引 格式:SET ORDER TO 或 SET ORDER TO

21、0删除索引 (删除文件方式来删除单索引文件)删除索引标识命令格式:DELETE TAG ALL|,重新索引 主控索引随着记录操作自动更新,而非主控索引不会,在使用该索引时需要进行重新索引。格式:REINDEX第38页/共84页5.4 5.4 查询命令查询命令5.4.1 顺序查询1、LOCATE命令格式:LOCATE FOR WHILE功能:顺序查找指定条件的记录,记录指针并定位在该记录 上。2、CONTINUE命令格式:CONTINUE功能:继续先前的LOCATE查询【示例】按指定条件定位记录。第39页/共84页USE studentLOCATE FOR 所在系=”IS”&找到第一个“IS”系

22、学生记录continue&再找到下一个“IS”系学生的记录第40页/共84页 FIND和SEEK是针对索引关键字进行查找,故使用索引查询命令前,要求查询的文件必须先建立了索引,1、FIND命令格式:FIND 功能:在索引的表文件中查询与字符表达式匹配的第一个记录5.4.2 索引查询命令(FIND和SEEK)第41页/共84页【示例】查找学号=“98004”的学生。USE studentINDEX ON 学号 TAG snott=98004FIND&ttDISPLAY记录号 学号 姓名 性别 出生日期 党员 所在系 简历 照片 4 98004 张大山 男 11/30/81 .T.CS memo

23、gen第42页/共84页2、SEEK命令格式:SEEK 功能:在主控索引的表中按索引关键字搜索满足值的第一个记录。【示例】查找学号=“98004”的学生。USE student SET ORDER TO snoSEEK“98004”DISPLAY记录号 学号 姓名 性别 出生日期 党员 所在系 简历 照片 4 98004 张大山 男 11/30/81 .T.CS memo gen第43页/共84页5.5 多表的操作多表的操作5.5.1 工作区 学籍管理使用的4个表学生情况表(STUDENT.DBF):STUDENT(学号 c(5),姓名 c(8),性别 c(2),出生日期 d,党员 l,所在系

24、 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)学生特长表(SPE.DBF):spe(学号 c(5),专业 c(10),外语水平 c(4),特长 c(20)第44页/共84页1、工作区号n VFPVFP提供了提供了3276732767个工作区,编号从个工作区,编号从1 1到到3276732767。a)a)每每个个工工作作区区只只允允许许打打开开一一个个表表,在在同同一一工工作作区区打打开开另另一一个个表表时

25、时,以以前前打打开开的的表表就就会会自自动动关关闭闭。一一个个表表如如果果要要在在不不同同工工作作区区中中再再次次打打开开,则则须须在在USEUSE命令中加上命令中加上“AGAINAGAIN”选项。选项。2、别名前10个工作区除使用110为编号外,还默认用AJ十个字母作为工作区别名。nVFPVFP自动使用文件名作为默认表别名。自动使用文件名作为默认表别名。n可用可用 USEUSE ALIASALIAS 来指定表别名。来指定表别名。第45页/共84页3、工作区的使用(1)SELECT&指定要打开表的工作区号 SELECT 0&选定当前尚未使用的最小 号工作区SELECT()&返回当前工作区号 别

26、名.字段名&引用其它工作区中打开的 表的字段 (2)USE IN&在指定的工作区 打开表,但不改变 当前工作区第46页/共84页【示示例例】通通过过多多区区操操作作从从表表中中学学号号查查出出其其在在表表中中对对应应的的姓名。姓名。第47页/共84页CLOSE ALL&关闭所有打开的表,当前工作区为1号工作区SELECT 1USE scGO 8&该记录的学号字段值为98004SELECT 0&选定2号工作区为当前工作区USE studentINDEX ON 学号 TAG snoSEEK sc学号&即 SEEK “98004”?sc.学号,姓名,SC.成绩&98004 张大山 SELECT sc

27、&选定所在工作区为 当前工作区?学号,STUDENT.姓名,成绩&98004 张大山 89.00 第48页/共84页5.5.2 5.5.2 表的关联(*)(*)1 1、关联的概念关联的概念 令不同工作区的记录指针建立一种临时的联令不同工作区的记录指针建立一种临时的联动关系动关系,使一个表的记录指针移动时另一个表的记,使一个表的记录指针移动时另一个表的记录指针能随之移动。录指针能随之移动。2 2、建立关联步骤、建立关联步骤 (1)(1)、确定建立关联的两个表,、确定建立关联的两个表,一为父表,一为子表一为父表,一为子表。(2)(2)子表用关联的字段表达式先建子表用关联的字段表达式先建立索引。立索

28、引。(3)(3)用关联命令建立关联。用关联命令建立关联。命令中指明关联字段命令中指明关联字段表达式。表达式。(4)(4)如是一多关系,声名一多关系如是一多关系,声名一多关系 第49页/共84页 3、关联命令 1)建立关联格式:SET RELATION TO INTO,INTO ADDITIVE 功能:以当前表为父表与其它子表建立关联 2)解除关联:格式:SET RELATION TO 3)说明一多关系:格式:SET SKIP TO,功能:用在SET RELATION命令后,说明已建关联为一多关系 4)取消一多关系:SET SKIP TO 第50页/共84页【示例】利用建立表间关联,列出所有学生

29、的学号、姓名、系名、课程号、成绩,试写出命令序列。系表结构为dep(所在系 C(2),系名 C(12)STUDENTDEP 多一关系 STUDENTSC 一多关系第51页/共84页CLOS ALLSELECT 2USE depINDEX ON 所在系 TAG xbh ADDITIVESELECT 3USE scINDEX ON 学号 TAG xh ADDITIVESELECT 1USE studentSET RELATION TO 所在系INTO depSET RELATION TO 学号INTO sc ADDITIVE SET SKIP TO scBROWSE FIELDS STUDENT.

30、学号,STUDENT.姓名,DEP.系名,;SC.课程号,SC.成绩第52页/共84页5.5.3 5.5.3 表的联接 格式:格式:JOIN WITHJOIN WITH|TOTO FORFOR FIELDSFIELDS NOOPTIMIZE NOOPTIMIZE 功能:功能:按照按照FORFOR子句规定的联接条件,将当前工作区中的表与另一个以子句规定的联接条件,将当前工作区中的表与另一个以 或或 表示的工作区中的表进行联接,从而表示的工作区中的表进行联接,从而产生一个新表产生一个新表。第53页/共84页【示示例例】将将表表SCSC和和表表COURSECOURSE联联接接为为一一个个新新表表SC

31、BSCB,要要求求包包含含学学号号,课课程程名名和和成绩成绩等等3 3个字段。个字段。CLOSE ALLCLOSE ALLSELECT 1SELECT 1USE courseUSE courseSELECT 2SELECT 2USE scUSE scJOIN WITHJOIN WITH course course TO TO scb scb FIELDS FIELDS 学号学号,;,;course.course.课程名课程名,成绩成绩 FORFOR course.course.课程号课程号=课程号课程号USE scbUSE scbBROWSEBROWSE第54页/共84页5.6 5.6 统计命

32、令统计命令5.6.1 计数命令 格式:COUNT FOR WHILE TO 功能:计算指定范围内满足条件的记录数。VFP提供5种命令来支持统计功能。【示例】:统计数学成绩不及格人数 use sc count for 成绩60.and.课程号=“002”to rs?“数学成绩不及格人数:”,rs第55页/共84页5.6.2 求和命令格式:SUM FOR WHILE TO|ARRAY 功能:在打开的表中,对的各个表达式分别 求和。【示例】根据求所有课程的总学分。use course SUM 学分 to xf?“课程总学分为:”,xf第56页/共84页5.6.3 求平均值命令格式:AVERAGE F

33、OR WHILE TO|ARRAY 功能:在打开的表中,对中的各个表达式分 别求平均值。【示例】根据求98001号学生所有课程的平均成绩。use sc AVERAGE 成绩 to pjcj for 学号=“98001”?“98001号学生的平均成绩为:”,pjcj第57页/共84页5.6.4 汇总命令格式:TOTAL TO ON FIELDS FOR WHILE 功能:分别对值相同的记录的数值型字段值求和,并将结果存入一个新表。一组关键字值相同的记录在新表中产生一个记录;对于非数值型字段,只将关键字值相同的第一个记录的字段值放入该记录。说明:(1)指排序字段或索引关键字,即当前表必须是有序的,

34、否则不能汇总。(2)FIELDS子句的指出要汇总的字段。若缺省,则对表中所有数值型字段汇总。第58页/共84页【示例】对宾馆收银表SY,按楼层对其数值字段进行汇总。USE SYINDEX ON 楼层 TO SYISET INDEX TO SYILISTRecord#楼层 房号姓名其它应收 房费实际金额TOTAL ON 楼层 TO NSUM FIELDS 其它应收,房费,实际金额USE NSUMLISTRecord#楼层房号姓名其它应收 房费 实际金额第59页/共84页5.7 5.7 表的复制表的复制5.7.1 5.7.1 表与表结构的复制表与表结构的复制1、任意类型文件的复制格式:COPY F

35、ILE TO 示例:第60页/共84页2、数据表文件的复制(*)格式:COPY TO FIELDS FOR WHILE TYPE.示例1:USE student COPY TO student3 fields 学号,姓名 FOR 所在系=“CS”USE student3 LIST示例2:USE student copy to STUtxt type sdf copy to STUtxt1 type delimited with blank copy to STUxls xls type 第61页/共84页5.7.2 表结构的复制格式:COPY STRUCTURE TO FIELDS 示例1:U

36、SE student COPY STRU TO student4 fields 学号,姓名,所在系 USE student4 LIST STRU第62页/共84页5.8 SELECT-SQL5.8 SELECT-SQL查询查询 SELECT-SQL查询是从SQL语言移植过来的查询命令,具有强大的单表与多表查询功能。SQL是一种结构化数据库查询语言,它是一种使用你选择的标准从数据库记录中选择某些记录的方法。其发音为“sequel”或“S-Q-L”。VFP支持在命令窗口直接使用SELECT-SQL命令,也可通过“查询设计器”窗口来设计查询、生成查询文件,然后运行定制的查询。第63页/共84页 SQ

37、L主要几个命令动词:SELECT、CREATE、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页5.8.1 用SELECT-SQL命令直接查询1 1、SELECT-SQLSELECT-SQL命令的格式命令的格式 SELECTSELECT ALL ALL|DISTINCT DISTINCT.ASAS ,.

38、ASAS FROMFROM FORCE FORCE!INNERINNER|LEFTLEFTOUTER|OUTER|RIGHTRIGHTOUTER|OUTER|FULLFULLOUTER OUTER JOINJOIN !ONON INTOINTO|TO FILETO FILE ADDITIVE|ADDITIVE|TO TO PRINTERPRINTER PROMPT|PROMPT|TO SCREENTO SCREEN PREFERENCE PREFERENCE NOCONSOLENOCONSOLEPLAINPLAIN NOWAITNOWAIT WHEREWHERE AND AND AND|OR

39、AND|OR AND|OR AND|OR GROUP BYGROUP BY ,HAVINGHAVING UNION UNION ALL SELECTALL ORDER BYORDER BY ASC|DESC ASC|DESC,ASC|DESC ASC|DESC TOP TOP PERCENT PERCENTSELECTSELECT说明要查询的语句说明要查询的语句FROMFROM说明要查询的数据来自哪个(些)表说明要查询的数据来自哪个(些)表WHEREWHERE说明查询条件说明查询条件GROUP BYGROUP BY对查询结果进行分组,用于分组汇总对查询结果进行分组,用于分组汇总HAVINGHA

40、VING须跟须跟GROUP BYGROUP BY使用,限定分组的条件使用,限定分组的条件ORDER BYORDER BY 对查询结果进行排序对查询结果进行排序第65页/共84页SELECT-SQLSELECT-SQL命令的命令的JOINJOIN子句子句:内部联接内部联接 INNER JOININNER JOIN 左联接左联接 LEFT OUTER JOINLEFT OUTER JOIN外部联接:外部联接:右联接右联接 RIGHT OUTER JOIN RIGHT OUTER JOIN 完全联接完全联接 FULL OUTER JOINFULL OUTER JOIN第66页/共84页2、SELEC

41、T-SQL命令查询示例 (1)单表查询示例【示例-1】显示表中所有学生的学号、姓名、性别(从一个表中选取三个字段)。SELECT 学号,姓名,性别 FROM student 【示例-2】显示表中所有“CS”系学生的学号、姓名、性别、所在系,其中以“系”作为列标题替代“所在系”。SELECT 学号,姓名,性别,所在系 as 系 FROM student;where 所在系=“CS”第67页/共84页【示例-3】对先按课号升序再按成绩降序排序,并将结果存入新表。SELECT 学号,课程号,成绩 FROM sc;ORDER BY 课程号,成绩 DESC;INTO TABLE sc1 第68页/共84

42、页【示例-4】显示中各课程平均成绩(按课程分组,对成绩求平均)。select 课程号,avg(成绩)as 平均成绩;from sc group by 课程号第69页/共84页【示例-5】找出学生考试成绩之和大于200分的学生,并将结果存入数组SZSC。执行程序第70页/共84页(2)多表查询示例(联接查询)【示例-6】仅查询学号为98002的学生的成绩,同时显示其学号、姓名、课程号和成绩。解一:SELECT student.学号,student.姓名,sc.课程号,sc.成绩;FROM sc INNER JOIN student ON student.学号=sc.学号;WHERE studen

43、t.学号=98002第71页/共84页解二:SELECT student.学号,student.姓名,sc.课程号,sc.成绩 FROM student,sc;WHERE student.学号=sc.学号 AND student.学号=98002第72页/共84页【示例-7】试统计学生修读课程门数,要求:(1)student.学号后三位小于006;(2)显示姓名与修读门数;(3)显示结果按修读门数降序排列。解一:SELECT student.姓名,COUNT(SC.学号)AS 修读门数;FROM student INNER JOIN sc ON student.学号=sc.学号;WHERE r

44、ight(student.学号,3)“006”;GROUP BY SC.学号;ORDER BY 2 DESCENDING 第73页/共84页解二:SELECT a.姓名,COUNT(b.学号)AS 修读门数;FROM student a,sc b;WHERE a.学号=b.学号 and right(a.学号,3)006;GROUP BY b.学号;ORDER BY 2 DESCENDING 第74页/共84页【示例-8】查询不及格的学生的成绩,同时显示其学号、姓名、课程名和成绩。注意:本查询涉及student,course和sc三个表SELECT a.学号,a.姓名,b.课程名,c.成绩;FR

45、OM student a,course b,sc c;WHERE a.学号=c.学号 AND c.课程号=b.课程号 AND c.成绩60第75页/共84页5.8.2 用查询设计器建立查询 可生成一条SELECT-SQL语句,并保存在查询文件(.QPR)中。1、查询设计器(1)上部窗格:显示已打开的表。(2)下部窗格 字段选项卡 联接选项卡:筛选选项卡 排序依据选项卡 分组依据选项卡 杂项选项卡第76页/共84页2、查询设计器的操作 打开查询设计器、设置查询、执行查询、保存查询【例3-23】试用查询设计器来查询学号为98002的学生的成绩,同时显示其学号、姓名、课程号和成绩。查询文件的命令方式

46、打开:MODIFY QUERY【示例】试通过查询设计器来查询学号为98008的学生的成绩,显示其学号、姓名、课程号、课程名和成绩,并按课程号降序排列。第77页/共84页3、查询菜单的几个命令 (1)查看SQL 用于显示由查询操作产生的SELECT-SQL命令。显示出来的命令为只供阅读,不能编辑,但可通过剪贴板复制和粘贴。(2)查询去向 选定“查询去向”命令即出现如图5-49所示的查询去向对话框,其中共包括7个按钮,表示查询结果不同的输出类型。(3)运行查询 执行查询并输出结果。第78页/共84页使查询结果可用于Microsoft图形:在命令窗口执行命令 _GENGRAPH=“VFPWIZARD

47、SWZGRAPH.APP”命令中的_GENGRAPH为系统变量,WZGRAPH.APP应用程序由VFP提供。该命令一次性执行后就能使“查询去向”对话框中的“图形”按钮变成可用,否则该按钮不能被激活。说明:(1)图形向导对话框中含有柱形图、折形图、圆饼图等多种统计图供用户挑选。(2)为输出图形通常需选取两个以上表达式,并且至少要有一个数值表达式。出于构图的需要,用数字表达式表示幅度,另一个表达式则表示坐标轴分点。(3)输出的图形将存入扩展名为.SCX的表单文件,文件主名可由用户定义。表单文件用DO FORM命令来执行,执行后即显示图形。图形还可在表单设计器修改。(4)用户也可直接调用WZGRAP

48、H.APP应用程序来打开图形向导对话框。(5)用户也可直接使用图形向导,此时不显式使用WZGRAPH.APP应用程序,但对于查询结果图形输出须先运行查询文件,对于表数据图形输出可直接使用向导。*5.8.3 查询结果的图形处理第79页/共84页5.9.1 概念*5.9 视图视图又称为SQL视图,是一个定制的虚拟表,是对已有数据库表(基表)的数据进行重新组织,本身并不存储数据,但用户通过视图可以对基表的数据进行修改更新。可分为本地视图、远程视图。F视图和查询的对照:相同:相同:u查询和视图都是无表文件的表查询和视图都是无表文件的表,一般称为一般称为“虚表虚表”不同不同:u更新视图可以更新基表,查询

49、不能更新基表;更新视图可以更新基表,查询不能更新基表;u视图可以作为数据环境的数据源,查询则不行。视图可以作为数据环境的数据源,查询则不行。u视图是数据库的一部分,视图可引用远程表。视图是数据库的一部分,视图可引用远程表。第80页/共84页5.9.2 视图的创建q使用视图设计器选中数据库,选择选中数据库,选择“本地视图本地视图”,选,选“新建新建”视图设计器与查询设计器的不同:增加了一个视图设计器与查询设计器的不同:增加了一个“更新更新”选项卡选项卡q 使用命令格式:格式:CREATE SQL VIEWCREATE SQL VIEW ASAS SELCTE-SQL 5.9.3 更新选项卡在在“

50、表表”下拉列表框中设置可更新的表。下拉列表框中设置可更新的表。在在“字段名字段名”列表中设置列表中设置“可更新字段可更新字段”在在“发送发送SQLSQL更新更新”复选框中,设置是否允许对基表更新。复选框中,设置是否允许对基表更新。5.9.4 视图的使用 视图一经定义,就成为数据库的组成部分,可以像数据库视图一经定义,就成为数据库的组成部分,可以像数据库表一样接受用户的查询。表一样接受用户的查询。第81页/共84页82本章重点掌握:(1)表的访问操作;记录的添加、插入、编辑修改、显示、定位、删除各恢复、过滤等操作;掌握备注型数据和通用型数据的输入方法;表结构的复制。(2)用编辑方式显示和修改数据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁