第3章 VF数据库及其操作_第1页
第3章 VF数据库及其操作_第2页
第3章 VF数据库及其操作_第3页
第3章 VF数据库及其操作_第4页
第3章 VF数据库及其操作_第5页
已阅读5页,还剩74页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 一、建立项目一、建立项目 方法:方法: 1 1)文件)文件| |新建新建| |项目项目 2 2)create project create project 项目名项目名 3.1 3.1 项目管理器项目管理器 一、一、 DB基本概念基本概念 1、数据库、数据库 (DB):): 2、DB的扩展名的扩展名 .dbc (数据库文件)(数据库文件) .dct (数据库备注文件)(数据库备注文件) .dcx (数据库索引文件)(数据库索引文件) 3.2 3.2 数据库的建立和使用数据库的建立和使用 3 3、建立、建立DBDB 方法:方法: 1 1)项目管理器)项目管理器 2 2)“新建新建”对话框对话框

2、 3 3)用命令)用命令:create database DB:create database DB名称名称 4 4、打开、打开DBDB 方法:方法: 1 1)项目管理器)项目管理器 2 2)“打开打开”对话框对话框 3 3)用命令:)用命令:open database open database 数据库名数据库名 例:例:open database open database 图书管理图书管理( (不打开数据库设计器)不打开数据库设计器) 注:同一时间可以打开多个注:同一时间可以打开多个DBDB,但只有一个是当前数据库,但只有一个是当前数据库 5 5、修改、修改DBDB 方法:方法: 用命令

3、:用命令:modify database modify database 例:例: modify database modify database 图书管理图书管理 注:注:打开打开DBDB设计器设计器 6 6、删除、删除DBDB 方法:方法: 1 1)项目管理器)项目管理器 2 2)用命令:)用命令:delete database delete database 数据库名数据库名 区别区别 7 7、关闭、关闭DBDB 方法:方法: 1 1)Close databaseClose database(关闭当前(关闭当前DBDB) 2 2)Colse allColse all(关闭所有(关闭所有D

4、BDB) 一、表的基本概念一、表的基本概念 1 1、表的分类、表的分类 自由表自由表 数据库表数据库表 2 2、表的扩展名、表的扩展名 .dbf .dbf 表文件的扩展名表文件的扩展名 .fpt .fpt 有备注型或通用型字段的表扩展名有备注型或通用型字段的表扩展名 3.3 3.3 数据库表数据库表 二、表的操作二、表的操作 1 1、建立表、建立表 方法:方法: 1 1)使用)使用DBDB设计器设计器 2 2)“新建新建”对话框对话框 3 3)create create 表名表名 缺值或还没有确定值缺值或还没有确定值 1 1、字段名必须以字母或汉字开头、字段名必须以字母或汉字开头 2 2、字段

5、名可以由字母、汉字、数字和下划线组成、字段名可以由字母、汉字、数字和下划线组成 3 3、字段名不能包含空格、字段名不能包含空格 4 4、数据库表字段名最长为、数据库表字段名最长为128128个字符个字符 1 1、字符型(、字符型(C C):):254254个字符个字符 2 2、货币型(、货币型(Y Y););8 8个字符个字符 3 3、日期型(、日期型(D D):):8 8个字符个字符 4 4、日期时间型(、日期时间型(T T):):8 8个字符个字符 5 5、逻辑型(、逻辑型(L L):):1 1个字符个字符 6 6、数值型(、数值型(N N):):2020个字符个字符 7 7、双精度型(、

6、双精度型(B B):):8 8个字符个字符 8 8、浮点型(、浮点型(F F):):2020个字符个字符 9 9、整型(、整型(I I):):4 4个字符个字符 1010、通用型(、通用型(G G):):4 4个字符个字符 1111、备注型(、备注型(M M):):4 4个字符个字符 关系的属性名或表的列名关系的属性名或表的列名 说明:说明: .NULL.NULL.表示是否充许字段值为空值,它与空表示是否充许字段值为空值,它与空 串和串和0 0具有不同的意义,空值就是缺值或该值还没具有不同的意义,空值就是缺值或该值还没 确定,而不是任何意义的数据。关键字段不允许确定,而不是任何意义的数据。关键

7、字段不允许 设为空值。空值不是一种数据类型,只是一个值,设为空值。空值不是一种数据类型,只是一个值, 输入空值时输入空值时Ctrl+0Ctrl+0 2 2、打开表、打开表 方法:方法: use use 表名表名 3 3、表的关闭、表的关闭 use use & & 关闭当前使用的表关闭当前使用的表 close tables close tables & & 关闭当前数据库中所有打开的表关闭当前数据库中所有打开的表 close tables all close tables all & & 关闭所有打开的表关闭所有打开的表 close all close all & & 关闭所有打开的表、程序文件

8、及关闭所有打开的表、程序文件及 表单等表单等 clear all clear all & & 关闭所有的表、程序文件及表单关闭所有的表、程序文件及表单 等,清除内存变量等,清除内存变量 4 4、修改表结构、修改表结构(打开表设计器进行修改)(打开表设计器进行修改) 方法:方法: 1 1)表设计器)表设计器 2 2)modify structuremodify structure 注:注: modify structure modify structure 后面不接表名后面不接表名 5 5、结构与数据的同时复制、结构与数据的同时复制 Copy to Copy to fields fields f

9、or | for | while while 功能:将满足条件的记录按指定的结构复制到新的表文件。功能:将满足条件的记录按指定的结构复制到新的表文件。 use xsqkuse xsqk copy to xsqk1copy to xsqk1 copy to xsqk2 for copy to xsqk2 for 身高身高1.7 fields 1.7 fields 姓名姓名, , 学号学号, , 体重体重, , 身高身高 6 6只复制表文件结构只复制表文件结构 COPY STRUCTURE TO COPY STRUCTURE TO FIELDS FIELDS 功能:按指定的字段表复制表结构到一个新

10、文件,若功能:按指定的字段表复制表结构到一个新文件,若 不指定字段表,则复制与当前表相同的结构不指定字段表,则复制与当前表相同的结构。 use xsqkuse xsqk copy structure to xsqk3 fields copy structure to xsqk3 fields 姓名姓名, , 学号学号, , 身高身高, , 体重体重 use xsqk3use xsqk3 list structurelist structure 3.4 3.4 表的基本操作表的基本操作 一、使用浏览器操作表一、使用浏览器操作表 1 1、打开浏览器、打开浏览器 方法(方法(1 1)在项目管理器中打

11、开)在项目管理器中打开/ /数据库设计器中打开数据库设计器中打开/“/“显示显示” 菜单下的菜单下的“浏览浏览” (2 2)use use 表名表名 browsebrowse 2 2、修改记录、修改记录 3 3、增加记录、增加记录 方法(方法(1 1) “ “表表”菜单菜单 “ “追加新记录追加新记录” ” (2 2)Ctrl+YCtrl+Y 4 4、删除记录、删除记录 (1 1)逻辑删除:)逻辑删除: 在记录旁边做删除标记在记录旁边做删除标记 菜单:表菜单:表 切换删除标记(切换删除标记(Ctrl+TCtrl+T或鼠标点击)或鼠标点击) (2 2)物理删除:彻底删除)物理删除:彻底删除 菜单

12、:表菜单:表 彻底删除彻底删除 二者区别:逻辑删除只加删除标记,物理删除是建二者区别:逻辑删除只加删除标记,物理删除是建 立在逻辑删除基础之上的,将加了删除标记的记立在逻辑删除基础之上的,将加了删除标记的记 录彻底删除录彻底删除 重复重复 操作操作 可去可去 掉删掉删 除标除标 记记 二、使用命令操作表二、使用命令操作表 (前提(前提: :表处于打开状态)表处于打开状态) 1 1、增加记录命令、增加记录命令 1 1)append:append:在表的尾部增加记录在表的尾部增加记录 格式:格式:appendappend append blank append blank append from

13、append from 表名表名 将一个表的将一个表的 中的内容追中的内容追 加到另一个加到另一个 表的尾部表的尾部 例如:将例如:将学生学生1 1表的记录追加到表的记录追加到学生学生表的尾部表的尾部 useuse 学生学生 append fromappend from 学生学生1 1 browsebrowse 记录指针(了解):记录指针(了解): 5 5、 查询定位命令查询定位命令 绝对定位:绝对定位:Go Go 记录号记录号|top|bottom|top|bottom 相对定位:相对定位:Skip Skip 数值数值 条件定位:条件定位:Locate for Locate for 条件条件

14、 continuecontinue 第几个记录 表头 表尾 正数:向下 负数:向上 打开学生表,做如下操作:打开学生表,做如下操作: 例例1 1:将:将“学生学生”表的记录指针指向表尾表的记录指针指向表尾 例例2 2:将:将“学生学生”表的记录指针指向倒数第二条记录表的记录指针指向倒数第二条记录 例例3 3:将:将“学生学生”表的记录指针指向表头表的记录指针指向表头 例例4 4:将:将“学生学生”表的记录指针指向第表的记录指针指向第3 3条记录条记录 例例5 5:将:将“学生学生”表的记录指针向下移动两条记录表的记录指针向下移动两条记录 例例6 6:将:将“学生学生”表的记录指针指向第一个性别

15、为表的记录指针指向第一个性别为“男男” 的记录上的记录上 例例7 7:将:将“学生学生”表的记录指针指向第三个性别为表的记录指针指向第三个性别为 “ “男男” 的记录上的记录上 go bottomgo bottom Go bottomGo bottom Skip -1Skip -1 go go toptop go go 3/skip 23/skip 2 Skip 2Skip 2 Locate for Locate for 性别性别= =“男男” Locate for Locate for 性别性别= =“男男” continuecontinue continuecontinue 与指针及表相关

16、的测试函数与指针及表相关的测试函数 (1)(1)文件结束测试函数文件结束测试函数 EOF()EOF() 功能:测试记录指针是否指向文件结束位置(表文功能:测试记录指针是否指向文件结束位置(表文 件尾),件尾),表文件尾是指最后一条记录的后面位置。表文件尾是指最后一条记录的后面位置。 若指针指向结束位置,函数值为逻辑真(若指针指向结束位置,函数值为逻辑真(.T.T.),), 否则函数值为假(否则函数值为假(.F.F.)。)。 例:例: go bottomgo bottom ?eof( ) ?eof( ) skip skip ?eof( ) ?eof( ) go 4 go 4 list list

17、?eof( ) ?eof( ) (2) (2) 文件起始测试函数文件起始测试函数 BOF()BOF() 功能:测试表文件记录指针是否指向起始位置,功能:测试表文件记录指针是否指向起始位置,表表 文件起始位置在首记录的前面,也称为文件头文件起始位置在首记录的前面,也称为文件头。 若指针指向起始位置,函数值为逻辑真(若指针指向起始位置,函数值为逻辑真(.T.T.),), 否则为假(否则为假(.F.F.)。)。 例:例: use xsqkuse xsqk go top go top ?eof( ), bof( ) ?eof( ), bof( ) skip -1 skip -1 ?eof( ), bo

18、f( ) ?eof( ), bof( ) (3) 记录号测试函数记录号测试函数 RECNORECNO 格式:格式:RECNO(RECNO( ) ) 功能:给出功能:给出 指定的工作区中打开的指定的工作区中打开的数数 据表的当前记录号据表的当前记录号; 无参数时,给出当前表当前记录号;无参数时,给出当前表当前记录号; 没有打开的表时,返回值为没有打开的表时,返回值为0 0; 如果指针指向文件尾,函数值为表文件中的记如果指针指向文件尾,函数值为表文件中的记 录数加录数加1 1,如果记录指针指向文件首,函数值,如果记录指针指向文件首,函数值 为最上面记录的记录号为最上面记录的记录号 (4) (4)

19、记录数测试函数记录数测试函数 RECCOUNTRECCOUNT 格式:格式:RECCOUNT(RECCOUNT( ) ) 功能:测试功能:测试 指定的工作区中指定的工作区中数据表的数据表的 记录个数记录个数 无参数时,测试当前工作区中数据表中的记录无参数时,测试当前工作区中数据表中的记录 个数;个数; 若没有打开的数据表,返回值为若没有打开的数据表,返回值为0 0 格式格式:FOUND ( )FOUND ( ) 功能:测试执行功能:测试执行LOCATELOCATE、CONTINUECONTINUE、SEEKSEEK和和FINDFIND等等 定位命令的定位是否成功,定位成功则定位命令的定位是否成

20、功,定位成功则FOUND ( )FOUND ( ) 的函数值为的函数值为.T.T.,否则为,否则为.F.F.。 例:例:locate for locate for 姓名姓名=“=“关温丹关温丹” ?found()?found() 2 2)insert:insert:在表的当前记录之后插入新的记录在表的当前记录之后插入新的记录 格式:格式:insert blankinsert blank insert before blank insert before blank 例:在例:在“学生学生1”1”表的第三条纪录前插入一条新记录(表的第三条纪录前插入一条新记录(XS0412XS0412, 肖慧,女

21、,肖慧,女,1980-09-161980-09-16,上海,英语),上海,英语) go go 3 3 Insert beforeInsert before 2 2、删除记录命令、删除记录命令 delete for delete for 条件条件:逻辑删除逻辑删除 recall for recall for 条件条件:恢复被逻辑删除的记录恢复被逻辑删除的记录 packpack:物理删除物理删除 zapzap:物理删除表中全部记录,表结构仍然存在:物理删除表中全部记录,表结构仍然存在 注:注:deletedelete不加条件,逻辑删除当前记录不加条件,逻辑删除当前记录 recallrecall不加

22、条件,给当前记录去掉删除标记不加条件,给当前记录去掉删除标记 例例1 1:逻辑删除学生表中性别为:逻辑删除学生表中性别为“女女”的记录的记录 例例2 2:给:给“吴云芳吴云芳”恢复删除标记恢复删除标记 例例3 3:将被逻辑删除的记录彻底删除:将被逻辑删除的记录彻底删除 例例4 4:将表中记录全部删除:将表中记录全部删除 recallrecall for for 姓名姓名= =“吴云芳吴云芳” ” Delete for Delete for 性性别别= =“女女” ” PackPack zapzap 3 3、修改记录命令、修改记录命令 Edit Edit 打开编辑窗口打开编辑窗口 changec

23、hange replace replace 范围范围 字段名字段名 with with 表达式表达式 for for 条件条件 直接替换表中记录的值直接替换表中记录的值 all: all: 全部记录全部记录 Next n: Next n: 从当前记录开始的从当前记录开始的n n条记录条记录 Rest: Rest: 从当前记录开始到最后一条记录从当前记录开始到最后一条记录 Record n:Record n:具体的某条记录具体的某条记录 n+1 例例1 1:将:将“成绩成绩”表中所有学生的成绩加表中所有学生的成绩加1010分分 例例2 2:将:将“成绩成绩”表中所有女学生的成绩加表中所有女学生的

24、成绩加1010分分 例例3 3:将:将“学生学生”表中表中“王子航王子航”的出生日期改为的出生日期改为19861986 年年1212月月1818日日 useuse 成成绩绩 replace allreplace all 成成绩绩 withwith 成成绩绩+1+1 0 0 replacereplace 成成绩绩 with with 成成绩绩+10 for +10 for 性性别别= =“女女” ” replacereplace 出生日期出生日期 withwith 1986-12-18 for 1986-12-18 for 姓名姓名= =“王子航王子航” ” 第三章数据库和表第三章数据库和表 4

25、 4、显示记录命令、显示记录命令 listlist字段名字段名for for 条件条件 display display字段名字段名for for 条件条件 不加条件时:不加条件时:listlist显示全部记录显示全部记录 displaydisplay显示当前记录显示当前记录 区区 别别 第三章数据库和表第三章数据库和表 例例1 1:显示:显示“学生学生”表中所有记录表中所有记录 例例2 2:显示:显示“学生学生”表中第表中第3 3条记录条记录 例例3 3:显示:显示“学生学生”表中所有学生的姓名,出生日期和所属院表中所有学生的姓名,出生日期和所属院 系系 例例4 4:显示:显示“学生学生”表中

26、第三个学生的姓名,出生日期和所属表中第三个学生的姓名,出生日期和所属 院系院系 例例5 5:显示:显示“学生学生”表中出生日期在表中出生日期在19841984年年1212月月1212日之前的学日之前的学 生的姓名,出生日期和所属院系生的姓名,出生日期和所属院系 例例6 6:显示:显示“学生学生”表中出生日期在表中出生日期在19841984年年1212月月1212日之后的学日之后的学 生的姓名,出生日期和所属院系,且不显示记录号生的姓名,出生日期和所属院系,且不显示记录号 listlist go 3go 3 displaydisplay list list 姓名姓名, ,出生日期出生日期, ,所

27、属院系所属院系 go 3go 3 display display 姓名姓名, ,出生日期出生日期, ,所属院系所属院系 List/display List/display 姓名姓名, ,出生日期出生日期, ,所属院系所属院系 for for 出生日期出生日期1984-12-121984-12-12 off1984-12-12 off 3.5 3.5 表数据的统计表数据的统计 1 1计数命令计数命令 格式:格式:COUNT COUNT FOR FOR WHILE WHILE TO TO 功能:计算指定打开表中指定范围内满足条件的功能:计算指定打开表中指定范围内满足条件的 记录数。记录数。 例:例

28、:use xsqkuse xsqk count for count for 性别性别=“=“男男” ” to xbto xb ?xb?xb 2 2求和命令求和命令 SUM SUM FOR FOR WHILE WHILE TO TO | | ARRAY ARRAY 功能:在打开的表中,对功能:在打开的表中,对 的各个的各个 表达式分别求和。显示在屏幕上、赋给变量或表达式分别求和。显示在屏幕上、赋给变量或 数组数组 例:例:use xsqkuse xsqk sum for sum for 性别性别=“=“男男” ” 身高,体重身高,体重/2 to sg, /2 to sg, tztz 3 3求平均

29、值命令求平均值命令 格式:格式:AVERAGE AVERAGE FOR FOR WHILE WHILE TO TO | | ARRAY ARRAY 功能:在打开的表中,对功能:在打开的表中,对 中的各个中的各个 表达式分别求平均值。省略各表达式对所有数值表达式分别求平均值。省略各表达式对所有数值 字段求平均值字段求平均值 例:例:use xsqkuse xsqk average for average for 性别性别=“=“男男” ” 身高,体重身高,体重/2 to /2 to asg, atzasg, atz ?asg, atz?asg, atz 4 4计算命令计算命令 格式:格式:CAL

30、CULATE CALCULATE FOR FOR WHILE WHILE TO TO | | ARRAY ARRAY 功能:在打开的表中,分别计算功能:在打开的表中,分别计算 中表达中表达 式的值。式的值。 说明:表达式中至少包括系统规定的八个函数之一:说明:表达式中至少包括系统规定的八个函数之一: AVGAVG、CNTCNT、MAXMAX、MINMIN、SUMSUM、NPVNPV、STDSTD、VARVAR。 举例:举例:use xsqkuse xsqk calc avg(calc avg(身高身高), cnt(), cnt(身高身高) for ) for 性别性别 =“=“男男” ” to

31、 asg , csgto asg , csg 5 5汇总命令汇总命令 格式:格式:TOTAL TO TOTAL TO ON ON FIELDS FIELDS FOR FOR WHILE WHILE 功能:在当前表中,分别对功能:在当前表中,分别对 值相同的记录的数值型值相同的记录的数值型 字段值求和,并将结果存入一个新表。一组关键字值相同的字段值求和,并将结果存入一个新表。一组关键字值相同的 记录在新表中产生一个记录,对于非指定字段只将关键字记录在新表中产生一个记录,对于非指定字段只将关键字 值相同的第一个记录的字段值放入新记录值相同的第一个记录的字段值放入新记录 说明:说明: 指排序字段或索

32、引关键字;指排序字段或索引关键字;FIELDSFIELDS子句的子句的 指出要汇总的字段,若缺省,则对表中所指出要汇总的字段,若缺省,则对表中所 有数值型字段汇总;缺省有数值型字段汇总;缺省 指表中所有记录。指表中所有记录。 举例:举例:total on total on 性别性别 to nsortto nsort 总总 结结 1 1、使用浏览器操作表、使用浏览器操作表 2 2、使用命令操作表、使用命令操作表 (1 1)增加记录命令)增加记录命令 (2 2)删除记录命令)删除记录命令 (3 3)修改记录命令)修改记录命令 (4 4)显示记录命令)显示记录命令 (5 5)查询定位命令)查询定位命

33、令 第三章数据库和表第三章数据库和表 习题习题1 1: 2008年4月 MODIFY STRUCTUREMODIFY STRUCTURE命令的功能是(命令的功能是( B B ) A A)修改记录值)修改记录值 B B)修改表结构)修改表结构 C C)修改数据库结构)修改数据库结构 D D)修改数据库或表结构)修改数据库或表结构 第三章数据库和表第三章数据库和表 习题习题2 2: 2007年9月 在在Visual FoxProVisual FoxPro中修改表结构的非中修改表结构的非SQLSQL命令是命令是 (数据库系数据库系 统阶统阶 段段) MODIFY STRUCTURE 第三章数据库和表

34、第三章数据库和表 习题习题3 3: 2008年4月 要为当前表所有性别为要为当前表所有性别为”女女”的职工增加的职工增加100100元工资,应使用元工资,应使用 命令(命令( B B ) A A)REPLACE ALLREPLACE ALL工资工资 with with 工资工资+100+100 B B) REPLACE ALLREPLACE ALL工资工资 with with 工资工资+100 FOR +100 FOR 性别性别= =“女女” C C)CHANGE ALLCHANGE ALL工资工资 with with 工资工资+100+100 D D)CHANGE ALLCHANGE ALL

35、工资工资 with with 工资工资+100 FOR +100 FOR 性别性别= =“女女” 第三章数据库和表第三章数据库和表 习题习题2 2: 2008年4月 在在Visual FoxProVisual FoxPro中中, ,使用使用LOCATE ALLLOCATE ALL命令按条件对表中的记录命令按条件对表中的记录 进行查找,若查不到记录,函数进行查找,若查不到记录,函数EOF()EOF()的返回值应是的返回值应是 ( ) .T. 一、索引基本概念一、索引基本概念 第三章数据库和表第三章数据库和表 索引是通过指针改变数据表的观察顺序,而表中记索引是通过指针改变数据表的观察顺序,而表中记

36、 录的实际位置没有任何变化录的实际位置没有任何变化 Xs.dbfXs.dbf 按学号建立索引按学号建立索引 不允许出现重复值和空值,一个表不允许出现重复值和空值,一个表 中只能有一个主索引。中只能有一个主索引。 同主索引特点一样,就是一个表中可同主索引特点一样,就是一个表中可 以有多个候选索引。以有多个候选索引。 字段值和索引项都可以不唯一。字段值和索引项都可以不唯一。 一个表中可以有多个。一个表中可以有多个。 索引项的唯一,而不是字段值的唯一,一个表索引项的唯一,而不是字段值的唯一,一个表 中可以有多个。中可以有多个。 索引可以提高索引可以提高 查询速度。查询速度。 1 1、主索引:、主索引

37、: 2 2、候选索引:、候选索引: 3 3、普通索引:、普通索引: 4 4、唯一索引:、唯一索引: 索引索引 一、索引基本概念一、索引基本概念 第三章数据库和表第三章数据库和表 第三章数据库和表第三章数据库和表 1 1)一个表中只能建立一个主索引,但可以)一个表中只能建立一个主索引,但可以 建立多个候选索引、唯一索引和普通索引建立多个候选索引、唯一索引和普通索引 2 2)只有数据库表才能建立主索引,自由表)只有数据库表才能建立主索引,自由表 中只能建立其他三种索引中只能建立其他三种索引 注注 第三章数据库和表第三章数据库和表 二、用命令的方式建立索引二、用命令的方式建立索引 INDEX ON

38、INDEX ON TAG TAG ASCENDING | DESCENDINGASCENDING | DESCENDING USE USE 学生信息表学生信息表 INDEX ON INDEX ON 学号学号 TAG TAG 学号学号 LISTLIST INDEX ON INDEX ON 性别性别+str(+str(身高身高,4,2) TAG X1,4,2) TAG X1 LIST LIST 例例 建立结构复合索引文件建立结构复合索引文件 1 1)按性别降序排列,性别相同按姓名的降序排列,索引标识)按性别降序排列,性别相同按姓名的降序排列,索引标识 为为BB1BB1 INDEX ON INDEX

39、 ON 性别性别+ +姓名姓名 DESC TAG BB1DESC TAG BB1 2 2)按性别升序排列,性别相同按数学成绩的升序排列)按性别升序排列,性别相同按数学成绩的升序排列, , 索引索引 标识为标识为BB2BB2 INDEX ON INDEX ON 性别性别+STR(+STR(数学数学) TAG BB2) TAG BB2 3 3)按数学英语成绩的和的降序建索引,索引标识为)按数学英语成绩的和的降序建索引,索引标识为BB3BB3 INDEX ON INDEX ON 数学数学+ +英语英语 DESC TAG BB3DESC TAG BB3 4 4)按数学成绩降序排列,如果数学成绩相等,按

40、英语成绩的)按数学成绩降序排列,如果数学成绩相等,按英语成绩的 降序排列,索引标识为降序排列,索引标识为BB4BB4 INDEX ON STR(INDEX ON STR(数学数学)+STR()+STR(英语英语) DESC TAG BB4) DESC TAG BB4 第三章数据库和表第三章数据库和表 三、在表设计器中建立索引三、在表设计器中建立索引 1 1、单项索引(基于一个字段)、单项索引(基于一个字段) 2 2、复合字段索引(基于多个字段)、复合字段索引(基于多个字段) 第三章数据库和表第三章数据库和表 三、在表设计器中建立索引三、在表设计器中建立索引 1 1、单项索引、单项索引 (1 1

41、)字段选项卡:选中要设置索引的字段,选择升序或降序)字段选项卡:选中要设置索引的字段,选择升序或降序 (2 2)索引选项卡:设置索引名、索引类型和索引表达式)索引选项卡:设置索引名、索引类型和索引表达式 字段名字段名 第三章数据库和表第三章数据库和表 2 2、复合字段索引、复合字段索引 直接在索引选项卡中设置直接在索引选项卡中设置 确定主控索引确定主控索引 主控索引主控索引 一个表可以建立或打开一个或多个索引,但同一时刻一个表可以建立或打开一个或多个索引,但同一时刻 只有一个索引起作用,称为只有一个索引起作用,称为当前索引或主控索引当前索引或主控索引。此时表。此时表 的逻辑顺序以主控索引的顺序

42、排列。主控索引可随时指定的逻辑顺序以主控索引的顺序排列。主控索引可随时指定 1 1用命令指定主控索引用命令指定主控索引 格式:格式:SET ORDER TO SET ORDER TO | TAG | TAG 索引名索引名 功能:指定一个主控索引功能:指定一个主控索引 说明:数值表达式指出索引列表中第几个索引为主控索引说明:数值表达式指出索引列表中第几个索引为主控索引 set order to set order to 是取消主控索引是取消主控索引 SET ORDER TO TAG X1 SET ORDER TO TAG X1 SET ORDER TO 1SET ORDER TO 1 3.5.2

43、 3.5.2 索引查询索引查询 索引查询索引查询 在索引文件中进行的查询称为索引查询在索引文件中进行的查询称为索引查询 1 1、SEEKSEEK命令命令 格式:格式:SEEK SEEK ORDER ORDER 索引序号索引序号TAG TAG 索引名索引名 功能:在已打开索引的表中查找符合条件的第一个记录。功能:在已打开索引的表中查找符合条件的第一个记录。 说明:说明:1 1、 的值是索引项或索引关键字的值的值是索引项或索引关键字的值 2 2、可以用索引序号或索引名指定按哪一个索引定位、可以用索引序号或索引名指定按哪一个索引定位 举例:举例:seek seek 11610081161008 or

44、der 4 order 4 &第第4 4个索引按个索引按 学号建立学号建立 seek 1.72seek 1.72&主控索引按身高建立主控索引按身高建立 skipskip 如果某个索引不再使用了则可以删除它。命令格式如下:如果某个索引不再使用了则可以删除它。命令格式如下: DELETE TAG ALL | 关联 关联的概念关联的概念 在在Visual FoxProVisual FoxPro中,多个数据表之间存在一定联中,多个数据表之间存在一定联 系,可以在表之间建立这种联系,称为关联。系,可以在表之间建立这种联系,称为关联。 表的关联分为表的关联分为永久关联永久关联和和临时关联临时关联。 关联的

45、目的就是令建立关联的表之间存在一种制约关联的目的就是令建立关联的表之间存在一种制约 关系或指针联动关系。关系或指针联动关系。 临时关联临时关联的概念:不同工作区的指针建立一种临时的联动关的概念:不同工作区的指针建立一种临时的联动关 系,使一个表(父表)的指针移动时另一个表(子表)的系,使一个表(父表)的指针移动时另一个表(子表)的 记录指针随之移动到满足关联条件的记录上。记录指针随之移动到满足关联条件的记录上。 3.7.1 3.7.1 永久性关联永久性关联 永久关联的概念永久关联的概念 在在“数据库设计器数据库设计器”中,通过链接不同表的索引可以中,通过链接不同表的索引可以 很方便地建立表之间

46、的关系,很方便地建立表之间的关系,这种在数据库中建立的关联这种在数据库中建立的关联 被作为数据库的一部分保存起来被作为数据库的一部分保存起来,所以称为,所以称为永久关联永久关联。 永久关联对表的要求永久关联对表的要求 建立关联的两个表必须在同一数据库中,并确定一个表建立关联的两个表必须在同一数据库中,并确定一个表 为主动表为主动表( (为主表或父表为主表或父表) ),另一个表为被动表,另一个表为被动表( (子表子表) ) 两个表要具有相同属性的字段,并且每个表都要以该字两个表要具有相同属性的字段,并且每个表都要以该字 段建立索引。其中主表中的字段段建立索引。其中主表中的字段( (称主关键字称主

47、关键字) )建立的索建立的索 引必须是主索引或候选索引,子表中的字段引必须是主索引或候选索引,子表中的字段( (外部键关外部键关 键字键字) )可建立任意索引。可建立任意索引。 建立永久关联建立永久关联 1)1)建立或打开数据库建立或打开数据库 2)2)添加表添加表 3)3)建立索引建立索引 4)4)用鼠标将主表中主索引或候选索引拖到子表中用鼠标将主表中主索引或候选索引拖到子表中相匹配相匹配的索引上的索引上 习习 题题 20062006年年4 4月月 1 1、不允许出现重复字段值的索引是、不允许出现重复字段值的索引是 ( ( A A ) ) A)A)侯选索引和主索引侯选索引和主索引 B)B)普

48、通索引和惟一索引普通索引和惟一索引 C)C)惟一索引和主索引惟一索引和主索引 D)D)惟一索引惟一索引 A A 习习 题题 20052005年年4 4月月 4 4、在创建数据库表结构时,为该表中一些字段建立普通索引,、在创建数据库表结构时,为该表中一些字段建立普通索引, 其目的是(其目的是(D D) A) A) 改变表中记录的物理顺序改变表中记录的物理顺序 B) B) 为了对表进行实体完整性约束为了对表进行实体完整性约束 C) C) 加快数据库表的更新速度加快数据库表的更新速度 D) D) 加快数据库表的查询速度加快数据库表的查询速度 D D 习习 题题 20042004年年4 4月月 7 7

49、、以下关于主索引和候选索引的叙述正确的是、以下关于主索引和候选索引的叙述正确的是( (A A) ) A A)主索引和候选索引都能保证表记录的惟一性)主索引和候选索引都能保证表记录的惟一性 B B)主索引和候选索引都可以建立在数据库表和自由表上)主索引和候选索引都可以建立在数据库表和自由表上 C C)主索引可以保证表记录的惟一性,而候选索引不能)主索引可以保证表记录的惟一性,而候选索引不能 D D)主索引和侯选索引是相同的概念)主索引和侯选索引是相同的概念 A A 第三章数据库和表第三章数据库和表 数据完整性包括:数据完整性包括: 实体完整性实体完整性 域完整性域完整性 参照完整性参照完整性 第

50、三章数据库和表第三章数据库和表 一、实体完整性一、实体完整性 保证表中记录惟一的特性,即在一个表中不允许保证表中记录惟一的特性,即在一个表中不允许 有重复的记录。有重复的记录。 注:用主关键字或候选关键字来保证实体完整性注:用主关键字或候选关键字来保证实体完整性 二、域完整性二、域完整性 (在表设计器中,设置字段有效性规则)(在表设计器中,设置字段有效性规则) 例如:设置例如:设置“学生学生”表中性别字段的有效性规则:性别表中性别字段的有效性规则:性别 必须为必须为“男男”或或“女女”,错误提示信息为,错误提示信息为“性别为男性别为男 或女或女”,默认值为,默认值为“男男” 第三章数据库和表第

51、三章数据库和表 规则:逻辑表达式规则:逻辑表达式 信息:字符串表达式信息:字符串表达式 默认值:由字段的类型决定的默认值:由字段的类型决定的 性别性别=男男.OR.OR.性别性别=女女 数据表之间的参照完整性设置数据表之间的参照完整性设置 参照完整性的概念参照完整性的概念 所谓参照完整性,简单地说就是控制数据一致性,所谓参照完整性,简单地说就是控制数据一致性, 尤其是不同表之间关系的规则。尤其是不同表之间关系的规则。 建立永久关联的目的就是利用关联表之间的制约机建立永久关联的目的就是利用关联表之间的制约机 制互相参照,控制表间数据的一致性和完整性。这种制制互相参照,控制表间数据的一致性和完整性

52、。这种制 约机制会在用户执行插入、修改或删除记录等编辑记录约机制会在用户执行插入、修改或删除记录等编辑记录 的操作时,发挥其限制作用。的操作时,发挥其限制作用。 参照完整性有效限制了对表中数据的非法编辑。具参照完整性有效限制了对表中数据的非法编辑。具 体说参照完整性是指不允许在相关数据表中引用不存在体说参照完整性是指不允许在相关数据表中引用不存在 的记录。的记录。 第三章数据库和表第三章数据库和表 三、参照完整性三、参照完整性 1 1、建立表之间的联系(通过公共字段)、建立表之间的联系(通过公共字段) (1 1)在父表建立主索引)在父表建立主索引 (2 2)在子表建立普通索引)在子表建立普通索

53、引 第三章数据库和表第三章数据库和表 2 2、设置参照完整性、设置参照完整性 1 1)清理数据库)清理数据库( (注意注意:数据库不能以只读形式打开:数据库不能以只读形式打开) ) 数据数据 | | 清理数据库清理数据库 2 2)在连线上单击右键,选择)在连线上单击右键,选择“编辑参照完整性编辑参照完整性” 20062006年年4 4月月 (9)(9)在定义字段有效性规则时在定义字段有效性规则时, ,在规则框中输入的表达式类型在规则框中输入的表达式类型 是是_。 (10)(10)在在visual FoxProvisual FoxPro中中, ,主索引可以保证数据的主索引可以保证数据的 _完整完整 性。性。 (11) (11) 在创建数据库表结构时,为该表指定了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论