第4章 查询与统计.ppt
《第4章 查询与统计.ppt》由会员分享,可在线阅读,更多相关《第4章 查询与统计.ppt(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章查询与视图查询与视图查询查询是指从指定的数据库、表或视图中搜索搜索那些满足一定条件的记录,并可以根据需要对这些记录进行排序和分组,还可以将查询结果输出到浏览器、表、报表、标签及图形中。让我们想到搜索引擎百度、Google。查询可以利用表的查询与统计查询可以利用表的查询与统计命令实现命令实现,也可,也可以通过以通过查询设计器查询设计器或者或者SQL语句语句实现。实现。v4.1查询与统计查询与统计v4.2结构化查询语言结构化查询语言SQLv4.3查询查询v4.4视图视图v思考题思考题4.1查询与统计查询与统计本节将介绍关于表的记录查询和统本节将介绍关于表的记录查询和统计的命令,包括记录的
2、定位、数据筛计的命令,包括记录的定位、数据筛选、记录查询和统计命令。选、记录查询和统计命令。v4.1.1表的记录定位表的记录定位v4.1.2表的数据筛选表的数据筛选v4.1.3表的查询命令表的查询命令v4.1.4表的统计命令表的统计命令4.1.1表的记录定位表的记录定位在在数数据据表表应应用用中中,有有时时需需要要将将记记录录指指针针定定位位到到某某条条记记录录上上,然然后后进进行行记记录录处处理理。一一共共有有6种种定定位方式。位方式。v第一个:定位到第一条记录。第一个:定位到第一条记录。v最后一个:定位到最后一条记录。最后一个:定位到最后一条记录。v下一个:定位到当前记录的下一条。下一个:
3、定位到当前记录的下一条。v上一个:定位到当前记录的上一条。上一个:定位到当前记录的上一条。v记录号:定位到指定记录号的位置记录号:定位到指定记录号的位置v条件定位:指针将移至满足条件的首条纪录。条件定位:指针将移至满足条件的首条纪录。操作命令:操作命令:”表表”转到记录转到记录”例例4.1在在“学学生生表表”的的头头5条条记记录录中中,定定位位指指针针到到奖学金高于奖学金高于100的男生。的男生。4.1.2表的数据筛选表的数据筛选在在显显示示表表中中的的记记录录时时,可可以以只只显显示示某某些些记记录录(选选择择),称称为为记记录录筛筛选选;也也可可以以只只显显示示某某些些字字段段(投投影影)
4、,称为,称为字段筛选字段筛选。筛选命令见下节。筛选命令见下节4.1.3.2数据筛选的设置可用如下两种方法:数据筛选的设置可用如下两种方法:(1)”表表“”属性属性“(2)”窗口窗口“”数据工作期数据工作期“”属性属性“在在打打开开的的”工工作作区区属属性性“窗窗口口中中:在在”数数据据过过滤滤器器“中中设设置置记记录录筛筛选选;在在”字字段段筛筛选选“中中设设置置字字段筛选。段筛选。例例4.2对对“学学生生表表”设设置置筛筛选选条条件件,要要求求显显示示女女生生的名单。的名单。例例4.3设设置置上上例例的的输输出出字字段段为为“xh”,“xm”,“xb”。4.1.3表的查询命令表的查询命令下面
5、介绍几个有关查询的命令,包括记下面介绍几个有关查询的命令,包括记录定位和数据筛选录定位和数据筛选。v1.记录定位记录定位n1).绝对定位绝对定位n2).相对定位相对定位n3).顺序查询定位顺序查询定位n4).索引查询定位索引查询定位v2.数据筛选数据筛选n1).记录筛选命令:记录筛选命令:SET FILTERn2).字段筛选命令:字段筛选命令:SET FIELDS1).绝对定位绝对定位格式:格式:GO TO TOPGO TO BOTTOMGO RECORD 功能:功能:定位到首记录定位到首记录 定位到末记录定位到末记录 定位到第定位到第N条记录。条记录。2).相对定位相对定位格式格式:SKIP
6、+|-功能功能:定位到当前记录的上一条定位到当前记录的上一条|下一条下一条|往上往上或往下移动或往下移动N条。条。例例4.4打开打开“学生表学生表”,定位到最后一,定位到最后一条记录,并向前移动三条记录,然后再向条记录,并向前移动三条记录,然后再向后移动一条记录。后移动一条记录。3).顺序查询定位顺序查询定位格式:格式:LOCATEFOR|WHILE功能:功能:在在指指定定的的范范围围内内,查查找找当当前前表表中中满满足足条条件件的的记记录录,并并且且定定位位到到第第一一条条满满足足条条件件的的记记录录。如如果果要要查查找找后后面面满满足足条条件件的的记记录录,可可以以反反复复使使用用CONT
7、INUE命命令令,直直至至到到达达范范围围边边界界或或表表尾尾为为止。止。例例4.5在在“学学生生表表”的的头头7条条记记录录中中,定定位位指指针到奖学金高于针到奖学金高于100的男生。的男生。4).索引查询定位索引查询定位(1)格式:格式:SEEK 功能:功能:在在指指定定的的范范围围内内,查查找找当当前前表表中中满满足足条条件件的的记记录录。如如果果找找到到,则则记记录录指指针针定定位位在在满满足足条条件件的的第第一一条条记记录录,且且FOUND()为为真真;查查找找失失败败时时,FOUND()的的返返回回值值为为假,记录指针定位在文件尾。假,记录指针定位在文件尾。4).索引查询定位索引查
8、询定位(2)说明:说明:(1)在在使使用用SEEK命命令令时时应应先先打打开开索索引引文文件件。SEEK命令中的表达式须和索引表达式的类型相同。命令中的表达式须和索引表达式的类型相同。(2)SEEK命命令令不不仅仅可可以以查查找找字字符符串串和和常常数数,它它还还可可以以查查找找字字符符型型、数数值值型型、日日期期型型或或逻逻辑辑型型表表达达式式的的值值。用用SEEK命命令令查查找找字字符符串串常常量量时时,字字符符串串常量必须放在定界符中。常量必须放在定界符中。(3)SEEK命命令令定定位位到到第第一一条条满满足足条条件件的的记记录录,反复使用反复使用SKIP命令可查找下一条满足条件的记录。
9、命令可查找下一条满足条件的记录。例例4.6索索引引查查询询的的例例子子:查查找找“学学生生表表”中中“奖奖学金学金”为为100的学生名单的学生名单1).记录筛选命令记录筛选命令格式:格式:SETFILTERTO功功能能:设设置置当当前前表表中中可可以以被被访访问问的的记记录录必须满足的条件。必须满足的条件。说明:说明:若若对对同同一一个个数数据据表表使使用用了了多多条条记记录录筛筛选选命令,仅最后一条起作用。命令,仅最后一条起作用。记记录录筛筛选选命命令令一一直直有有效效,直直至至表表关关闭闭为为止,或使用止,或使用SETFILTERTO命令。命令。例例4.7对对“学生表学生表”设置筛选条件,
10、要设置筛选条件,要求显示女生的名单。求显示女生的名单。2).字段筛选命令字段筛选命令格式:格式:SETFIELDSTO功能:设置当前表中可以被访问的字段。功能:设置当前表中可以被访问的字段。说明:说明:(1)若有多条字段筛选命令,它们是联合起作用若有多条字段筛选命令,它们是联合起作用的,即合并所有被指定的字段成为当前可被访问的,即合并所有被指定的字段成为当前可被访问的字段。的字段。(2)不带参数的不带参数的SETFIELDS命令,即命令,即SETFIELDSTO,表示当前表中无一字段可被访问。,表示当前表中无一字段可被访问。(3)要访问所有字段用:要访问所有字段用:SETFIELDSTOALL
11、。例例4.8对对“学生表学生表”设置输出字段为学号设置输出字段为学号“xh”,姓名,姓名“xm”,性别,性别“xb”。4.1.4表的统计命令表的统计命令下面介绍几个有关统计的命令。下面介绍几个有关统计的命令。v1.计数命令计数命令v2.求和命令求和命令v3.求平均值命令求平均值命令v4.计算命令计算命令v5.分类汇总命令分类汇总命令1.计数命令计数命令(1)格式:格式:COUNTFOR|WHILETO功能:计算当前表中在指定范围内满足指定功能:计算当前表中在指定范围内满足指定条件的记录的个数。条件的记录的个数。说明:说明:缺省范围与条件时,将对表中所有的记录进缺省范围与条件时,将对表中所有的记
12、录进行计数。行计数。计数的结果显示在主窗口的状态条中。若使计数的结果显示在主窗口的状态条中。若使用用TO子句,则可将计数结果保存到指定的内存子句,则可将计数结果保存到指定的内存变量中。变量中。1.计数命令计数命令(2)TO:将每个总计值存:将每个总计值存入相应的内存变量。如果指定的变量不存入相应的内存变量。如果指定的变量不存在,在,VFP将自动创建它。将自动创建它。如果如果SETDELETEON,则已做删除标,则已做删除标记的记录将不被记的记录将不被COUNT命令统计,但仍命令统计,但仍被被RECCOUNT()函数统计。函数统计。例例4.9统计统计“学生表学生表”中男生的数目中男生的数目并把结
13、果存到内存变量并把结果存到内存变量“男生数目男生数目”中。中。2.求和命令求和命令格式:格式:SUM数数值值字段名表字段名表FOR|WHILETO|TOARRAY功能:对当前表的指定数值字段或全部功能:对当前表的指定数值字段或全部数值字段进行求和。数值字段进行求和。说明:说明:数值字段名表缺省表示对所有数值型字数值字段名表缺省表示对所有数值型字段求和,范围缺省表示段求和,范围缺省表示ALL。例例4.10统计统计“学生表学生表”男生获得的奖男生获得的奖学金的总数,存到数组学金的总数,存到数组“男生奖学金男生奖学金”中。中。3.求平均值命令求平均值命令格式:格式:AVERAGE数值字数值字段名表段
14、名表FOR|WHILETO|TOARRAY功能:对当前表的指定数值字段或全部功能:对当前表的指定数值字段或全部数值字段求平均值。数值字段求平均值。说明:参数说明与说明:参数说明与SUM命令相同,不再命令相同,不再赘述。赘述。例例4.11计算计算“学生表学生表”中学生平均获中学生平均获得的奖学金数额,并输出结果。得的奖学金数额,并输出结果。4.计算命令计算命令格式:格式:CALCULATEFOR/WHILETO|TOARRAY功能:对当前表的指定字段按指定函数进行功能:对当前表的指定字段按指定函数进行计算。计算。说明:说明:参数说明与参数说明与SUM命令相同的,不再赘述。命令相同的,不再赘述。常
15、用的有五个计算函数常用的有五个计算函数。例例4.12计算计算“学生表学生表”中学生获得的最低中学生获得的最低的奖学金数额,并输出结果。的奖学金数额,并输出结果。CALCULATE常用的五个计算函数常用的五个计算函数AVG():计算数值型表达式的:计算数值型表达式的算术平均值。算术平均值。CNT():返回表中记录的数目。:返回表中记录的数目。MAX():返回:返回的最大的最大值。值。可指定任何字符型、日期型、日可指定任何字符型、日期型、日期时间型、数值型等字段,或包含这些类型字期时间型、数值型等字段,或包含这些类型字段的表达式。段的表达式。MIN():返回:返回的最小值。的最小值。SUM():对
16、数值表达式求和。:对数值表达式求和。另有标准差另有标准差STD(),均方差均方差VAR(),净现值净现值NPV()共共8个。个。5.分类汇总命令分类汇总命令(1)格式:格式:TOTALTOONFIELDSFOR|WHILE功能:功能:分别计算当前表中满足条件的各类别数值字段的和。说明:说明:指定存放计算结果的表的名称。:指定总计时作为分组依据的字段。要求表必须以该字段排序要求表必须以该字段排序。FIELDS:指定要总计的字段。字段名间用逗号分隔。如果省略该子句,则默认合计所有的数值型字段。5.分类汇总命令分类汇总命令(2)例例4.13分别统计分别统计“学生表学生表”中男女生获得的奖学金总额,并
17、中男女生获得的奖学金总额,并将结果汇总到表将结果汇总到表“奖学金汇总表奖学金汇总表.DBF”。4.2结构化查询语言结构化查询语言SQLp118SQL(structurequerylanguage)是关系数据库系统的国际标准查询语言,当前主流的数据库都提供对该语言的支持,它包括数据定义数据定义、数据控制数据控制、数据操作数据操作以及数据查询数据查询。其中查询是数据库最重要的操作,SQL语言的SELECT语句为查询提供了灵活及全面的支持。(增删改名)v4.2.1数据定义数据定义表和字段数据定义v4.2.2数据操作数据操作记录数据操作v4.2.3数据查询数据查询查询数据查询4.2.1数据定义数据定义
18、一个表分为两个层次:第一个层次是表一个表分为两个层次:第一个层次是表的结构,第二个层次是表的数据。数据定的结构,第二个层次是表的数据。数据定义就是一系列对表结构操纵的义就是一系列对表结构操纵的SQL命令,命令,包括包括CREATETABLE-SQL,CREATECURSOR-SQL,ALTERTABLE-SQL,DROPTABLE-SQL命令。命令。v1.表的定义表的定义v2.表的修改表的修改v3.表的删除表的删除1.表的定义表的定义(1)(1)CREATETABLE:创建表文件创建表文件格式:格式:CREATETABLE(,)NULLNOTNULLDEFAULTPRIMARYKEYUNIQU
19、ECHECKERROR,CHECKERROR)1.表的定义表的定义(2)说明:说明:用字母表达,如下所示用字母表达,如下所示:C字符型字符型N数值型数值型D日期型日期型L逻辑型逻辑型M备注型备注型G通用型通用型例例4.14用用SQLCREATE命命令令创创建建一一个个“学学生生表表”包包含含学学号号(XH),姓姓名名(XM),性性别别(XB),奖奖学金学金(JXJ),备注,备注(BZ)。CREATE CREATE TABLE TABLE 学学生生表表(XH(XH C(7)C(7)NOT NOT NULL NULL UNIQUE,XM UNIQUE,XM C(8)C(8)NOT NOT NULL
20、,XB NULL,XB L,CSRQ L,CSRQ D,JXJ D,JXJ N(7,2),BZ M)N(7,2),BZ M)1.表的定义表的定义(3,临时表临时表)(2)CREATECURSOR:创建临时表创建临时表格式:格式:CREATECURSOR(,)(,),)说明:临时表只是一个存在于内存中的表,只说明:临时表只是一个存在于内存中的表,只要不关闭,就可以像操作数据表那样对临时表要不关闭,就可以像操作数据表那样对临时表进行操作,但是一旦被关闭,临时表就不存在进行操作,但是一旦被关闭,临时表就不存在了。了。例例4.15创建一个临时表创建一个临时表CREATECURSOR通讯录通讯录(姓名姓
21、名C(8),电话电话C(30)2.表的修改表的修改(1)功能:修改表结构。功能:修改表结构。格式:格式:ALTER TABLE ADDCOLUMN 完整完整性约束性约束 RENAME COLUMN TO ALTER DROP COLUMN 说明:说明:ADD增加字段增加字段 RENAME字段重命名字段重命名 ALTER修改字段修改字段 DROP删除字段删除字段2.表的修改表的修改(2)例例4.16为为“学生表学生表”增加增加A字段。字段。ALTERTABLE学生表学生表ADDAN(10)例例4.17修改修改“学生表学生表”的的A字段名称为字段名称为ZY。ALTERTABLE学生表学生表RENA
22、MECOLUMNATOZY例例4.18修改修改“学生表学生表”的的ZY字段类型为字符字段类型为字符型。型。ALTERTABLE学生表学生表ALTERZYC(20)例例4.19删除删除“学生表学生表”的的ZY字段。字段。ALTERTABLE学生表学生表DROPCOLUMNZY3.表的删除表的删除功能:删除表。功能:删除表。格式:格式:DROPTABLE例例4.20删除删除“学生表学生表”DROPTABLE学生表学生表4.2.2数据操作数据操作表结构建立之后需要填写表中表结构建立之后需要填写表中的数据或者对表中的数据进行修改,的数据或者对表中的数据进行修改,对表中的数据的操作包括插入、更对表中的数
23、据的操作包括插入、更新、删除等。新、删除等。v1.插入插入InsertintoValuev2.更新更新UpdateSetv3.删除删除Deletefrom1.插入插入功能:在表的末尾插入一条新纪录。功能:在表的末尾插入一条新纪录。格式:格式:INSERTINTO(,)VALUES(,)例例4.21向向“学生表学生表”插入一条新纪录。插入一条新纪录。INSERTINTO学生表学生表(XH,XM,XB);VALUES(“0603009”,”章玉婷章玉婷”,.F.)2.更新更新功能:更新记录,一次可以更新多条记录。功能:更新记录,一次可以更新多条记录。格式:格式:UPDATESET=,=)WHERE
24、例例4.22将将“学生表学生表”中女生的奖学金增加中女生的奖学金增加100元,再减少元,再减少100元。元。UPDATE学生表学生表SETJXJ=JXJ+100WHEREXB=.F.UPDATE学生表学生表SETJXJ=JXJ-100WHEREXB=.F.3.删除删除功能:逻辑删除记录,一次可以删除多功能:逻辑删除记录,一次可以删除多条记录,要彻底删除需要用条记录,要彻底删除需要用PACK命令。命令。格式:格式:DELETEFROMWHERE例例4.23物理删除物理删除“学生表学生表”中中“章玉章玉婷婷”的记录。的记录。DELETEFROM学生表学生表WHEREXM=”章玉婷章玉婷”PACK4
25、.2.3数据查询数据查询SQL的数据查询语句SELECT-SQL是SQL语言中使用最广泛的,也是SQL中的重点。(功能非常丰富,基本要求4子句)SQL语句命令的结构如下:Select字段名列表From表名列表Where条件Orderby排序依据Groupby分组名Having分组条件UnionSelect命令To文件名Into输出目标1.1.投影投影:SELECT子句子句(1)(1)功能:指定查询输出字段。功能:指定查询输出字段。格式:格式:SELECTALL/DISTINCTTOPPERCENT.|AS,.|AS,说明说明1.1.投影投影:SELECT子句子句(2)(2)例4.24查询“学生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 查询与统计 查询 统计
限制150内