
《数据库及其应用》课件2.ppt
40页数据库及其应用第第4 4章章 数据库及表数据库及表的操作的操作 第第4 4章章 数据库及表的操数据库及表的操作作 创建数据库及表;创建数据库及表;表的基本操作表的基本操作 ;;表的排序与索引;表的排序与索引;表数据的统计汇总表数据的统计汇总 ;;数据库表间的关系与参照完整性数据库表间的关系与参照完整性 ;;表之间的关联表之间的关联 4.1 4.1 创建数据库及表创建数据库及表数据库:数据库是一个容器,通过一组系统文件将数据库:数据库是一个容器,通过一组系统文件将相互联系的数据库表及其相关的数据库对象进行统相互联系的数据库表及其相关的数据库对象进行统一的组织和管理,使它们成为相互关联的数据集合一的组织和管理,使它们成为相互关联的数据集合数据库将有关信息存放在扩展名为数据库将有关信息存放在扩展名为.DBC.DBC的文件及附的文件及附属文件中属文件中表:关系模型中的关系在表:关系模型中的关系在Visual FoxProVisual FoxPro中称为表中称为表((TableTable),一个表以一个文件的形式保存(扩展名),一个表以一个文件的形式保存(扩展名.DBF.DBF)。
VFP VFP 中的表分为两种:数据库表和自由表中的表分为两种:数据库表和自由表创建表包括建立表结构和输入记录创建表包括建立表结构和输入记录建立数据库,先做好设计:文件夹、数据库文件名、建立数据库,先做好设计:文件夹、数据库文件名、各表名及字段定义等,然后依次创建数据库和表各表名及字段定义等,然后依次创建数据库和表 创建数据库创建数据库建立数据库有菜单方式和命令方式建立数据库有菜单方式和命令方式菜菜单单方方式式::““文文件件””→→““新新建建”” →→““文文件件类类型型”” 中中选选““数数据据库库”” → → ““新新建建文文件件”” →→““创创建建”” →→““保存保存””命令方式命令方式::CREATE DATABASE
此时打开表设计器建立表命令:首先打开要建立表的数据库,然后输建立表命令:首先打开要建立表的数据库,然后输入创建表的命令(表文件扩展名入创建表的命令(表文件扩展名.DBF.DBF可省略)可省略) CREATE [
个字符的长表名自由表可加入数据库成为数据库表,数据库表也可自由表可加入数据库成为数据库表,数据库表也可移出数据库而成为自由表移出数据库而成为自由表数据库设计器中选择数据库设计器中选择““添加表添加表””,然后从,然后从““打开打开””对话框中选择要添加到当前数据库的自由表;对话框中选择要添加到当前数据库的自由表; 添加命令:添加命令:ADD TABLE
表的打开与关闭表的打开与关闭表的打开:建好的表存放在磁盘上,表的打开:建好的表存放在磁盘上,使用表首先使用表首先要将表调入内存,这称为表文件的打开要将表调入内存,这称为表文件的打开每个表在内存中占用一块区域,即文件工作区可同时在内存中占用一块区域,即文件工作区可同时打开多个表,内存事先划分为多个文件工作区并打开多个表,内存事先划分为多个文件工作区并从从1 1开始编号,最多开始编号,最多3276732767区前1010个区还可以使个区还可以使用区的别名用区的别名A A~~J J一个区最多打开一个表一个区最多打开一个表每一时刻,每一时刻,VFPVFP总是位于某个工作区,即当前工作总是位于某个工作区,即当前工作区,绝大部分命令都是针对当前区的表进行操作区,绝大部分命令都是针对当前区的表进行操作VFPVFP刚进入时当前区是第刚进入时当前区是第1 1区选区命令:选区命令:SELECT
表中记录从传统操作以记录为单位表中记录从1 1开始连续开始连续编号操作数据时先进行记录定位操作数据时先进行记录定位用 ““记录指针记录指针”” 作标识,指针指向的记录为当前记录记录定位作标识,指针指向的记录为当前记录记录定位就是移动指针指向新当前记录表刚打开时,记录就是移动指针指向新当前记录表刚打开时,记录指针总是指向首记录函数指针总是指向首记录函数 RECNO()RECNO() 求当前记录号,求当前记录号,EOFEOF()()、、BOF()BOF()用于判断指针是否指向表的首尾用于判断指针是否指向表的首尾指针定位方式:绝对定位、相对定位和条件定位指针定位方式:绝对定位、相对定位和条件定位绝对定位绝对定位:命令中指明记录号命令中指明记录号 GO[TO] TOP | BOTTOM |
指针定位在满足给定条件的记录上 LOCATE FOR
或默认为当前记录FIELDSFIELDS子句子句:指定操作的字段,逗号相隔指定操作的字段,逗号相隔FOR FOR 和和 WHILE WHILE 子句子句:按条件筛选记录按条件筛选记录注意命令书写要求注意命令书写要求显示表、修改表结构显示表、修改表结构显示记录显示记录:: LIST | DISPLAY LIST | DISPLAY [< [<范围范围>] [FOR<>] [FOR<条件条件>] [[FIELDS]<>] [[FIELDS]<字段名表字段名表>] >] [TO FILE< [TO FILE<文件名文件名>] | [TO PRINT] [OFF] >] | [TO PRINT] [OFF] LISTLIST和和DISPLAYDISPLAY的区别:缺省范围,的区别:缺省范围,LISTLIST显示所有显示所有记录,记录,DISPLAYDISPLAY显示当前记录;显示的记录超出一显示当前记录;显示的记录超出一屏时,屏时,LISTLIST为连续滚动显示,为连续滚动显示,DISPLAYDISPLAY为分屏显示为分屏显示窗口浏览窗口浏览::BROWSEBROWSE指定字段指定字段:?字段名,:?字段名,……显示表结构显示表结构::LIST | DISPLAY STRUCTURELIST | DISPLAY STRUCTURE修改表结构修改表结构::MODIFY STRUCTURE MODIFY STRUCTURE 增加、修改、修改表记录增加、修改、修改表记录插入记录插入记录::INSERT [BLANK] [BEFORE]INSERT [BLANK] [BEFORE]追加记录追加记录::APPEND [BLANK]APPEND [BLANK] APPEND FROM < APPEND FROM <文件名文件名> >交互式修改记录交互式修改记录::EDIT | CHANGE EDIT | CHANGE (为保持兼容)(为保持兼容)替换修改替换修改::REPLACE
将带删除标记的记录真正删除逻辑删除的记录,可以去掉删除标记从而逻辑删除的记录,可以去掉删除标记从而恢复恢复为正为正常记录删除表记录相关命令和函数删除表记录相关命令和函数逻辑删除记录逻辑删除记录::DELETE [
打打开开SET SET SAFESAFE开开关关((ONON))将将取取消询问而直接清表消询问而直接清表 复制表文件复制表文件防止数据丢失损坏或其他原因,表需要备份或复制防止数据丢失损坏或其他原因,表需要备份或复制表结构复制表结构复制::COPY STRUCTURE TO
表表记记录录按按输输入的先后排列编号入的先后排列编号若若要要以以另另一一种种与与原原表表物物理理顺顺序序不不同同的的顺顺序序来来处处理理记录,便须对表进行记录,便须对表进行排序或索引排序或索引排排序序::排排序序是是根根据据表表的的某某些些字字段段值值的的大大小小顺顺序序重重排排记记录录排排序序产产生生重重新新排排列列记记录录顺顺序序的的新新表表,,但但原原来来的的表表文文件件不不变变排排序序方方法法的的效效率率不不高高,,实实用用性较差排排序序命命令令::SORT SORT TO TO < <新新表表名名> > ON ON < <字字段段名名1> 1> [/A|/D][/C] [/A|/D][/C] [,<[,<字字段段名名2>[/A|/D]/C]2>[/A|/D]/C]……] ] [<[<范范围围>] [FOR|WHILE <>] [FOR|WHILE <条件条件>][FIELDS <>][FIELDS <字段名表字段名表>]>]9. 9. 索引与索引文件索引与索引文件索索引引是是使使记记录录按按某某个个或或某某些些字字段段值值有有序序,,但但不不改改变变记记录录物物理理顺顺序序的的方方法法,,使使记记录录有有序序的的字字段段表表达达式式称称为为索索引引项项((关关键键字字))。
索索引引方方法法建建立立一一个个专专门门存存放放索索引引项项的的文文件件,,在在该该文文件件中中保保存存索索引引项项的的逻逻辑辑顺顺序序,,并并通通过过记记录录指指针针指指向向对对应应物物理理记录存放索引的为索引文件建立索引的目的:记录存放索引的为索引文件建立索引的目的: ⒈ ⒈ 使记录有序;快速定位记录指针;使记录有序;快速定位记录指针; ⒉ ⒉ 建立主索引实现主键的作用;建立主索引实现主键的作用; ⒊ ⒊ 建立表的联系必须使用索引;建立表的联系必须使用索引; ⒋ ⒋ 用于提高处理速度用于提高处理速度索引文件概述索引文件概述在在索索引引文文件件中中,,索索引引项项的的值值可可按按升升序序((AscendingAscending))或或降降序序((DescendingDescending))排排列列,,每每个个值值对对应应于于表表中中的的一一个个记记录录号号,,这这样样便便确确定定了了物物理理记记录录的的逻逻辑辑顺顺序序可可以对同一个表创建和使用不同的索引关键字以对同一个表创建和使用不同的索引关键字创建索引就是创建一个由指向相应表记录的指针构成的文件创建索引就是创建一个由指向相应表记录的指针构成的文件。
VFVF的索引文件有的索引文件有单项索引与复合索引两种复合索引又分为结构复合索引和非结构复合索引两单项索引与复合索引两种复合索引又分为结构复合索引和非结构复合索引两类使用最多的是结构复合索引使用最多的是结构复合索引索引文件分类索引文件分类VFPVFP的索引文件有单项索引与复合索引两种复合索引又分为结构复合索引和的索引文件有单项索引与复合索引两种复合索引又分为结构复合索引和非结构复合索引两类使用最多的是结构复合索引非结构复合索引两类使用最多的是结构复合索引单项索引:一个索引文件中只存放一个索引项,文件扩展名单项索引:一个索引文件中只存放一个索引项,文件扩展名.IDX.IDX;;复合索引:一个索引文件中存放多个索引项,每个索引项有一个名称(复合索引:一个索引文件中存放多个索引项,每个索引项有一个名称(TAGTAG),),文件扩展名文件扩展名.CDX.CDX,非结构复合索引文件有用户命名结构复合索引文件名与表,非结构复合索引文件有用户命名结构复合索引文件名与表文件同名文件同名复合索引文件示意复合索引文件示意((TAG名称名称1))((TAG名称名称n))索引项索引项1 物理记录号物理记录号 ……索引项索引项m 物理记录号物理记录号索引值索引值1记录号记录号1…… 索引值索引值2记录号记录号2…… …………………………索引值索引值n记录号记录号n 索引类型索引类型主索引:不允许重复值、只能数据库表中使用,主要用在参照完整性检测中;主索引:不允许重复值、只能数据库表中使用,主要用在参照完整性检测中;每个表最多一个;每个表最多一个;候选索引:不允许重复值,可定义多个;候选索引:不允许重复值,可定义多个;普通索引:定义记录的逻辑顺序。
普通索引:定义记录的逻辑顺序建立索引的操作建立索引的操作建立主索引命令:建立主索引命令: ALTER TABLE
关闭:关闭表时关闭该表打开的索引 SET INDEX TOSET INDEX TO指定发挥作用的主控索引:指定发挥作用的主控索引: SET ORDER TO SET ORDER TO 索引名索引名| |数值数值删除索引与索引更新删除索引与索引更新删除索引:删除索引: ALTER TABLE ALTER TABLE 表名表名 DROP PRIMARY KEYDROP PRIMARY KEY DELETE TAG ALL| DELETE TAG ALL|索引名索引名1|1|……索引更新:索引更新: 1.1.自动更新:打开的索引在表修改关键值时自动更新:打开的索引在表修改关键值时 会自动更新索引;会自动更新索引; 2.2.按原索引项重新索引:按原索引项重新索引: REINDEXREINDEX数据快速定位数据快速定位传统查询的意义:传统操作以记录为单位,查询是指将指针定位在满足条件传统查询的意义:传统操作以记录为单位,查询是指将指针定位在满足条件的记录上的记录上。
顺序定位:在表文件中检索定位命令:顺序定位:在表文件中检索定位命令: LOCATE [LOCATE [范围范围] [] [检索条件检索条件] ] CONTINUE CONTINUE索引定位:在索引文件中检索定位命令:索引定位:在索引文件中检索定位命令: ((1 1)) SEEK
分类汇总的结果保存在与原库先对指定项建索引分类汇总的结果保存在与原库文件相同结构的汇总文件中文件相同结构的汇总文件中 TOTAL TO TOTAL TO 求和文件求和文件 ON ON 分类项分类项 [ [其它选项其它选项] ] 4.5 4.5 数据库表之间的关系与数据库表之间的关系与参照完整性参照完整性 VFPVFP中在数据库表之间可以实现数据完整性的功能中在数据库表之间可以实现数据完整性的功能首先定义数据库,然后定义数据库中各表,通过指定主索引,首先定义数据库,然后定义数据库中各表,通过指定主索引,VFPVFP将对主索引将对主索引的字段按实体完整性的要求对待;在主键和外键(都必须建立索引)间建立联的字段按实体完整性的要求对待;在主键和外键(都必须建立索引)间建立联系可以自动实现参照完整性;通过触发器和有效性规则的设定实现域完整性和系可以自动实现参照完整性;通过触发器和有效性规则的设定实现域完整性和用户定义的完整性用户定义的完整性这些功能都由这些功能都由DBMSDBMS自动实现自动实现4.6 4.6 多表操作与表之间的关联多表操作与表之间的关联 多多工工作作区区操操作作::进进行行多多表表同同时时处处理理时时,,必必须须在在多多个个工工作作区区将将涉涉及及的的多多个个表表同同时时打打开开。
但但同同一一时时刻刻只只有有一一个个区区是是当当前前工工作作区区,,大大部部分分命命令令只只针针对对当当前前区区中中的表函数的表函数SELECT()SELECT()返回当前区的区号返回当前区的区号为了使某个区变成当前工作区,要使用选区命令:为了使某个区变成当前工作区,要使用选区命令: SELECT
数据工作期数据工作期数数据据工工作作期期是是一一个个用用来来设设置置数数据据工工作作环环境境的的交交互互操操作作窗窗口口,,所所设设置置的的环环境境包包括括打开的表及其索引,选择当前表(工作区),多个表之间的关联等状态打开的表及其索引,选择当前表(工作区),多个表之间的关联等状态数数据据工工作作期期打打开开::菜菜单单方方式式::““窗窗口口””菜菜单单的的““数数据据工工作作期期””命命令令,,打打开开““数数据工作期据工作期””窗口单击关闭按钮,或窗口单击关闭按钮,或““文件文件””菜单菜单““关闭关闭””项关闭窗口项关闭窗口命令方式:命令方式:SET SET 或或 SET VIEW ON SET VIEW ON 打开;打开; SET VIEW OFFSET VIEW OFF,关闭,关闭““数据工作期数据工作期”” 表之间的关联表之间的关联引用其它工作区表的当前记录字段值格式:引用其它工作区表的当前记录字段值格式: < <别名别名>.<>.<字段名字段名> > 或或 < <别名别名> -> <> -> <字段名字段名> >关关联联是是使使多多个个表表协协调调处处理理的的一一种种方方法法。
每每个个打打开开的的表表都都用用记记录录指指针针指指示示当当前前记记录录,,它它们们相相互互独独立立的的所所谓谓关关联联,,就就是是将将不不同同工工作作区区的的记记录录指指针针建建立立临临时时的的联联动动关关系系,,使使一一个个表表的的记记录录指指针针移移动动时时另另一一个个表表的的记记录录指指针针能能随随之之移移动动表表之之间间的的关关联联与与数数据据库库表表之之间间的的永永久久关关系系不不同同,,它它是是一一种种临临时时关关系系,,每每次次都都需需要要重重新新建立无论自由表或数据库表,都可以建立关联无论自由表或数据库表,都可以建立关联建立关联建立关联建建立立关关联联的的两两个个表表,,一一个个为为主主动动表表,,也也称称为为父父表表;;另另一一个个为为被被动动表表,,也也称称为为子子表表在在执执行行涉涉及及这这两两个个表表数数据据的的命命令令时时,,父父表表记记录录指指针针的的移移动动,,会会使使子子表表记记录录指指针针自自动动移移到到满满足足关关联联条条件件的的记记录录上上反反之之,,子子表表记记录录指指针针的的移移动动不不会会带动父表记录指针的移动带动父表记录指针的移动建立关联命令:建立关联命令: SET RELATION TO SET RELATION TO 关联字段关联字段 INTO INTO 子表子表课后练习与上机实践1 1。
完成习题四;完成习题四;2 2完成指定实验,写出实验报告完成指定实验,写出实验报告重点理解数据库及表的创建,记录重点理解数据库及表的创建,记录的不同输入方法,记录指针,当前记的不同输入方法,记录指针,当前记录,索引等录,索引等已经学习重要概念汇编已经学习重要概念汇编数据库系统,数据库设计,三个世界;数据库系统,数据库设计,三个世界;数据模型,数据模型,ERER模型,模型,ERDERD,实体与属性,联系,实体与属性,联系关系模型,元组,属性,主键,外键,关系运算,数据完整性规则;关系模型,元组,属性,主键,外键,关系运算,数据完整性规则;数据库,数据库文件,表,记录,字段,数据类型,各种类型及其表示符号,数据库,数据库文件,表,记录,字段,数据类型,各种类型及其表示符号,常量,变量,运算符,函数,表达式,命令,记录指针,记录范围,条件,索常量,变量,运算符,函数,表达式,命令,记录指针,记录范围,条件,索引引工作区,文件的打开与关闭工作区,文件的打开与关闭数据库的操作:更新(增加、删除、修改),查询数据库完整性的实现数据库的操作:更新(增加、删除、修改),查询数据库完整性的实现。
已经学习命令汇编(已经学习命令汇编(1 1))退出退出VFPVFP::QUITQUIT清窗口:清窗口:CLEARCLEAR赋值命令:赋值命令:STORE STORE 表达式表达式 TO TO 变量表变量表 变量变量= =表达式表达式显示值:显示值: ??| |???? 表达式表表达式表设置缺省路径:设置缺省路径:SET DEFAULT TO SET DEFAULT TO 路径路径有关日期有关日期SETSET命令:命令:SET DATE / STRICTDATESET DATE / STRICTDATE显示内存变量:显示内存变量:LIST|DISPLAY MEMORYLIST|DISPLAY MEMORY命令汇编(命令汇编(2 2))创建数据库:创建数据库:CREATE DATABASE CREATE DATABASE 数据库名数据库名打开数据库:打开数据库:OPEN DATABASE OPEN DATABASE 数据库名数据库名指定指定当前库:当前库:SET DATABASE TO [












