




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章数据库与数据表的创建和使用3.1数据库设计3.2数据库的组成3.3创建和使用数据库3.4数据表3.5数据表的索引3.6数据库表的操作开发数据库管理应用系统时,首先要设计数据库,数据库设计的好坏将直接影响后续对数据的使用和数据库应用系统的维护。数据库设计步骤:1)需求分析阶段:需求收集和分析,得到数据字典和数据流图。2)概念结构设计阶段:对用户需求综合、归纳与抽象,形成概念模型。3)逻辑结构设计阶段:将概念结构转换为具体DBMS所支持的数据模型。4)数据库物理设计阶段:为逻辑数据模型选取相对适合的物理结构。3.1数据库设计1.数据需求分析阶段是向用户收集信息,明确用户问题的具体要求、处理哪些数据,希望获得什么结果,最后输出哪些数据。数据需求分析是数据库设计的第一步,是其他后续步骤的基础。例如,教学管理系统的主要功能是对教学环节的各种相关数据进行管理。教学管理所涉及的相关数据是:1)学生信息2)教师信息3)课程信息4)学院信息5)学生所在班级信息6)学生课程的成绩信息等。2.确定数据表数据表是数据库管理的主要对象。在应用系统设计中将根据具体功能需求将收集的数据进行分类并分解为多个不同的实体,并确定这些实体之间存在的联系。例如,“教学管理系统”涉及多个实体,如学生、教师、课程、成绩、班级、学院、教学任务等。每个实体可创建一个数据表,用于存放相关数据。本例中“教学管理系统”有八个实体、实体间的联系如图所示:学院基本信息学生基本信息课程基本信息教师基本信息学生成绩信息学生所在班级教师任课信息教师职称信息3.确定所需字段每一张数据表就是一个实体的具体信息,每个实体的相关信息是通过属性体现出来,依据实体的属性确定数据表中的字段。设计数据表中的字段有以下规则:1)数据表中的字段是不可再分解的。2)数据表中的字段必须是实体的直接描述。3)数据表中不能包含通过计算或者推导得出的字段。4)每个数据表必须包含主关键字。主关键字由数据表中一个或一组字段构成,用以唯一确定存储在数据表中的记录。例如,以“教学管理系统”中“学生”实体为例,其主要属性如图所示:主关键字4.确定表间关系在应用系统中,数据表之间通常存在一定的联系。利用这些联系可以查询相应的信息,并为数据的完整性和一致性提供支持。联系有三种:一对一关系、一对多关系、多对多关系一对一关系在实际应用中不常见。如果两个数据表之间存在一对一关系,可以将两个数据表合并为一个数据表。一对多关系最常见的,也是最常用的关系。例如,department表和student表之间就存在着一对多的关系,department表中的一个学院有多位学生记录。多对多关系这种关系在实际应用中经常出现。例如,student表和course表之间就存在多对多关系。一个学生可以同时选修多门课程,而每一门课程可以被多位学生选修。在VFP中,两个数据表不能直接建立联系实现多对多关系,必须通过第三个数据表来实现,这第三个数据表在两个数据表之间起纽带的作用,故称为“纽带表”。纽带表中分别有两个数据表的主关键字,这两个数据表分别与纽带表建立一对多的联系。例如,将sscore表作为student表和course表之间的纽带表。3.2数据库的组成在VFP中,数据库是一个逻辑上的概念和手段,通过一组系统文件将相互联系的数据库表及其相关的数据库对象统一组织和管理。用户可以通过数据库来组织数据表、视图,并可以建立数据表间关系、创建存储过程以及访问远程数据源。在VFP中数据库包含:1)数据表2)本地视图3)远程视图4)连接和存储过程数据表数据表是存储数据的实体,是处理数据和建立关系数据库及其应用程序的基本单元。视图在VFP中数据表分为两类:自由表和数据库表。是数据库中的一张虚拟表,简称为虚表。视图中的数据是从已有的数据表中提取出来。连接用于访问远程服务器中的数据。存储过程是指存储在数据库文件中的程序代码,在数据库打开时自动加载到内存中。1.创建数据库3.3数据库的创建和使用利用项目管理器在项目管理器中选择“数据”选项卡中的“数据库”,再单击项目管理器右侧的“新建”按钮。利用菜单选择“文件”菜单中的“新建”命令,或者单击工具栏中“
”按钮,然后在打开的“新建”对话框中选择“数据库”单选按钮。语法:CREATEDATABASE[<数据库名>|?]命令方式数据库创建后将生成三个文件:数据库文件(.dbc)、数据库备注文件(.dct)和数据库索引文件(.dcx)。2.使用数据库打开数据库选择“文件”菜单中的“打开”命令,或工具栏上的“打开
”按钮。界面方式语法:OPENDATABASE[<数据库名>|?]命令方式例如,打开已创建的数据库stum,执行以下命令:OPENDATABASEstum也可以通过修改方式打开数据库,其语法格式如下:MODIFYDATABASE<数据库名>关闭数据库如果不带关键字ALL,则表示关闭当前数据库;若后面加上关键字ALL,则表示关闭当前打开的所有数据库。在项目管理器中选择要关闭的数据库,再单击右侧的“关闭”按钮。界面方式语法:CLOSEDATABASE[ALL]命令方式当数据库关闭后,与该数据库相关的数据库表也都同时被关闭。删除数据库该命令用于删除当前指定的数据库。在项目管理器中选择要删除的数据库,再单击右侧的“移去”按钮。界面方式语法:DELETEDATABASE<数据库名>命令方式例如,删除已创建的数据库stum,执行以下命令:DELETEDATABASEstum删除数据库时,数据库必须处于关闭状态。如果数据库删除后,数据库所包含的数据库表将自动变为自由表。设置当前数据库例如,设置stum数据库为当前数据库,则执行以下命令:SETDATABASETOstum常用工具栏上的下拉列表框中显示所有打开的数据库,从中选择某个数据库为当前数据库。界面方式语法:SETDATABASETO<数据库名>命令方式注意:在指定当前数据库时,该数据库应预先处于打开状态,否则会出错。1.建立数据表3.4数据表数据表是处理数据和建立关系数据库的基本单元。数据表一般由表结构和表记录两部分组成。在VFP中数据表分为自由表和数据库表,无论是自由表还是数据库表都以扩展名为.dbf的文件形式保存在磁介质上。数据表的组成每一个数据表对应一个关系,每一个关系对应一张二维表。二维表中的每一行有若干个数据项,这些数据项构成一条记录,二维表中的每一列对应实体的每一个属性。例如,以学生表(student)为例:该数据表共有9个属性列,每个属性列都有不同的名称。同一属性列的所有数据类型完全相同,而不同属性列存放的数据类型可以不同。每个属性列数据的宽度也有一定的限制。每个属性列的取值也可能有一定的限制。在VFP中数据表的每一列称为一个字段。字段的个数和每个字段的名称、类型、宽度等要素决定了表文件的结构。数据表的基本结构包括字段名、字段类型、字段宽度和小数位数。由字母、汉字、数字和下划线组成。它的命名规则与变量相同。自由表字段名最长为10字符,数据库表的字段名最长为128个字符。字段名字段名也被称作字段变量,用户可以通过字段名来访问该字段的值。例如,姓名、tm、r5、_p是合法的字段名,5m、a*t不是合法的字段名。数据表中的每个字段都有特定的数据类型。不同数据类型的表示和可进行的运算有所不同。字段宽度是指字段所能够容纳数据的最大字节数。字段的数据类型和宽度名①字符型字段的宽度最多为254字节。说明:②数值型数据包含小数位和正负号时,小数位和正负号在字段宽度中都要占用一位。③备注型和通用型字段宽度均是4个字节,存放的是一个指向备注文件的指针。数据表的备注文件与表文件同名,其扩展名为.fpt。该文件随数据表的打开而自动打开,如果它被破坏或丢失,则数据表不能被打开。是否允许为空在数据表中如果当前字段的值不能确定时,设置该字段允许为NULL。VFP支持空值,它是用来表示数据存在和不存在的一种属性。空值是一个不确定的值,它不等同于0、空串和空格。一个字段是否允许为空值与字段的性质有关,例如,作为关键字的字段是不允许为空值的。利用设计器创建表结构例如,以自由表为例,建立一个学生表(student)。1)执行“文件”菜单中的“新建”命令或单击常用工具栏上的“
新建”按钮,在打开对话框中选择“表”,单击“新建文件”按钮。也可以在项目管理器的“数据”选项卡中选择自由表,单击右侧的“新建”按钮。步骤如下:2)在“创建”对话框中输入表文件名,如student,然后单击“保存”按钮;3)在表设计器中完成表结构的设计。“表设计器”有三个选项卡:字段、索引和表。“字段”选项卡用于建立和编辑表文件中字段的名称、类型、宽度、小数位数、索引方式(升序或降序)、设置NULL等。用于建立索引、排序方式和筛选。“索引”选项卡用来显示记录、字段、长度等。“表”选项卡向数据表中输入记录输入数据有两种方式:—编辑方式,即一条记录的每个字段占一行;—浏览方式,即每一条记录占一行。操作方法:执行“显示”菜单中的“编辑”命令或者“显示”菜单中的“浏览”命令。“备注型”字段数据输入“通用型”字段数据输入通过双击“memo”标志或按[Ctrl+Home]组合键。用于存放图形、图像、声音、电子表格等多媒体数据。双击通用型字段的“gen”,进入通用型字段编辑窗口,然后执行“编辑”菜单中的“插入对象”命令。2.打开和关闭数据表工作区指标识一个打开的数据表的区域。VFP中规定每一个数据表文件在一个指定的工作区打开,一个工作区在某一个时刻只能打开一个数据表。每个工作区都有一个编号,编号的取值范围为1~32767(前10个工作区也可以用字母A~J表示)。在某个时刻用户只能在一个工作区中打开一张表文件,为了解决同时使用多个数据表,VFP提供了多表的打开操作。如果选定某个工作区可使用SELECT命令,其语法格式如下:SELECT<工作区号>|<别名>如果工作区号为0时,表示选择未被使用的最小编号的工作区。启动VFP系统后,系统默认当前工作区号为1。打开数据表界面方式--执行“文件”菜单->“打开”命令--单击工具栏上的“”按钮--执行“窗口”->“数据工作期”命令命令方式USE<表文件名>[IN工作区号][ALIAS别名][EXCLUSIVE|SHARED]说明:1)IN工作区号指明打开数据表的工作区,缺省时表示在当前工作区中打开数据表;2)ALIAS用于指定打开的表的别名,缺省时系统自动指定表名就是别名;3)EXCLUSIVE用于指定以独占方式打开表文件,系统默认独占方式;4)SHARED用于指定以共享形式打开表文件。例3.1在不同的工作区中分别打开student、teacher和department三张数据表。SELECT1USEstudent USEteacherIN2 SELECT0 USEdepartmentALIAS学院表
说明:表的别名是对工作区中打开表的一个临时标识。如果同一个数据表在不同工作区中同时被打开且没有指定别名,则系统认为第一次打开的工作区中的别名和表名相同,其后打开的工作区中用A~J和W11~W32767来表示。查看数据表通过“窗口”菜单中的“数据工作期”查看已打开的所有数据表以及表的别名。关闭数据表—在“数据工作期”窗口中选中要关闭的表,再单击“关闭”按钮;—命令方式USE[IN<工作区号>|<别名>]若将所有打开的数据表全部关闭,则执行命令:CLOSETABLEALL也可以执行CLOSEALL命令关闭所有打开的文件,其中包括数据表、索引以及各类其他文件。例3.3执行以下命令:SELECT1USEsscore SELECT2USEcourseUSE USEIN1 表结构的输出LIST|DISPLAYSTRUCTURE功能:将当前打开的表文件的结构输出到屏幕上。LIST和DISPLAY的区别是LIST连续显示,当显示内容超过一屏幕时,自动向上滚动,直到显示完成为止。DISPLAY是分屏显示,显示满一屏时暂停,待用户按任一键后继续显示后面的内容。3.数据表的输出与浏览例3.4显示“student.dbf”表结构。USEstudentLISTSTRUCTURE表记录的输出LIST|DISPLAY[FIELDS<字段名列表>][FOR<条件表达式>]表记录的输出与浏览功能:将当前数据表中的记录输出到屏幕上。说明:1)LIST默认输出全部记录;2)DISPLAY默认输出当前记录;3)若使用FIELDS子句,表示输出指定的字段记录;4)若使用FOR子句,则输出满足给定条件的所有记录。例如,输出student表中来自江苏南京的学生的学号和姓名。表记录的浏览操作方法:--执行“显示”菜单中的“浏览”命令;--命令方式:查看全部或指定的记录。BROWSE[FIELDS<字段名列表>][FOR<条件表达式>]功能:以浏览窗口显示和修改当前打开的数据表的记录。例3.5以浏览窗口查看“student.dbf”表中来自北京的学生的学号、姓名以及是否为党员的信息。USEstudentBROWSEFIELDSstuno,stuname,partyFORbirthplace="北京"表结构的修改利用表设计器修改表结构打开表设计器。打开表设计器有多种方式:--执行“显示”菜单->“表设计器”命令--命令方式:MODIFYSTRUCTURE4.
数据表的修改浏览窗口或编辑窗口表记录的修改--执行“显示”菜单中的“浏览”或“编辑”命令--命令方式语句格式:EDIT|CHANGE[FIELDS<字段名列表>][FOR<条件表达式>]功能:打开编辑窗口,以交互方式修改指定的记录,每个字段占据一行。例3.6修改学生表student.dbf中“于小兰”的记录。USEstudentEDITFORstuname="于小兰"批量替换修改--执行“表”菜单->“替换字段”命令,在“替换字段”对话框中设置--命令方式语句格式:REPLACE[<范围>]<字段名1>WITH<表达式1>[,<字段名2>WITH<表达式2>,…][FOR<条件表达式>]功能:对范围内所有满足条件的记录。例如,将课程表course.dbf中所有credits(学分)为2的记录的credits值加1。其命令语句如下:USEstudentREPLACEALLcourse.creditsWITHCourse.credits+1FORCourse.credits=2注意:若省略范围和条件,则仅对当前记录进行替换。当向数据表中输入记录的时候,系统自动为每条记录指定一个记录号,记录号反映其输入的顺序。5.
表记录指针的定位在访问数据表文件时,系统会提供一个记录指针,用于指示当前记录的位置。为了控制记录指针的移动,每个数据表中还设置了两个标志:表头标志和表尾标志。1)RECNO()函数用来测试记录指针的位置2)BOF()函数用来测试记录指针是否指向表头3)EOF()函数用来测试记录指针是否指向表尾测试函数:在VFP中定位方式有三种:绝对定位、相对定位和条件定位。绝对定位格式:GO<记录号>|<TOP>|<BOTTOM>功能:将记录指针移动到指定的记录上。说明:1)<记录号>:指定一个物理记录号。2)TOP:记录指针指向表头。指向记录号为1的记录或使用索引时指向索引项排在最前面的索引对应的记录。3)BOTTOM:记录指针指向表的最后一条记录。指向记录号最大的记录或使用索引时指向索引项排在最后面的索引对应的记录。例3.7打开student表,将记录指针移到第一条记录、最后一条记录和第二条记录上,并显示它们的记录号。USEstudentGOTOP?RECNO() &&显示数据表的第一条记录号GOBOTTOM?RECNO() &&显示数据表的最大记录号GO2?RECNO() &&显示记录号为2相对定位格式:SKIP[+/-<记录数>][IN<工作区号>|<别名>]功能:记录指针从当前位置开始向前或向后移动记录指针。说明:如果<记录数>的值为正数,则记录指针向表尾移动,若为负数,则向表头移动。若缺省此项,则记录指针移到下一条记录;若缺省IN子句,表示对当前工作区的数据表进行操作。例3.8对student表做记录指针相对移动操作。USEstudentGOTOPSKIP-1?BOF() GOBOTTOMSKIP?EOF() 条件定位格式:LOCATEFOR<条件表达式>[<范围>]功能:按照一定的条件在数据表的指定范围内查找满足条件的记录。说明:1)范围:ALL、NEXT<记录数>、RECORD<记录号>和REST,默认为ALL。2)条件定位是将记录指针移到满足条件的第一条记录上。若查找满足条件的其他记录,使用CONTINUE命令。若找到符合条件的记录,记录指针移动到该记录,否则记录指针定位到指定范围的末尾。例3.9查找student表中女学生的记录。USEstudentLOCATEFORgender="女"?FOUND() ?stuno,stuname,gender CONTINUE?stuno,stuname,gender 格式:INSERT[BEFORE][BLANK]功能:在当前数据表的某个记录之前或之后插入一条记录。6.
表记录的追加插入记录说明:1)BEFORE子句,表示在当前记录之前插入;否则,在当前记录之后插入。2)BLANK子句,表示自动插入一条空白记录;否则,进入编辑窗口输入记录内容。例如,在学生表的第4条记录前插入一条空记录。添加记录--执行“显示”菜单中的“追加方式”命令--命令方式在数据表中直接输入记录若省略BLANK子句,则自动打开编辑窗口,输入一条或多条新记录。APPEND[BLANK]功能:在当前数据表的末尾增加一条空白记录。例3.10在student表末记录后增加一条记录。USEstudentAPPEND--命令方式:APPENDFROM<文件名>[FIELDS<字段名列表>][FOR<条件表达式>][DELIMITED|XLS]功能:将其他表文件、文本文件或EXCEL文件中的数据添加到当前数据表中。从其他数据源获取记录数据--执行“表”菜单中的“追加记录”,
在“追加来源”对话框中选择其他数据源;说明:1)FIELDS子句指定添加哪些字段数据;2)DELIMITED或XLS指定数据来源是文本文件还是EXCEL文件。1)浏览状态下,单击删除标记,可直接删除2)执行“表”菜单中的“删除记录”命令7.
表记录的删除与恢复逻辑删除删除记录的有两种:1)逻辑删除:对要删除的记录加上删除标记。2)物理删除:从数据表中彻底删除。3)命令方式:DELETE[范围][FOR<条件表达式>]功能:给指定范围内满足条件的记录添加删除标记。例如,删除所有男同学的记录。注意:若范围和FOR子句缺省时,仅对当前记录加上删除标记。例3.11将student.dbf表中第4条记录加上删除标记,并将来自江苏南京的所有女同学删除。USEstudentGO4DELETEDELETEALLFORbirthplace="江苏南京"andgender="女"恢复记录1)浏览状态下,单击删除标记,可直接恢复2)执行“表”菜单中的“恢复记录”命令3)命令方式:RECALL[范围][FOR<条件>]功能:恢复指定范围内满足条件的加删除标记的记录。若范围和FOR子句缺省时,仅恢复当前记录。例3.12恢复student.dbf中加上删除标记的记录。USEstudentGO4RECALLRECALLALLFORbirthplace="江苏南京"andgender="女"彻底删除1)界面方式在浏览状态下执行“表”菜单中的“彻底删除”命令。将数据表中所有逻辑删除的记录从数据表中移去。2)命令方式格式1:PACK功能:清除数据表中所有加上删除标记的记录。格式2:ZAP功能:物理删除数据表中的所有记录数据。例如,执行下列语句:USEstudentGO4DELETEPACKZAP注意:PACK和ZAP命令执行的前提是该数据表必须在独占方式下进行。COPYSTRUCTURETO<新表文件名>[FIELDS<字段名列表>]功能:将当前数据表结构的部分或全部复制到指定的新表文件中。8.数据表的复制和统计数据表的复制复制表结构例3.13复制student表结构到新表文件student_1。USEstudentCOPYSTRUCTURETOstudent_1;FIELDSstuno,stuname,genderUsestudent_1LISTSTRUCTURECOPYTO<新表文件名>[FIELDS<字段名列表>][FOR<条件表达式>][范围]功能:将当前数据表的结构和记录部分或全部复制到指定的新表文件中。例3.14复制student表中来自北京的学生信息到新表文件。USEstudentCOPYTOstudent_2FIELDSstuno,stuname,gender;FORbirthplace="北京"Usestudent_2LIST复制表的记录COUNTTO<内存变量名>[FOR<条件表达式>]功能:统计指定范围内满足条件的记录个数,并将统计结果保存在指定的内存变量中。数据表的统计表记录个数的统计例3.15统计student表中来自北京的学生人数。USEstudentCOUNTTOnFORbirthplace="北京"?n
若执行:countton,则统计结果是什么?SUM[数值表达式][范围][TO<内存变量名>][FOR<条件表达式>]功能:对当前数据表文件中指定范围内数值型字段累加求和,并把计算结果保存在指定的内存变量中。数据表中数值型字段求和说明:若缺省[范围],则默认范围为ALL;若缺省[数值表达式],则对数据表中所有数值型字段求和。例3.16统计course表中专业基础课的总学分。USEcourseSUMcreditsTOsFORcharacter="专业基础课"?s AVERAGE[数值表达式][范围][TO<内存变量名>][FOR<条件表达式>]功能:对当前数据表文件中指定范围内数值型字段求平均值,并把计算结果保存在指定的内存变量中。数据表中数值型字段求平均值例3.17统计sscore表中课程代号为“1141012”课程的平均成绩。USEsscoreAVERAGEgradeTOpFORccode="1141012"?p1.索引的概述3.5数据表的索引索引概念索引是使数据表中的记录有序排列的一种技术。数据表中记录的顺序一般由记录输入的前后顺序决定的,并用记录号来表示。为了加快记录的检索、显示、查询以及汇总速度,需要对数据表中的记录顺序重新组织。因此,在不改变记录物理顺序的情况下,建立一个索引关键字表达式与记录号的对应关系。按照对应关系实现记录的排序。按照某个索引关键字进行排序的记录顺序称为逻辑顺序,可以是升序,也可以是降序。每一个索引都包含两部分:1)索引表达式用来创建索引的依据,可以由数据表中的一个字段,也可以由某些字段、变量、函数等构成的一个表达式。2)索引名也称为索引标识名,命名规则与变量相同,但不能超过10个字符。单索引文件指一个索引文件中只包含一个索引的索引文件,其扩展名为.idx。索引文件的类型指包含一个或多个索引的索引文件,其扩展名为.cdx。复合索引文件复合索引又分为结构复合索引和非结构复合索引。1)结构复合索引结构复合索引文件只有一个,其文件名与表文件名同名,创建索引时系统自动生成。结构复合索引文件随表文件的打开而自动打开,在数据表中添加、更改或删除记录时,可随数据表自动更新。2)非结构复合索引非结构复合索引文件的主文件名与表文件名不同,是由用户命名,可以有多个。它的打开或关闭与数据表文件不同步,需要专门的命令打开。主索引索引关键字是由一个或几个字段构成的索引表达式,索引表达式的类型决定了不同的索引方式。在VFP中有四种类型的索引:主索引、候选索引、唯一索引和普通索引。不允许索引表达式的值重复出现的索引。一个数据表只能有一个主索引。只适应用于数据库表,用于在永久关系中建立参照完整性。例如,在student表中“stuno”字段可作为主索引关键字。而“gender”、“stuname”等都不可以。索引的类型候选索引也是一种可以用来作主关键字的索引,其内容具有唯一性。一个数据表可以有多个候选索引。索引表达式的值允许重复,一个数据表可以创建多个普通索引。普通索引如student表中的“gender”字段的值允许重复,可以建立普通索引,按性别排序。允许索引表达式的值有重复,但索引文件中重复的值仅保存第一次出现该值的记录号。唯一索引说明:一个表可以创建多个唯一索引。2.索引的创建表设计器创建索引例如,在“student”表设计器上建立三个索引:1)第一个索引是以“stuno”字段建立候选索引,索引为升序;2)第二个索引是以“birthplace”字段建立普通索引,索引为降序;3)第三个索引是以“gender”和“birthdate”两个字段建立普通索引,索引为升序,即当“gender”字段值相同时,再按“birthdate”字段值排序。设置索引表达式:gender+DTOC(birthdate,1)命令方式创建索引INDEXON<索引表达式>TAG<索引标识名>[FOR<条件表达式>][ASCENDING|DESCENDING]功能:根据指定的<索引表达式>为当前打开的数据表建立一个索引,索引名用<索引标识名>来表示。对符合条件的记录建立索引;缺省对所有记录建立索引升序(缺省)降序例3.18为sscore.dbf表建立两个普通索引,其中第一个索引是按stuno的升序排序,第二个索引是先按stuno升序排序,stuno相同再按grade升序排序。USEsscoreINDEXONstunoTAGstunoINDEXONstuno+str(grade,4)TAGstu_grade3.索引的使用指定主控索引当一个数据表建立了若干个索引后,某个时刻最多只有一个索引在起作用,这个索引被称为主控索引。设置主控索引:1)打开数据表时,通过ORDER子句指定主控索引。例如,打开sscore.dbf表,同时设置主控索引:USEsscoreORDERstuno2)直接设置主控索引SETORDERTO<索引标识名>功能:指定当前数据表的主控索引。若缺省<索引标识名>,则取消主控索引。USEstudentSETORDERTOgen_birthLIST若取消student表当前的主控索引,可执行下列命令:SETORDERTOLIST注意:取消主控索引后,数据表恢复到原来的物理顺序。例3.19student.dbf表已建立了多个索引,现指定gen_birth为主控索引,即学生信息按性别升序排序,性别相同再按出生日期升序重排记录。利用索引查询定位索引查询又称快速查询,是按照数据表记录的逻辑顺序查询。语法格式:SEEK<表达式>功能:在数据表和索引文件打开的情况下,将记录指针定位到满足条件的第一个记录上。说明:SEEK命令可以查找任意类型的数据,但需要加相应的定界符。如需查找满足条件的下一条记录,则需使用SKIP命令。例3.20在student.dbf表中已建立了一个索引名为birth_p,表达式为“birthplace”的索引,现要利用索引快速查找“江苏南京”的学生记录。USEstudentSETORDERTObirth_pSEEK"江苏南京"DISPLAY若查询下一个江苏南京的学生,则执行下列语句:SKIPDISPLAY1.数据库表3.6数据库表的操作当一个数据表属于某个数据库,则该表为数据库表。建立数据库表1)执行“数据库”菜单中的“新建表”命令;2)在数据库设计器的快捷菜单中的“新建表”命令;3)在项目管理器的“数据”选项卡中选择“数据库”下的“表”,然后单击项目右侧“新建”按钮。操作方法:例如,建立数据库表student。数据库表具有字段属性和表属性。表属性包括长表名、记录级规则、信息、表注释以及触发器等。字段属性包括字段的格式、输入掩码、默认值、标题、注释、字段规则、信息以及默认的控件类等。字段的显示属性包括显示格式、输入掩码和标题。字段的显示格式显示格式用来控制字段在浏览窗口、表单或者报表中显示时的样式以及大小写。输入掩码用于控制向字段输入数据的格式。标题用来增强字段的可读性,用于在浏览窗口中显示列标题,没有标题则显示字段名。例如,student表中stuno字段,可用“学号”标题。有效性规则是一个与字段或记录相关的表达式,通过对用户的值加以限制,提供数据有效性检查。有效性规则有两种:1)字段有效性规则:是对某一个字段的约束,检查单个字段中输入的数据是否有效。2)记录有效性规则:对一个记录的约束,当插入或修改记录时被激活,检查输入数据的正确性。字段有效性包括“规则”、“信息”和“默认值”的设置。①“规则”文本框:对该字段输入数据的有效性进行检查的规则。例:设student表中的gender(性别)字段的规则:gender="男"ORgender="女"规则表示:性别字段输入的值为字符型数据,而且仅输入“男”或者“女”。说明:规则是设置一个条件,即规则栏输入一个逻辑表达式。②“信息”文本框:设置该字段输入数据出错时将显示的提示错误信息。例如,设置gender(性别)字段的出错信息为:"性别只能是男或女"③“默认值”文本框:设置该字段的默认值,即向数据表中添加新记录时,为字段生成的初始值。例如,设置gender(性别)字段的默认值为:"女"。注意:默认值栏的数据类型应与该字段类型一致。注意:信息栏输入的是一个字符串。记录有效性指对记录中各个字段进行某种运算的结果进行检查,判断其是否在合理的范围内。包括“规则”、“信息”。①“规则”文本框:设置数据记录的有效条件。例:设teacher表中的记录规则:
YEAR(workdate)-YEAR(birthdate)>=18规则表示:参加工作必须满18岁。②“信息”文本框:设置输入错误时的提示信息。触发器是一个对数据库表进行插入、删除和更新时而引发的检验规则。该规则可以是逻辑表达式,也可以是用户自定义函数。①“插入触发器”:用于指定记录的插入规则。每当用户向数据表中插入或者追加新记录时,就会触发此规则并进行校验。②“更新触发器”:用于指定记录的修改规则。当用户修改数据表中的记录时,将触发此规则并进行校验。触发器有以下三种:③“删除触发器”:用于指定记录的删除规则。当用户删除数据表中的记录时,将触发此规则并进行校验。例如,设置title表的三个触发器分别为:.F.,并验证是否可以进行相应的操作。说明:三个规则中当表达式或函数的值为.F.,表示不允许对数据库表进行相应的操作。注意:字段有效性规则和记录有效性规则的作用是限制非法数据的输入,而触发器是控制对已存在的记录所做的非法操作。2.数据库表与自由表的转换如果将一个自由表添加到某个数据库中就成为一个数据库表;反之,如果将数据库表从数据库中移出,该数据库表就成为了自由表。数据库表和自由表可以相互转换。向数据库中添加表打开数据库,执行快捷菜单中的“添加表”命令。界面方式语法:ADDTABLE<表名>命令方式功能:向当前的数据库中添加自由表。例3.22执行命令向当前数据库添加sclass表。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年机关单位岗位公开聘用合同
- 2025年便利店承包合同模板
- 2025合作加工合同协议书
- 2025合同管理流程工程变更合同工作程序
- 2025电影版权授权合作合同
- 2025年室外排水管网工程施工合同
- DB12-T3029-2022-园林绿化有机覆盖物应用技术规程-天津市
- 2025年度标准企业办公场地租赁合同范本
- 2025四川省农副产品订购合同
- 氧气雾化的安全使用
- 2025年广东省中考总复习·数学 第一部分 第三章 第13课时 反比例函数
- 食品销售提成管理制度
- 手术分级目录(2023年修订)
- 《面向对象程序设计(C#)》
- 微波技术与天线-第三章-微波元器件课件
- ISOTS 22163专题培训考试
- 互联网+智慧校园解决方案(最新详细方案)
- CPK基本知识及实例
- 人字梯验收记录表
- FITS加氢说明书
- 半导体物理与器件物理
评论
0/150
提交评论