




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
索引与排序,什么是索引和排序索引的构成和类型创建索引索引的编辑和应用排序的创建和应用,记录的顺序物理顺序:表中记录的存储顺序。按记录输入的前后顺序存放。逻辑顺序:记录的处理顺序。对记录按某个(些)字段的值进行排序。,了解索引与排序,排序,索引,重新组织数据表数据,了解索引与排序,索引实际上是一种排序,但是它不改变数据表中数据的物理顺序,而是另外建立一个逻辑顺序号与记录号(物理顺序)的对照表。表的逻辑顺序号是由某一字段的值的大小决定。,排序从物理上对表进行重新整理,按照指定的关键字段来重新排列表中数据记录的顺序,并将重新排序的结果形成一个新的数据表。,索引的概念,索引:不改变物理顺序,所有关键字按升(降)排列,每个值对应原文件的一个记录号,确定记录的逻辑顺序,索引,逻辑顺序,物理顺序,只有索引关键字段值或索引表达式值(逻辑顺序号)与记录号(物理顺序)。一个索引表达式或索引关键字段值与记录号对应的内容又称之为一张“对照表”,用一个索引标识来标记。说明:一个表可同时建立多个索引,但只能有一个索引为主控索引。,索引文件的内容,控制表当前显示的顺序,索引的概念,索引,逻辑顺序,关键字段值或索引表达式值,记录号,对照表,bh,索引标识,索引的构成,索引名又叫索引标识(TAG)。是标记一个索引的名称。索引表达式或索引关键字段索引表达式或索引关键字段的值是确定索引顺序的依据。,索引的构成与类型,索引的类型,主索引(PrimaryIndexes)每张表只能有一个。一般为表的关键字或索引表达式的值没有重复值的才能作为主索引。只存在数据库表中的结构复合索引中。候选索引(CandidateIndexes)可有多个。一般为表的关键字或索引表达式的值没有重复值的才能作为候选索引。自由表中也可建立。,索引的类型,普通索引(RegularIndexes)一张表可有多个。数据库表和自由表均可有。唯一索引(UniqueIndexes)索引表达式中重复的值在索引表中只出现第一个,忽略重复值。,建立时,用户单独为其命名,建立时,用户未单独为其命名,与表文件同名,需使用单独命令打开、关闭,与表同时打开、关闭,为与FOXBASE兼容,含多个索引,建立时,用户单独为其命名,需使用单独命令打开、关闭,索引文件的种类,索引,复合索引(扩展名CDX),独立(单一)索引(扩展名IDX),非结构复合索引,结构复合索引,索引文件的种类,复合索引文件(扩展名为.CDX)定义:由多个关键字段值和其对应的多个记录的物理位置构成。(一个索引文件中有多张“对照表”)结构化复合索引文件索引文件名与表文件同名(由系统自动生成)其打开和关闭与表文件同步,是表的一部分。表文件修改时,系统自动更新该索引文件。,一个索引文件有多个索引,非结构化复合索引索引文件名由用户给出,要用专门的命令打开。可随表文件关闭也可用命令关闭。,独立索引文件(扩展名为.IDX)(又称之单一索引文件)只存储一个索引的文件,文件名由用户给出,要用专门命令打开。,不常用的索引或临时性的索引,为了控制字段的重复值或者对记录进行排序,对数据表使用主索引或候选索引(对自由表使用候选索引)。,决定索引类型时一般应遵循的原则,为了提高显示、查询、打印的速度,应使用普通索引、候选索引或主索引。,菜单法:在“表设计器”中创建(只能创建结构复合索引文件),创建索引,注意:不能对备注型或通用型字段建立索引;不要建立多余的无用的索引,会降低系统性能;索引表达式是由多个字段组成时要注意书写格式和数据类型的一致。即多个索引关键字段名间应用“号连接,且要用函数转换为一样的数据类型。,创建索引实例1,用菜单法对zgb.dbf表建立复合索引以工作部门的升序排列,普通索引,索引标识为gzbm,并浏览显示。按jbgz1标识,建立以基本工资升序排列的普通索引。对男职工以其基本工资降序显示记录。(jbgz2)以工作部门升序排列,若部门相同,则按工作时间的升序排列。(bmsj)以工作部门升序排列,若部门相同时,则按基本工资降序排列。(bmgz),C,D,C,N,创建索引实例1,关键字表达式为C型和N型时,一般将数值型数据转为字符型数据,再用字符型连接符号“+”连接;或也可转为数值型数据:转为字符型函数:STR(数值型数据,长度,小数位)例:工作部门+str(106-基本工资*100)转为数值型函数:VAL(数字字符型数据,长度)例:val(工作部门)+基本工资则原题意写为val(工作部门)*106-基本工资*100,菜单操作中默认是升序排列,创建索引实例1,关键字表达式为C型和D型时,要将日期型数据转为字符型数据,再用字符型连接符号“+”连接。函数:DTOC(日期型数据)DTOS(日期型数据)“工作部门工作时间”工作部门+dtos(工作时间),操作示范,结构化索引,非结构化索引,IndexOnTagOFFor条件Ascending|DescendingUnique|Candidate,IndexOnTagFor条件Ascending|DescendingUnique|Candidate,创建索引,升序|降序,唯一索引候选索引,命令法:,可以与字段同名,在数据库中讲解,结构化索引,主索引的建立,AltertableaddprimarykeyTag,IndexOnTagFor条件Ascending|DescendingUnique|Candidate,创建索引,升序|降序,唯一索引候选索引,命令法:,可以不打开但建立索引后自动被打开,单索引,IndexOnToCompactUniqueAdditive,建立新的索引文件时不关闭已打开的索引文件,创建索引,快速存取索引,命令法:,创建索引实例2,用命令法对学生.dbf表建立复合索引以籍贯的升序排列,普通索引,索引标识为jg,并浏览显示。按cj1标识,建立以外语成绩降序排列的普通索引。对男学生以其出生日期降序显示记录。(narq)以性别升序排列,若性别相同,则按数学成绩降序排列。(xbcj)以姓名降序排列,若姓名相同时,则按出生日期降序排列。(xmrq),创建索引实例2,用命令法对学生.dbf表建立复合索引Use学生Indeon籍贯tagjgBrowIndeon外语tagcj1descListIndeon出生日期tagnarqfor性别=“男”DispallIndeon性别+str(100-数学)tagxbcjDispallIndeon姓名+dtos(出生日期)tagxmrqdesc,创建索引实例3,用命令法对学生.dbf表建立单索引1.按数学成绩降序建立索引Use学生Indeon数学tosu2.按姓名升序建立索引Indeon姓名toname,3.按性别建立唯一索引,Indeon性别toxb2uniq,索引的编辑和应用,索引文件的打开和关闭,结构复合索引文件随着表文件的打开和关闭而同时进行;非结构复合索引文件和独立索引文件是用命令打开的。,命令法打开索引文件,打开表文件的同时打开索引文件,Use表文件名Index索引文件名表,表文件已打开后打开索引文件,SetIndexToAdditive,说明:,选择主控索引,菜单法建立的结构复合索引文件虽是打开的,但不是主控索引,需指定才成为主控索引.,用命令法建立的任一种索引,均为打开,并且直接为主控索引.,主控索引的概念,对当前表记录顺序起控制作用的索引称为主控索引。,任何时侯只有一个主控索引,设置主控索引,SetOrderTo,索引编号IDX文件名TAG标识名OFCDX文件名,仅有此部分时为出取消主控索引,推荐,表文件打开且相应的索引文件已打开,菜单法选择主控索引,操作要点,进入“工作区属性”窗口“工作数据期“工具按钮,选择“属性”按钮,进入。或若为浏览表状态下选择菜单“表属性”,进入。在“工作区属性”窗口的“索引顺序”框中选择索引标识,按“确定”按钮。,关闭索引文件单索引、非结构复合索引被关,结构复合索引是取消当前索引SetIndexToCloseIndex,命令法关闭索引文件,有关索引的命令,IndexOnTagOFFor条件Ascending|DescendingUnique|Candidate,IndexOnTagFor条件Ascending|DescendingUnique|Candidate,AltertableaddprimarykeyTag,结构,非结构,对库表建主索引,建立索引,IndexOnToCompactUniqueAdditive,单索引,Use表文件名Index索引文件名表,SetIndexToAdditive,索引打开,表、索同时,表已开、再开索,单或非结构,索引编号|IDX文件名|TAG标识名OFCDX文件名,SetOrderTo,设置主控索引,取消主控索引,SetOrderTo,SetIndexToCloseIndex,关闭索引文件,对单或非结构而言,对结构索引是取消主控,索引的修改和删除,修改,删除,表设计器中直接修改和删除,DeleteTagAll/,DeleteFile索引文件名,删除复合索引文件中的索引标记,是对关闭的独立或非结构复合索引文件删除,更新,表中数据修改时已打开的索引自动更新,而未打开的索引文件则要打开后用命令:Reindex更新,索引查询,索引的应用,Seek表达式,说明:对表达式的内容进行查找,找到时记录指针指在该记录上,未找到时记录指针则在文件尾。用“Skip”辅助命令查找下一条件满足条件的记录,Find表达式,SEEK(索引关键字表达式),用FOUND()函数测试查找是否成功,找到为T,否则为F。也可用EOF()函数,找到时该函数值为F,没找到为T。,解释见教材P41,当没找到记录时,记录指针指到文件尾。,Seek中的表达式说明:表达式的数据类型有C、N、L、D,但需按各类型的格式书写。字符型变量前无需加“&”Find中的表达式说明:表达式的数据类型只有C、N,字符型数据无需加定界符。字符型变量前需加“&”。,“&”宏代换函数将紧随其后的字符型内存变量的值的定界符去掉。例:a1=“ABCD”a2=“a1”?&a2与?a1等功能结果ABCD?”&a1”与?“ABCD“等功能结果ABCD?&a1结果没找到变量ABCDb1=67b2=“b1”?&b1,Use学生Indeon姓名tagxm&若已建立则打开并指定为主控索引Seek“王”&find王?Found()&判断是否找到,若为“T”,则找到了DispSkipdisp,查找实例,在学生.DBF中查找查找所有“王”姓同学的记录;,直到无显示为止,Use学生indename,将数值型数据转换为字符型函数,Indeonalltrim(str(外语,5,1)+性别taggzxbSeek“89.0女”&find89.0女?found()&结果为.T.时操作下一步DispSkip?eof()&结果为.F.时操作下一步DispSkip?eof()&结果为.T.时停止操作,去空格函数,外语成绩为89.0的女同学记录,“5”为转换的总长度“1”为转换的小数位数,Indeon出生日期tagrqSeek1987-02-04DispSkipdisp,1987年2月4日出生的同学,&若已建立则打开并指定为主控索引,当根据多个关键字段进行排序,且排序的方向又是一致时使用,建立排序,SortToOn/A/D/C,/A/D/CAscending|Descending范围For|WhileFields,按指定的关键字段进行排序,并将结果置于指定的新表中。,命令格式,4.4表统计,1求记录个数,2求和,3求平均值,4综合统计,5分类汇总,缺省时对当前表中所有的数值型字段求和。,变量的个数要与表达式项数一致。,可将统计的结果赋值给内存变量。,求和的结果若超出字段所定义的宽度时,系统用该字段宽度的“*“表示。,1求记录个数,格式:Count范围For/WhileTo,功能:统计当前表中符合范围、条件的记录个数。,2求和,格式:Sum数值型字段名表或表达式范围For/WhileTo,功能:对当前数据表中的数值型字段求和,或由数值型字段表达式进行累加后求和。,3求平均值格式:Average数值型字段名表或表达式范围For/WhileTo功能:对当前数据表中的数值型字段或由数值型字段表达式累加后求平均。,书中例题的结果可写成如下:,?“全校学生平均年龄为:”,y?“全校学生数学和外语成绩总分分别是:”,a,b,4综合统计格式:Calculate表达
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 唐山市人民医院超声带教资格考核
- 乌海市人民医院超声引导下关节注射技术准入考核
- 大同市中医院循证医学实践考核
- 呼伦贝尔市中医院医疗卫生法律法规专项考试
- 2025年长春城投城镇化建设投资有限公司-招投标数据分析报告
- 临汾市人民医院团队协作能力考核
- 2025年中国石灰岩矿项目创业投资方案
- 黄陂企业安全员培训课件
- 2025年中国青贮饲料膜项目投资计划书
- 2025年中国松节油再加工产品项目创业计划书
- 城管协管员面试题目及答案
- 学校运营监管方案(3篇)
- 第12课 动物的反应 课件(内嵌视频) 青岛版科学一年级下册
- 地质项目合同管理办法
- 机械故障诊断培训课件
- 2025年行政执法人员考试题库(附答案)
- 2025年辅警招聘考试简答题题库及答案
- 2025至2030渐进多焦点镜片行业项目调研及市场前景预测评估报告
- 运动表现生物力学优化模型-洞察阐释
- 2025年海南省高考物理试卷(含答案解析)
- 托业培训课件
评论
0/150
提交评论