已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章 数据库和表的基本知识,(时间:6次课,12学时),第3章 数据库和表的基本知识,学习目的与要求: 在Visual FoxPro中数据库和表是最重要的部分,也是最基本的操作,要求熟悉数据库建立、修改、打开、关闭等一系列基本操作。同时熟练掌握对表的建立、数据操作等一系列操作,并掌握相关命令的使用,为以后各章的学习打下扎实的基础。 本章主要介绍数据库、表的基本概念,数据库的基本操作,表的基本操作等。,第3章 数据库和表的基本知识,3.1 数据库的基本知识 3.2 表的基本知识 3.3 本章实训 3.4 本章习题,3.1 数据库的基本知识,数据库的基本概念 数据库的建立 数据库的基本操作 数据库是Visual FoxPro中数据管理最基础的部分,也是最重要的内容,本节将介绍数据库的有关基本概念以及数据库的基本操作。,3.1.1 数据库的基本概念,在Visual FoxPro中,数据库是一个逻辑上的概念和手段,通过一组系统文件将相互联系的数据库表及相关的数据库对象统一组织和管理。Visual FoxPro数据库除了包含有存储数据的表外,还包含视图、连接、存储过程等数据库对象。有关这些数据库对象在后面章节中在做一一介绍。 在Visual FoxPro中,数据库建立后是一个独立的文件,其扩展名为.DBC,同时还有一个与之相关的数据库备注文件扩展名为.DCT和一个数据库索引文件扩展名为.DCX。就是在数据库建立后,磁盘上可以看到文件名相同,但扩展名分别为.DBC、.DCT、.DCX的三个文件,这三个文件用户一般不能直接使用。,3.1.2 数据库的建立,建立数据库的方法一般有三种方法: 1. 在项目管理器中建立数据库 首先打开项目管理器进入界面图3.1所示,首先单击【数据】选项卡,在里面选择【数据库】,然后单击【新建】按钮,弹出如图3.2所示的对话框,单击【新建数据库】,进入创建对话框如图3.3所示,在这里选择数据库所要保存的位置和输入数据库的名字,然后单击【保存】按钮,这样数据库就建立成功了。,图3.1,图3.2,图3.2,2. 使用【新建】对话框建立数据库 首先在【文件】菜单里选择【新建】或单击工具栏的【新建】按钮图标,打开如图3.4所示的【新建】对话框。在对话框里选择【数据库】,然后单击【新建文件】按钮,进入如图3.3,然后按在项目管理器中的建立数据库的操作进行。,图3.4,3. 使用命令建立数据库 【命令格式】 CREATE DATABASE DatebaseName 【命令说明】 参数DatebaseName指的是数据库的名,用户可以指定所创建的数据库名,也可以不指定;如果不指定将进入如图3.3所示的对话框要求用户输入数据库名。 【例3-1】在命令窗口中创建名为成绩管理的数据库。命令如下: CREATE DATABASE 成绩管理,3.1.3 数据库的基本操作,打开数据库 修改数据库 关闭数据库 删除数据库,1.打开数据库,要使用数据库就必须先打开数据库,打开数据库的方法也有三种: (1)在项目管理器中打开 首先打开项目管理器进入界面图3.1所示,首先单击【数据】选项卡,在里面选择【数据库】,然后单击【数据库】左边的“”,弹出如图3.5所示的界面,然后选中要打开的数据库名,单击【打开】按钮,数据库就自动打开,可以在工具栏看到如图3.6所示的打开数据库的标志。,图3.5,(2)使用【打开】对话框打开 首先在【文件】菜单里选择【打开】或单击工具栏的【打开】按钮图标,出现如图3.7所示的【打开】对话框。在对话框里【文件类型】选择【数据库(*.dbc)】,然后选择查找范围,找到所要打开数据库名的位置,选中数据库名,单击【确定】按钮,打开数据库进入如图3.8所示的界面。,图3.6,图3.7,图3.8,注意:在打开对话框中有“以只读方式打开”和“独占”复选框可以选择,这里“以只读方式打开”指的数据库打开后不能进行修改;而“独占”指的不允许其他用户在同一时刻使用该数据库。 (3)使用命令打开 在命令窗口中可以使用命令打开已经存在的数据库。 【命令格式】 OPEN DATABASE DatebaseName 【命令说明】DatebaseName指要打开的数据库名。也可以不用,就弹出【打开】对话框用以打开指定的数据库名。 【例3-2】打开例3-1所创建的数据库。命令如下: OPEN DATABASE 超市管理,2.修改数据库,(1)在项目管理器中修改 首先打开项目管理器进入界面图3.1所示,首先单击【数据】选项卡,在里面选择【数据库】,然后单击【数据库】左边的“”,弹出如图3.5所示的界面,然后选中要修改的数据库名,单击【修改】按钮,弹出如图3.8所示的界面。 (2)使用【打开】对话框打开后修改 与数据库打开的第二种方法一样。 (3)使用命令修改 【命令格式】 MODIFY DATABASE DatebaseName 【命令说明】DatebaseName指要修改的数据库名。也可以不用,就弹出【打开】对话框用以打开指定所要修改的数据库名。,图3.5,【例3-3】修改例3-1所创建的数据库。命令如下: MODIFY DATABASE 超市管理,3.关闭数据库,(1)在项目管理器中关闭 首先打开项目管理器进入界面图3.5所示,然后选中已经打开的数据库名,单击【关闭】按钮就可以关闭该数据库,可以在工具栏中看到该数据库已经关闭,如图3.9所示。,图3.9,(2)使用命令关闭 【命令格式】 CLOSE DATABASE 【命令说明】 该命令是关闭当前所打开的数据库。 【例3-4】关闭例3-2所打开的数据库。命令如下: CLOSE DATABASE,4.删除数据库,(1)在项目管理器中删除 首先打开项目管理器进入界面如图3.5所示,然后选中所要删除的数据库名,单击【移去】按钮,弹出如图3.10所示的对话框。这里有【移去】和【删除】两个按钮选择,如果选择【移去】按钮该数据库并没有从磁盘上删除,而是把该数据库从该项目管理器中移去,但还可以使用该数据库;如果选择【删除】就可以真正把该数据库从磁盘上删除,不可以在使用该数据库。,图3.10,(2)使用命令删除 【命令格式】 DELETE DATABASE DatabaseName 【命令说明】 该命令是删除已经关闭了的数据库,删除之前必须先关闭该数据库。 【例3-5】删除例3-4所关闭的数据库。命令如下: DELETE DATABASE 超市管理,3.2 表的基本知识,表的基本概念 表的建立 表的基本操作 排序和索引,3.2.1 表的基本概念,表是数据库中的重要数据对象,在关系数据库中将关系也称为表,表是有表结构和表数据组成。表结构就是字段,表数据就是记录。一般建立表以后在磁盘有一个扩展名为.DBF的文件,它是表的最主要文件,如果有备注或通用型字段则还有一个扩展名为.FPT的备注文件。 在Visual Foxpro中,表有两种表,就是数据库表和自由表。数据库表是依附于一个指定数据库的表;而自由表是不依附于任何一个数据库。前者支持长表名、长字段名,给表设置主索引、默认值、规则、触发器,而后者不具备。但两种表都是一个独立的.DBF。 现将表结构的一些基本内容和概念作以下说明:,1. 字段名 字段名就是关系的属性名和表的列名。一个表有若干列组成,每一列都有自己的唯一名字,就是字段名,以后可以通过字段名直接引用表中的数据。字段名的命名规则如下: (1)自由表字段名最长为10个字符。 (2)数据库表字段名最长为128个字符。 (3)字段名必须以字母或汉字开头。 (4)四段名可以由字母、汉字、数字和下划线组成。 (5)字段名不能包含空格。,2. 字段数据类型和宽度 字段数据类型是存储在字段中的值的数据类型,可以通过宽度来决定存储数据的大小和精度。其主要的数据类型有以下几种: (1)字符型(C) 一般字段存储的内容由字母、数字、特殊符号或标点等组成时,该字段可以设置成字符型。它的长度最多达254个字符,比如用户的名字。 (2)货币型(Y) 用于保存货币类型的数据它占8个字节,数值范围为-922337203685477.5808922337203685477.5807。它的小数位数固定为4为,整数位最大达15位。 (3)数值型(N) 用于保存整数或小数,它的长度可以达20位,但长度包括整数位数、小数点、小数位数。,(4)日期型(D) 用于保存只含年、月、日的日期数据,其范围为公元0年1月1日9999年12月31日。宽度固定为8位。 (5)日期时间型(T) 用于保存还有时间和时间的数据,宽度也为8位。 (6)逻辑型(L) 用于保存字段内容只有两种结果供选择,它包含两个值真(.T.)和假(.F.)。 (7)通用型(G) 用于保存电子表格、文档、图片等OLE信息,它在表中只占4个字节。 (8)备注型() 用于保存数据长度难于确定的文本信息,它在表中占个字节。其重要内容存放到了由表同名的扩展名为.DBT的文件中,该文件最大达2GB。,(9)整型(I) 用于保存整数数据,它的宽度为4个字节。 (10)双精度 用于保存数值精度要求很高的数据,它所表示的数值对多可精确到小数点后7位。 (11)浮点型 用于保存数值的数据,其长度可达20位。 等等。用户可以根据实际情况来设置数据类型及相应的数据宽度。,3.2.2 表的建立,建立自由表的方法一般有三种方法: 1. 在项目管理器中建立表 首先打开项目管理器进入界面图3.1所示,首先单击【数据】选项卡,在里面选择【自由表】,然后单击【新建】按钮,弹出如图3.11所示的对话框。,图3.11,单击【新建表】,进入创建对话框如图3.12所示。 在这里选择表所要保存的位置和输入表的名字,如“学生”,然后单击【保存】按钮,弹出如图3.13所示的【表设计器】对话框。,图3.12,图3.13,在上图中定义表结构,设置字段名、字段类型、字段宽度或小数位数,以及是否允许为NULL。设置完成后单击【确定】按纽,系统弹出提示对话框如图3.14所示 。,图3.14,在该对话框中如果单击【是】按钮,将进入记录输入窗口如图3.15所示;如果单击【否】按钮,则保存表的结构但没记录。,图3.15,2. 使用【新建】对话框建立表 首先在【文件】菜单里选择【新建】或单击工具栏的【新建】按钮图标,打开如图3.4所示的【新建】对话框。在对话框里选择【表】,然后单击【新建文件】按钮,进入如图3.12,然后按在项目管理器中的建立表的操作进行。 3. 使用命令建立表 【命令格式】 CREATE TableName 【命令说明】 参数TableName指的表名,用户可以指定所创建的自由表名,也可以不指定;如果不指定将进入如图3.12所示的对话框要求用户输入表名。,【例3-6】在命令窗口中创建名为SP的自由表。命令如下: CREATE SP &该命令直接进入表设计器。 或者 CREATE &该命令直接进入图3.12所示,然后输入表名SP。 4. 在数据库设计器中建立数据库表 利用数据库设计器建立的表称为数据库表。建立的表包括在数据库设计器中,它比自由表的功能更多些,可以在里面设置规则、默认值、输入格式等,也可以给多个表之间建立关系等。现将有关建立数据库表的方法作如下介绍。 首先打开已经存在的数据库成绩管理,进入数据库设计器,如图3.16所示。,图3.16,2. 使用【新建】对话框建立表 首先在【文件】菜单里选择【新建】或单击工具栏的【新建】按钮图标,打开如图3.4所示的【新建】对话框。在对话框里选择【表】,然后单击【新建文件】按钮,进入如图3.12,然后按在项目管理器中的建立表的操作进行。 3. 使用命令建立表 【命令格式】 CREATE TableName 【命令说明】 参数TableName指的表名,用户可以指定所创建的自由表名,也可以不指定;如果不指定将进入如图3.12所示的对话框要求用户输入表名。,然后单击【数据库】菜单下的【新建表】选项,或者数据库设计器的快捷菜单中单击选择【新建表】,出现如图3.11、图3.12所示,输入表名“学生”,进入数据库表设计器,如图3.17所示。在里面依次输入字段名、类型、宽度或小数位数等。还可以在“显示”区域中设置相应字段的输入掩码(限制输入记录必须满足的格式要求)、标题(给字段取浏览数据时的长名)等;在“字段有效性”区域中可以设置相应字段的规则(该字段的值必须符合这里的规则,规则可以是逻辑或关系表达式)、信息(当违反规则时所显示的提示信息)、默认值(该字段在不输入值的情况下指定一个值)等。,图3.17,3.2.3 表的基本操作,表的打开 表结构操作 表数据的添加 表数据浏览 记录定位 表数据的插入 表数据的修改 表数据的删除 表的复制 表的关闭 数据库表的其他操作,1. 表的打开,表的打开方法比较多,在这里介绍一些常用的方法: (1)在项目管理器中打开表 首先打开项目管理器进入界面图3.1所示,首先单击【数据】选项卡,在里面选择【表】,然后单击【表】左边的“”,弹出如图3.18所示的界面。,图3.18,然后选中要修改的表名“学生”,单击【修改】按钮,弹出如图3.13所示的界面。 (2)使用【打开】对话框打开表 首先在【文件】菜单里选择【打开】或单击工具栏的【打开】按钮图标,出现如图3.19所示的【打开】对话框。 然后在对话框里“文件类型”选择“表(*.dbf)”,然后选择查找范围,找到所要打开表名的位置,选中表名“学生”,单击【确定】按钮就完成表的打开。,图3.19,注意 :在打开对话框中有“以只读方式打开”和“独占”复选框可以选择,这里“以只读方式打开”指的表打开后不能进行修改;而“独占”指的不允许其他用户在同一时刻使用该表,但可以修改表结构和表数据。 3)使用命令打开表 【命令格式】 USE TableName 【命令说明】TableName 指要打开的表名。也可以不用,就弹出【打开】对话框用以打开指定路径下的表名。 【例3-7】打开“学生”表。命令如下: USE 学生 &打开表后,出现如图3.20所示的状态栏,表明已经打开表,图3.20,2 .表结构操作,要对表结构进行修改操作必须先要打开表,然后在能进行相应的操作。其重要操作为: (1)表设计器操作 首先打开指定表,然后单击【显示】菜单下的【表设计器】选项,进入如图3-13所示,然后在里面进行修改字段表结构、插入字段、删除字段等,最后单击【确定】按钮。 (2)命令操作 首先使用命令浏览表结构。 【命令格式】 LIST STRUCTURE | DISPLAY STRUCTURE 【命令说明】 该命令就是浏览当前所使用表的结构。但只能浏览不能修改。,然后进入修改表界面,打开表设计器。 【命令格式】 MODIFY STRUCTURE 【命令说明】 该命令就是打开【表设计器】,进入如图3-13所示,进行修改表结构。 【例3-9】修改“学生”表的表结构。命令如下: USE 学生 MODI STRU &进入表设计器如图3.13所示。,图3.21,【例3-8】浏览“学生”表的表结构。命令如下: USE 学生 LIST STRU &显示结构内容如图3.21所示。,3. 表数据的添加,(1)菜单操作 在表已经打开的情况下,并且是以非只读方式打开,单击【显示】菜单下的【追加方式】,进入如图3.22所示的界面,然后输入数据(数据参见图3.22),单击【X】关闭窗口,就保存了所输入的数据。,图3.22,(2)命令操作 【命令格式】 APPEND BLANK 【命令说明】 该命令用于在当前表最后一条记录后添加一条新的记录,只能在最后添加。如果带BLANK参数指添加一条空记录。 【例3-10】给“学生”表添加一条空记录。命令如下: APPE BLAN &给当前添加一条空记录。,4. 表数据浏览,(1)菜单浏览 首先打开表,然后单击【显示】菜单下的【浏览】选项,进入如图3-22所示。然后浏览到当前表的所有数据。 (2)命令浏览 【命令格式一】 LIST | DISPLAY FIELDS FieldList Scope FOR lExpression1 【命令说明】 该命令主要用于显示表中的数据。LIST是显示所有数据,而DISPLAY只显示当前记录。这两条命令只能用于浏览不可以修改。FIELDS FieldList参数用于指定所要显示的字段。Scope参数指显示记录的范围,默认为ALL。FOR lExpression1参数用于设置记录的显示条件。,【例3-11】显示“学生”表中记录数据。命令如下: USE 学生 DISP &显示学生表的第一条记录。 LIST &显示学生表的所有记录。 LIST FOR 性别=”男” &显示学生表的所有男生记录。 【命令格式二】 BROWSE FIELDS FieldList FOR lExpression1 【命令说明】 该命令用于浏览显示数据,具有修改数据的功能。FIELDS FieldList参数用于显示浏览当前表的指定字段,字段之间用逗号分隔。FOR lExpression1参数用于显示浏览满足条件的记录。 【例3-12】浏览学生表中所有的女生情况。命令如下: BROWSE FOR 性别=”女” &显示学生表的所有女生记录,如图3.23所示。,图3.23,5. 记录定位,(1)绝对定位命令 【命令格式】 GO RECORED nRecordNumber 或 GO TOP | BOTTOM 【命令说明】 该命令用于将记录指针定位到指定的记录上,使该记录成为当前记录。nRecordNumber是指所定位的记录号,可以用函数RECNO()来测试当前记录的记录号。TOP指定位到表的首记录。BOTTOM指定位到表的尾记录。,【例3-13】绝对定位命令在“学生”表中应用,命令序列如下: USE 学生 GO 2 &定位到第2条记录 ?RECNO() &测试记录号为2 2 GO TOP &定位到首记录 GO BOTT &定位到尾记录 (2)相对定位命令 【命令格式】 SKIP nRecords 【命令说明】 该命令用于将记录指针相对当前记录向前或向后移动N条记录。nRecords可以为正整数,也可以为负整数。如果为正整数,记录指针相对当前位置向后移动;如果为负整数,记录指针相对当前位置向前移动。,这里为了避免移动到文件头和文件尾,可以借助测试函数是否到文件头函数BOF()和是否到文件尾函数EOF()来检测指针移动位置情况。 【例3-14】定位并显示学生表指定的记录。命令如下: USE 学生 ?BOF(),EOF(),RECNO() &显示为.F.,.F.,1 SKIP+2 &定位到第3号记录 DISP SKIP-1 &定位到第2号记录 DISP (3)条件定位命令 【命令格式】 LOCATE FOR lExpression1 COUNTINUE,【命令说明】 该命令用于定位到满足条件的记录上。找到满足条件的继续将定位在第一个上,如果还要定位到第二个满足条件的记录上,则用COUNTINUE。可以利用FOUND()函数来测试是否找到满足条件的记录,如果找到其值为.T.,否则为.F.。 【例3-15】定位并显示男生的情况。命令如下: USE 学生 LOCATE FOR 性别=”男” &定位到第一个男生的记录,为徐小小 ?FOUND() &结果为.T. DISP COUNT &定位到第二个男生的记录,为王三 ?FOUND() DISP,(4)菜单操作 先浏览指定表的数据,进入如图3.20所示的界面,然后单击【表】菜单下的【转到记录】选项,在里面选择【第一个】、【最后一个】、【下一个】、【上一个】、【记录号】、【定位】则定位到相应的记录。与相应的命令功能一样,在此不在叙述。,6. 表数据的插入,前面所讲的数据添加命令只能在表最后添加数据,但实际中为了更灵活的给表插入数据,则使用插入命令。 【命令格式】 INSERT BEFORE BLANK 【命令说明】 该命令用于在当前表任何一条记录后插入一条新的记录。如果带BLANK参数指插入一条空记录。带BEFORE参数指在当前记录之前插入一条记录。,【例3-16】给“学生”表的第一条前后各插入一条空记录。命令序列如下: USE 学生 INSERT BLANK &在第一条的后面插入一条空记录。 GO TOP INSERT BEFORE BALANK &在第一条的前面插入一条空记录。 BROW &浏览结果如图3.24所示。,图3.24,7. 表数据的修改,【命令格式】 REPLACE Scope FieldName1 WITH eExpression1 ,FieldName2 WITH eExpression2 FOR lExpression1 【命令说明】 (1)该命令一般用于修改当前表的数据,具有成批修改功能。 (2)Scope指修改记录的范围,默认为当前记录。如果要修改所有记录,则使用ALL。 (3)FieldName1 WITH eExpression1指所要修改的字段和修改字段的值。 (4)FOR lExpression1指对满足条件的记录进行修改。,【例3-17】修改“学生”表中的空记录。命令序列如下: USE 学生 REPL ALL 性别 WITH “男”,是否团员 WITH .T. FOR LEN(ALLTRIM(学号)=0 &修改表中所有学号为空的记录,结果如图3.25示。,图3.25,8. 表数据的删除,(1)逻辑删除记录 【命令格式】 DELETE Scope FOR lExpression 【命令说明】 该命令是对所要删除的记录做删除标记,但并不物理删除记录。 【例3-18】删除“学生”表中的部分数据。命令序列如下: USE 学生 DELE FOR 性别=”男” &给所有为男生的记录做删除标记。 DELE FOR LEN(ALLTRIM(学号)=0 &给所有学号为空的记录做删除标记。,(2)恢复删除标记 【命令格式】 RECALL Scope FOR lExpression 【命令说明】 该命令是对带删除标志的记录去掉删除标记。 【例3-19】恢复做了删除标记记录。命令序列如下: USE 学生 RECALL FOR 性别=”男” &去掉所有做了删除标记的男生记录。 RECALL ALL &去掉所有做了删除标记记录。 (3)物理删除记录 【命令格式】 PACK 【命令说明】 该命令是对所带有删除标记的记录物理从磁盘删除,删除后不能在恢复。该命令后不能带什么参数。,【例3-20】物理删除所有学号为空的记录。命令序列如下: USE 学生 DELE FOR LEN(ALLTRIM(学号)=0 &作了删除标记的记录,如图3.26示,图中带黑色方块的就是删除标记。 PACK &物理删除所有做了删除标记的记录,删除后结果如图3.27示。,图3.26,图3.27,(4)物理删除所有记录 【命令格式】 ZAP 【命令说明】 该命令是对当前表所有记录全部从磁盘物理删除,不需要做删除标记,删除后不能在恢复。,9. 表的复制,(1)表数据复制 【命令格式】 COPY TO NewTable FIELDS FieldList FOR lExpression 【命令说明】 该命令是当前表的数据复制到一个新表NewTable。如果带FIELDS FieldList参数指定所复制的新表中的字段,带FOR lExpression参数指定新表中只有满足条件的记录。 【例3-21】复制“学生”表的数据。命令序列如下: USE 学生 COPY TO XS1 &把学生表中所有数据复制到XS1表中 COPY TO XS2 FOR 是否团员=.T. &把学生表中所有团员复制到XS2表中 USE XS1 BROW USE XS2 BROW,(2)表结构复制 【命令格式】 COPY TO NewTable STRUCTURE FIELDS FieldList 【命令说明】 该命令是对当前表的结构复制一个新表NewTable结构,复制后的新表没有记录。 【例3-22】复制“学生”表的结构。命令序列如下: USE 学生 COPY TO XS1 STRU &把学生表的结构复制到XS1表中。 USE XS1 BROW,10. 表的关闭,【命令格式】 USE 【命令说明】 关闭当前所打开和正使用的表,11.数据库表的其他操作,(1)自由表添加到数据库 有时给了给表设置规则或默认侄,需要把自由表变成数据库表,其方法是:在【数据库】菜单或快捷菜单中单击【添加表】选项,弹出打开表的对话框,选择所要添加的表,然后单击【确定】按钮,就把自由表变成了数据库表。 (2)数据库表结构的修改 在数据库设计器中,选中所要修改的表,然后在【数据库】菜单或快捷菜单中单击【修改】选项,进入如图3.17所示,修改表的结构,单击【确定】按钮完成修改。 (3)数据库表数据的浏览 在数据库设计器中,选中所要浏览的表,然后在【数据库】菜单或快捷菜单中单击【浏览】选项,进入如图3.22所示,可以归表中的数据进行修改、删除、追加等操作。,(4)数据库表的移去 有时可以根据需要将数据库表移出成为自由表,其方法是:先在数据库设计器中选中所要移出的表,然后在【数据库】菜单或快捷菜单中单击【移去】或【删除】选项,弹出对话框如图3.28所示。单击【移去】按钮,则把数据库表变成了自由表。 (5)数据库表的删除 数据库中不需要的数据库表可以删除,删除之后不能在恢复。操作方法与移去表的方法基本一样,只是在图3.28中单击【删除】按钮,则把所选择的表物理删除。,图3.28,3.2.4 排序和索引,排序 索引 索引在数据库设计器的应用,1. 排序,排序是物理排序,可以对表中的记录物理地按顺序重新排列。其排序的命令是SORT。 【命令格式】 SORT TO TableName ON FieldName1/A|/D/C, FieldName2/A|/D/C FOR lExpression1 FIELDS FieldNameList 【命令说明】 (1)TableName是排序结果所要保存的新表名。 (2)FieldName是排序所指定字段名。 (3)/A|/D/C是排序的顺序。/A指明对指定字段进行升序排序,默认升序。/D指明对指定字段进行降序排序。/C指排序不区分大小写。 (4)FOR lExpression1筛选所要参加排序的数据。默认为所有记录。 (5)FIELDS FieldNameList排序后新表所要包含的字段列表,默认为所有字段。,【例3-23】对“学生”表按系部编号的升序排序,系部相同的按年龄的从小到大排序。命令如下: USE 学生 SORT TO XS3 ON 系部编号,出生日期/D USE XS3 BROW 结果如图3.29示。,图3.29,2. 索引,Visual Foxpro中索引是由指针构成的文件,这些指针逻辑上按照索引关键字值进行排序。但不改变表中记录的物理顺序。索引只要是为了加速对表数据的快速查询操作。 l 索引分为4种类型 (1)主索引 在指定字段或表达式中不允许出现重复值,也就是设定为主关键字的索引。一个表只能有一个主索引,只有数据库表才能建立主索引,自由表不能建立主索引。 (2)候选索引 类似主索引,要求字段的内容具有唯一性,不能在表中重复多次。一个表可以有多个候选索引。数据库表和自由表都可以建立候选索引。 (3)唯一索引 这里的唯一性指索引项的唯一,而不是字段值的唯一,没有内容相同的两个记录。它一指定字段的首次出现值为基础,相同只取一条记录,并对记录进行排序。一个表可以建立多个唯一索引。数据库表和自由表都可以建立唯一索引。,(4)普通索引 一种常用的索引,主要用于逻辑排序,便于快速查询。它不仅允许字段中出现重复值,并且索引项中也允许出现重复值。一个表可以建立多个普通索引。数据库表和自由表都可以建立唯一索引。 l 建立和编辑索引的方法主要有两种,一种是利用表设计器,一种是使用命令建立 (1)在表设计器中建立和编辑索引 首先打开表,进入表设计器界面如图3.13所示,然后单击【索引】选项卡,进入界面如图3.30进行选择设置,设置完成后单击【确定】按钮。,图3.30,图3.27中【索引名】用于设置索引的名称。【类型】用于设置要建立的索引类型,有四种供选择。【表达式】可以包含一个字段,也可以是表达式。【筛选】用于设置满足条件的数据进行索引。使用表设计器所建立的索引,其信息都包含在结构复合索引.CDX中与表同名。 注意:在自由表中只能建立候选索引、唯一索引、普通索引,不能建立主索引。数据库表不仅可以建立自由表中的索引,而且能够建立主索引。 (2)使用命令建立索引 【命令格式】 INDEX ON eExpression TO IDXFileName|TAG TagName 【命令说明】 该命令用于对当前表的数据按指定的索引关键字建立索引。参数eExpression为索引关键字。参数IDXFileName是指建立的非结构单索引,是单独的.IDX索引,名字可以自由取,并且这种索引默认是升序,没有降序。参数TAG TagName OF CDXFileName指建立的是结构复合索引,索引名为TagName,扩展名为.CDX。,【例3-24】给“学生”表按性别的升序建立一普通索引。命令如下: USE 学生 INDEX ON 性别 TO XX1 BROW &浏览索引后的记录,如图3.31所示。 【例3-25】给“学生”表按性别的降序建立名为“性别1”的复合索引。命令如下: USE 学生 INDEX ON 性别 TAG 性别1 BROW &浏览索引后的记录,如图3.32所示。,图3.31,图3.32,3. 索引在数据库设计器的应用,(1)主索引的建立 由于自由表中是不能建立主索引,但有时为了保证表中数据的唯一性或者某字段不允许出现重复值,需要利用数据库设计器为数据库表建立主索引。其方法是:选择所要设置主索引的表,进入【表设计器】对话框的【索引】选项卡,如图3.30所示,然后在类型下给学号字段设置主索引。单击【确定】按钮完成主索引的建立。 (2)多表间关系的建立 首先打开“成绩管理”数据库设计器,给学生表以字段“学号”建立主索引,课程表以字段“课程号”建立主索引,选课表分别以字段“学号”和“课程号”建立普通索引。 然后用鼠标把学生表中学号主索引拖动选课表的学号普通索引,建立一对多的联系;同样的方法给课程表中课程号主索引和选课表中课程号普通索引建立一对多的联系。如图3.33所示。,图3.33,(3)设置表间关系的参照完整性 参照完整性是指数据库中的相关表之间的一种数据完整性约束规则,有更新、删除、插入规则。要建立这里规则必须依赖于前面所建立的永久关系和清理数据库。 更新规则:是指当主表中与从表连接的字段值发生变化时,从表如何处理对应的数据。如果选择【级联】,则用连接字段主表的值自动修改从表对应的记录。如果选择【限制】,若在从表中找到对应的记录,则禁止主表修改连接字段的值。如果选择【忽略】,则可以随意修改主表的数据,不受从表的影响。 删除规则:是指当主表删除记录时,从表如何处理对应的记录。如果选择【级联】,则删除从表中与主表连接字段对应的记录。如果选择【限制】,则禁止删除主表中与从表连接字段对应的记录。如果选择【忽略】,则可以随意删除主表的记录,不受从表的影响。 插入规则:是指当给从表插入记录时,与连接阶段相关的主表如何处理该操作。如果如果选择【限制】,如果在主表中找不到对应的连接字段值,则禁止从表插入记录。如果选择【忽略】,则可以随意给从表插入记录,不受主表的影响。,【例3-26】给“学生管理”数据库中的学生、课程、选课表设置完整性。操作步骤如下: 首先给这三表按图3.33建立好永久关系。然后单击【数据库】菜单下的【清理数据库】,执行清理数据库操作。清理完成后单击【数据库】菜单下的【编辑参照完整(I)】,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年北京版(新教材)二年级上册数学第六单元达标试卷(附参考答案)
- 河南往年初三考试真题及答案
- 2025年体育教师素养考试题及答案
- 山羊小蚂蚁测试题及答案
- 初级画画教师考试题目及答案
- 2025年贵州二模化学试卷及答案
- DB1306T 281-2025 中药材北沙参产地初加工技术规程
- 虚拟文物信息管理-洞察与解读
- 2025年世界文学常识题库及答案
- 音乐教育平台整合-洞察与解读
- 2025上海市生物医药技术研究院招聘专技人员12人考试笔试备考试题及答案解析
- 2025年天津省考真题及答案
- 基于多尺度建模的AZ31镁合金固态增材制造机理与性能优化研究
- 2025北师大版三年级数学上册全册教案
- 手足口病诊疗指南(2025版)
- 人工智能在酒店管理中的运用-洞察及研究
- 第6课《剪出大千世界》课件浙人美版初中美术八年级上册
- 2025-2030工业互联网平台生态构建与产业协同发展白皮书
- 招标采购从业人员考试(招标采购专业实务初、中级)试题库及答案(2025年贵州)
- 宣传业务培训课件
- 医院停水停电应急预案流程
评论
0/150
提交评论