《数据库与表的基本操作.ppt》由会员分享,可在线阅读,更多相关《数据库与表的基本操作.ppt(39页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第3章 数据库和表的基本操作目 录上一页下一页退 出目 录上一页下一页退 出 本本 章章 要要 点点3.1 VFP6数据库和表的基本概念3.2 数据库的基本操作3.3 表的基本操作3.4 表间关系和参照完整性3.5 工作区与多表操作目 录上一页下一页退 出 3.3 表的基本操作3.3.1 表的创建3.3.2 表结构的修改3.3.3 表的打开浏览关闭3.3.4 使用命令方式操作表3.3.5 数据库表索引的创建和使用3.3.6 数据库表的属性设置目 录上一页下一页退 出 3.3.5 数据库表索引的创建和使用1.索引文件的类型2.索引的类型3.索引的创建4.索引的修改和删除5.索引的使用目 录上一页
2、下一页退 出索引是指根据索引表达式的值使表中的记录有序排列的一种技术。索引的实现:根据索引表达式的值将记录重新排序,并建立索引表用于存储排序后索引关键字的值和记索引关键字的值和记录号之间的对应关系录号之间的对应关系,再将索引表保存在索引文件中。3.3.5 数据库表索引的创建和使用目 录上一页下一页退 出对COURSE表按学时索引记记录录号号课课程程号号学学时时1 1010010100160602 2020010200130303 3020020200270704 4040010400148485 504002040027474索引索引学学时时(索引表索引表达式)达式)记记录录号号30302 2
3、48484 460601 170703 374745 5记记录录号号课课程号程号学学时时2 2020010200130304 4040010400148481 1010010100160603 3020020200270705 504002040027474索引表索引表 3.3.5 数据库表索引的创建和使用目 录上一页下一页退 出1.索引文件的分类 1)复合索引文件 复合索引文件是指包含一个或多个索引表达式的索引文件,以CDXCDX为文件扩展名。分为结构化复合索引文件和非结构化复合索引文件:结构化复合索引文件的主名与表文件相同,它能随着表的打开而自动打开,随表的关闭而自动关闭;在对表中记录进行
4、增加、删除和修改时,会自动进行更新维护。非结构化复合索引文件的主名与表文件不同,使用不方便。3.3.5 数据库表索引的创建和使用目 录上一页下一页退 出 2)独立索引文件 独立索引文件(也称单一索引文件)是指仅包含一个索引表达式的索引文件,以IDXIDX为文件扩展名。一个表可以建立多个独立索引文件。只在建立临时索引时才用。本课程不做介绍。课程主要介绍结构化复合索引文件结构化复合索引文件的建立和使用。3.3.5 数据库表索引的创建和使用目 录上一页下一页退 出2.索引的类型 1)主索引 能对记录进行唯一标识,在表中起主关键字的作用并决定记录的逻辑顺序。用于建立主索引的字段表达式无NULLNULL
5、值和重复值,确保字段输入值的唯一性。只有数据库表才能建立主索引,且只能有一个主索引。2)候选索引 候选索引同主索引一样,它的索引表达式无NULLNULL值和重复值,在表中起候选关键字的作用。数据数据库表和自由表都可以建立候选索引库表和自由表都可以建立候选索引,一,一个表可以建立多个候选索引。3.3.5 数据库表索引的创建和使用目 录上一页下一页退 出3)普通索引 普通索引决定记录的逻辑顺序,但它允许索引表达式有重复值。数据库表和自由表都可以建立候选索引,一个表可以建立多个普通索引。4)唯一索引 允许索引表达式有重复值,但重复的索引字段值只有唯一一个值出现在索引表中,即含有相同索引表达式的多条记
6、录只有第一条有效。数据库表和自由表都可以建立唯一索引,一个表可以建立多个唯一索引。3.3.5 数据库表索引的创建和使用目 录上一页下一页退 出 唯一索引和普通索引只能起到索引排序的作用,而主索引和候选索引除了具有排序的功能外,还可以用于保证记录的唯一性及主键、候选键无空值。VFP正是利用主索引和候选索引实现关系的实体完整性。目 录上一页下一页退 出3.索引的创建1)使用表设计器建立结构化复合索引索引名:可以与字段同名,必须是唯一的索引类型:主索引、候选索引、普通索引、唯一索引排序方式:升序或降序索引表达式:一个或多个字段组成筛选 3.3.5 数据库表索引的创建和使用目 录上一页下一页退 出 2
7、)使用命令方式建立索引 INDEX ON INDEX ON TAG TAG OF OF FOR FOR ASCENDING|DESCENDING ASCENDING|DESCENDING UNIQUE|CANDIDATE UNIQUE|CANDIDATE ADDITIVE ADDITIVE 命令既能创建结构化复合索引,也能创建非结构化复合索引,但命令不能建立主索引。3.3.5 数据库表索引的创建和使用目 录上一页下一页退 出 例3.153.15 对STUDENTSTUDENT表,按出生日期建立索引,索引名为RQRQ USE STUDENTUSE STUDENT INDEX ON INDEX O
8、N 出生日期出生日期 TAG RQ TAG RQ 例3.163.16 对STUDENTSTUDENT表,先按专业再按姓名建立索引,索引名为ZYXMZYXMINDEX ON INDEX ON 专业专业+姓名姓名 TAG ZYXM TAG ZYXM 3.3.5 数据库表索引的创建和使用目 录上一页下一页退 出3.索引的修改和删除1)修改索引 可以在表设计器中直接修改结构化复合索引的索引名、索引表达式、排序等。2)删除索引 可以在表设计器中直接删除结构化复合索引;或者可以使用命令删除索引,命令格式如下:DELETE TAG DELETE TAG OF OF 3.3.5 数据库表索引的创建和使用目 录
9、上一页下一页退 出4.索引的使用1)设置主控索引 结构化复合索引文件中允许有多个索引,但某一时刻,只能有一个索引可以使用,称该索引为主控索引。设置为主控索引的方法:(1)打开已建好索引的表,打开“浏览器”,从“表”菜单中选择“属性”,打开“工作区属性”。3.3.5 数据库表索引的创建和使用目 录上一页下一页退 出 (2)在数据工作期中,选择表,单击“属性”按钮,打开“工作区属性”。(3)用命令设置主控索引 SET ORDER TO SET ORDER TO 3.3.5 数据库表索引的创建和使用目 录上一页下一页退 出 2)利用索引快速定位记录 SEEK SEEK 查找主控索引表达式的值与SEE
10、KSEEK命令指定表达式的值相匹配的第一条记录,若找到,将指针指向该记录,否则指向文件结束位置。注意:在使用SEEKSEEK命令前,必须建立相应的索引,索引表达式的值与SEEKSEEK表达式的值必须是同类型且含义相同,并将该索引设置为主控索引。3.3.5 数据库表索引的创建和使用目 录上一页下一页退 出例3.173.17 查找STUDENTSTUDENT表“社会学”专业的记录 USE STUDENTUSE STUDENT INDEX ON INDEX ON 专业专业 TAG ZY TAG ZY SET ORDER TO ZYSET ORDER TO ZY SEEK SEEK 社会学社会学 3.
11、3.5 数据库表索引的创建和使用目 录上一页下一页退 出3.3.6 数据库表的属性设置 数据库表的属性包括字段属性和记录属性。字段属性包括字段的显示属性和字段有效性规则;而记录属性包括记录的有效性规则和触发器。1.字段属性的设置 2.记录属性的设置目 录上一页下一页退 出1.字段属性 字段的显示属性(1)格式:控制字段在浏览器、表单、报表等界面中显示时的格式。(2)输入掩码:控制向字段输入数据的格式,用于限制输入数据的范围,控制输入的正确性,输入掩码是按位来定制。(3)标题:浏览表时字段显示的列标题3.3.6 数据库表的属性设置目 录上一页下一页退 出 字段有效性规则 字段有效性规则,在插入或
12、修改字段值时进行正确性检查,它是Visual Visual FoxProFoxPro实现域完整性的手段。(1)规则:用于检查输入的字段数据的正确性。(2)信息:当在该字段输入了不符合“规则”的数据时,显示给用户的提示信息,设置时必须使用定界符。(3)默认值:用于指定字段的默认值,提高输入速度。例P723.3.6 数据库表的属性设置目 录上一页下一页退 出2.记录属性 记录有效性规则 记录的有效性规则用于检查同一记录中不同字段之间的逻辑关系。(1)规则:用于检查输入的记录数据是否符合要求。(2)信息:根据规则进行检查时,若记录的数据不符合“规则”,显示给用户的提示信息。3.3.6 数据库表的属性
13、设置目 录上一页下一页退 出触发器 当对记录进行操作时,若设置了触发器,则对触发器设置的条件表达式进行验证,若其值为真.T.,则允许进行相关操作,否则,则拒绝操作。插入触发器:当向表中插入或追加记录时,判断其表达式的值,为“真”允许插入或追加,为“假”不允许插入或追加。更新触发器:当要修改记录时,判断其表达式的值,为“真”允许修改,为“假”不允许修改。删除触发器:当要删除表中记录时,判断其表达式的值,为“真”允许删除,为“假”不允许删除。3.3.6 数据库表的属性设置目 录上一页下一页退 出 本本 章章 要要 点点3.1 VFP6数据库和表的基本概念3.2 数据库的基本操作3.3 表的基本操作
14、3.4 表间关系和参照完整性3.5 工作区与多表操作目 录上一页下一页退 出3.4 永久关系与参照完整性 数据库表间的永久关系是体现多表间联系的一种方法,永久关系作为数据库的一部分被保存在数据库中。参照完整性的作用:在增加、删除和修改一个表中的数据时,通过参照相互关联的另一个表的数据,来检查对数据的操作是否正确,它是关系完整性约束的一个重要部分。目 录上一页下一页退 出3.4.1 永久关系的建立永久关系分为两种类型:一对一关系和一对多关系在数据库表之间建立永久关系时,发起关联的表称为父表(主表),被关联的表称为子表。父表和子表要有一个共同属性。(1)一对一关系 父表和子表均按共同属性建立主索引
15、或候选索引。(2)一对多关系 作为一方的父表按共同属性建立主索引或候选索引,而作为多方的子表则按共同属性建立普通索引。目 录上一页下一页退 出3.4.1 永久关系的建立例3.19 在“教学管理”数据库中,为STUDENT和GRADE表建立一对多的永久关系。步骤如下:打开打开“教学管理教学管理”数据库。数据库。首先确定首先确定STUDENTSTUDENT表为父表(一方)、表为父表(一方)、GRADEGRADE表表为子表(多方)、共同的属性为为子表(多方)、共同的属性为学号学号字段,字段,然后分别为然后分别为STUDENTSTUDENT表和表和GRADEGRADE表按学号字段表按学号字段建立建立主
16、索引主索引和和普通索引普通索引。在数据库设计器中,用鼠标将在数据库设计器中,用鼠标将STUDENTSTUDENT表的表的“学号学号”索引拖动到索引拖动到GRADEGRADE表的表的“学号学号”索引索引目 录上一页下一页退 出3.4.1 永久关系的建立两张表之间的连线即为永久关系目 录上一页下一页退 出3.4.2 参照完整性的定义及操作由于参照完整性涉及两个相关的表,因此首先需要建立两表间的永久关系。在建立参照完整性之前必须首先清理数清理数据库据库即物理删除数据库各个表中所有带删除标记的记录。用鼠标右键单击永久关系,从快捷菜单中选择“编辑参照完整性“参照完整性规则包括更新规则、删除规则和插入规则
17、。目 录上一页下一页退 出更新规则更新规则当父表中的关键当父表中的关键字值被修改时字值被修改时 删除规则删除规则当父表中记当父表中记录被删除时录被删除时 插入规则插入规则当在子表中当在子表中插入或更新插入或更新记录时记录时 级联级联用新的关键字值更新子表中的所有相关记录删除子表中所有相关记录限制限制若子表中有相关记录则禁止更新若子表中有相关记录则禁止删除若父表中不存在匹配的关键字值,则禁止插入忽略忽略允许更新,不管子表中的相关记录允许删除,不管子表中的相关记录允许插入 目 录上一页下一页退 出 本本 章章 要要 点点3.1 VFP6数据库和表的基本概念3.2 数据库的基本操作3.3 表的基本操
18、作3.4 表间关系和参照完整性3.5 工作区与多表操作目 录上一页下一页退 出3.5 工作区与多表操作1工作区工作区是内存中的独立存储区域,在一个工作区中只能打开一张表,要打开多张表,就必须使用多个工作区,Visual FoxPro系统设置了32767个工作区。为了区别不同的工作区,系统规定了三种识别工作区的方法:(1)区号:用数字132767表示;(2)区名:对于前10区,分别用字母AJ表示;(3)别名:用在工作区中打开的表的别名,若无别名,系统以表名为别名。目 录上一页下一页退 出3.5 工作区与多表操作2当前工作区系统允许使用多个工作区打开多张表,但在某一时刻只能在一个工作区中进行操作,
19、该工作区为当前工作区。系统默认第一个工作区为当前工作区,要选择其它工作区为当前工作区,需用使用命令:SELECT SELECT|0|0 注意:命令SELECT 0SELECT 0表示选择尚未使用过的工作区中区号最小的工作区为当前工作区。目 录上一页下一页退 出3.5 工作区与多表操作例3.203.20 在1 1号和2 2号工作区打开STUDENTSTUDENT表和GRADEGRADE表,然后将1号工作区设置为当前工作区。CLOSE TABLE ALLCLOSE TABLE ALLSELECT 1 SELECT 1 USE STUDENT ALIAS STUD USE STUDENT ALIAS
20、 STUD SELECT 0 SELECT 0 等价命令等价命令:SELECT 2|SELECT B:SELECT 2|SELECT BUSE GRADEUSE GRADESELECT STUD SELECT STUD 等价命令等价命令:SELECT 1|SELECT A:SELECT 1|SELECT A 目 录上一页下一页退 出3.5 工作区与多表操作3引用非当前工作区的字段 用户可以对当前工作区中的表直接进行操作,要访问其它工作区的表,就必须采用:.或者-例,在当前工作区显示STUDENTSTUDENT表首记录的学号字段,GRADEGRADE表首记录的成绩和课程号字段的内容。?学号学号,
21、B.,B.成绩成绩,GRADE.,GRADE.课程号课程号或者?学号学号,B-,B-成绩成绩,GRADE-,GRADE-课程号课程号目 录上一页下一页退 出3.5 工作区与多表操作4表间的临时关系(也称关联)要建立临时关系的两张表也有父表(主表)与子表之分,但这种关系并不固定,可根据实际应用进行改变。建立临时关系的前提是父表和子表要有共同属性。目 录上一页下一页退 出临时关系与永久关系的区别临时关系与永久关系的区别:1)临时关系可以在自由表之间、库表之间或自由表与库表之间建立,而永久关系只能在库表之间建立。2)临时关系在表打开之后使用set relationset relation命令建立,随表的关闭而解除;永久关系永久地保存在数据库中而不必在每次使用表时重新创建。3)临时关系是用来在打开的两张表之间控制相关表之间记录的访问;而永久关系主要是用来存储相关表之间的参照完整性。目 录上一页下一页退 出3.5 工作区与多表操作 要建立临时关系有三种常用的方法(1)使用数据工作期(2)使用命令方式(P78,例3.22)SET RELATION TO SET RELATION TO INTO INTO (3)使用数据环境设计器
限制150内