版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章 数据库及表的操作,学 习 要 点,7.1 项目管理器 7.2 数据库的操作 7.3 表的基本操作 7.4 索引 7.5 数据完整性,一、建立项目 方法: 1)文件|新建|项目 2)create project 项目名,第七章 数据库和表,二、 DB基本概念 1、数据库 (DB): 2、DB的扩展名 .dbc (数据库文件) .dct (数据库备注文件) .dcx (数据库索引文件),第七章 数据库和表,第七章 数据库和表,3、建立DB 方法: 1)项目管理器 2)“新建”对话框 3)用命令:create database DB名称,4、打开DB 方法: 1)项目管理器 2)“打开”对话
2、框 3)用命令:open database 数据库名 例:open database 图书管理(不打开数据库设计器) 注:同一时间可以打开多个DB,但只有一个是当前数据库,第七章 数据库和表,第七章 数据库和表,5、修改DB 方法: 用命令:modify database 例: modify database 图书管理 注:打开DB设计器,第七章 数据库和表,6、删除DB 方法: 1)项目管理器 2)用命令:delete database 数据库名,区别,7、关闭DB 方法: 1) Close database(关闭当前DB) 2)Colse all(关闭所有DB),第七章 数据库和表,一、表
3、的基本概念 1、表的分类 自由表 数据库表 2、表的扩展名 .dbf 表文件的扩展名 .fpt 有备注型或通用型字段的表扩展名,第七章 数据库和表,设置默认目录 作用:所建立的文件会自动保存到该文件夹中。 设置方法: (1)命令方式:set default to c:vfp (2)菜单方式: 工具-选项 -文件位置-默认目录,二、表的操作 1、建立表 方法: 1)使用DB设计器 2)“新建”对话框 3)create 表名,第七章 数据库和表,第七章 数据库和表,缺值或还没有确定值,1、字段名必须以字母或汉字开头 2、字段名可以由字母、汉字、数字和下划线组成 3、字段名不能包含空格 4、数据库表
4、字段名最长为128个字符,1、字符型(C):254个字符 2、货币型(Y);8个字符 3、日期型(D):8个字符 4、日期时间型(T):8个字符 5、逻辑型(L):1个字符 6、数值型(N):20个字符 7、双精度型(B):8个字符 8、浮点型(F):20个字符 9、整型(I):4个字符 10、通用型(G):4个字符 11、备注型(M):4个字符,关系的属性名或表的列名,说明: NULL.表示是否充许字段值为空值,它与空串和0具有不同的意义,空值就是缺值或该值还没确定,而不是任何意义的数据。关键字段不允许设为空值。空值不是一种数据类型,只是一个值,输入空值时Ctrl+0,第七章 数据库和表,2
5、、打开表 方法: use 表名 3、表的关闭 use & 关闭当前使用的表 close tables & 关闭当前数据库中所有打开的表 close tables all & 关闭所有打开的表 close all & 关闭所有打开的表、程序文件及表单等 clear all & 关闭所有的表、程序文件及表单等,清 除内存变量 4、修改表结构(打开表设计器进行修改) 方法: 1)表设计器 2)modify structure 注: modify structure 后面不接表名,5、 结构与数据的同时复制 Copy to fields for | while 功能:将满足条件的记录按指定的结构复制到
6、新的表文件。 use xsqk copy to xsqk1 copy to xsqk2 for 身高1.7 fields 姓名, 学号, 体重, 身高,6只复制表文件结构 COPY STRUCTURE TO FIELDS 功能:按指定的字段表复制表结构到一个新文件,若不指定字段表,则复制与当前表相同的结构。 use xsqk copy structure to xsqk3 fields 姓名, 学号, 身高, 体重 use xsqk3 list structure,第七章 数据库和表,表的基本操作 一、使用浏览器操作表 1、打开浏览器 方法(1)表设计器 (2)use 表名 browse 2、
7、修改记录 3、增加记录 方法(1) “表”菜单 “追加新记录” (2)Ctrl+Y,第七章 数据库和表,一、使用浏览器操作表 4、删除记录 (1)逻辑删除: 在记录旁边做删除标记 菜单:表切换删除标记(Ctrl+T或鼠标点击) (2)物理删除:彻底删除 菜单:表彻底删除 二者区别:逻辑删除只加删除标记,物理删除是建立在逻辑删除基础之上的,将加了删除标记的记录彻底删除,重复操作可去掉删除标记,第七章 数据库和表,二、使用命令操作表 (前提:表处于打开状态) 1、增加记录命令 1)append:在表的尾部增加记录 格式:append append blank append from 表名,将一个表
8、的 中的内容追 加到另一个 表的尾部,例如:将学生1表的记录追加到学生表的尾部 use 学生 append from 学生1 browse,第七章 数据库和表,记录指针(了解):,与指针及表相关的测试函数,(1)文件结束测试函数 EOF() 功能:测试记录指针是否指向文件结束位置(表文件尾),表文件尾是指最后一条记录的后面位置。若指针指向结束位置,函数值为逻辑真(.T.),否则函数值为假(.F.)。 举例: go bottom ?eof( ) skip ?eof( ) go 4 list ?eof( ),(2) 文件起始测试函数 BOF() 功能:测试表文件记录指针是否指向起始位置,表文件起始
9、位置在首记录的前面,也称为文件头。若指针指向起始位置,函数值为逻辑真(.T.),否则为假(.F.)。 举例:use xsqk go top ?eof( ), bof( ) skip -1 ?eof( ), bof( ),(3) 记录号测试函数 RECNO 格式:RECNO() 功能:给出指定的工作区中打开的数据表的当前记录号;无参数时,给出当前表当前记录号;没有打开的表时,返回值为0;如果指针指向文件尾,函数值为表文件中的记录数加1,如果记录指针指向文件首,函数值为最上面记录的记录号 举例:use xsqk ?recno( ) skip 1 ?recno( ) go bottom ?recno
10、( ) skip ?recno(),(4) 记录数测试函数 RECCOUNT 格式:RECCOUNT() 功能:测试指定的工作区中数据表的记录个数 无参数时,测试当前工作区中数据表中的记录个数; 若没有打开的数据表,返回值为0 举例:USE xsqk ?BOF( ), RECNO( ) SKIP 1 ?BOF( ), RECNO( ), RECCOUNT( ) GO BOTTOM ?EOF( ), RECNO( ), RECCOUNT( ) SKIP ?EOF( ), RECNO( ), RECCOUNT( ),(8) 检索测试函数 FOUND 格式:FOUND ( ) 功能:测试执行LOCA
11、TE、CONTINUE、SEEK和FIND等定位命令的定位是否成功,定位成功则FOUND ( )的函数值为.T.,否则为.F.。 举例:locate for 姓名=“关温丹” ?found(),2)insert:在表的任意位置插入新的记录 格式:insert blank insert before blank 例:在“学生1”表的第三条纪录前插入一条新记录(XS0412,肖慧,女,1980-09-16,上海,英语),第七章 数据库和表,go 3 Insert before,第七章 数据库和表,2、删除记录命令 delete for 条件:逻辑删除 recall for 条件:恢复被逻辑删除的记
12、录 pack:物理删除 zap:物理删除表中全部记录,表结构仍然存在 注:delete不加条件,逻辑删除当前记录 recall不加条件,给当前记录去掉删除标记,第七章 数据库和表,例1:逻辑删除学生表中性别为“女”的记录 例2:给“李双玉”恢复删除标记 例3:将被逻辑删除的记录彻底删除 例4:将表中记录全部删除,recall for 姓名=“吴云芳”,Delete for 性别=“女”,Pack,zap,第七章 数据库和表,二、使用命令操作表 3、修改记录命令 Edit 打开编辑窗口 change replace 范围 字段名 with 表达式 for 条件 直接替换表中记录的值,all: 全
13、部记录 Next n: 从当前记录开始的n条记录 Rest: 从当前记录开始到最后一条记录 Record n:具体的某条记录,第七章 数据库和表,例1:将“成绩”表中所有学生的成绩加10分 例2:将“成绩”表中所有女学生的成绩加10分 例3:将“学生”表中“王子航”的出生日期改为1986年12月18日,use 学生成绩 replace all 成绩 with 成绩+10,replace all 成绩 with 成绩+10 for 性别=“女”,replace 出生日期 with 1986-12-18 for 姓名=“吴云芳”,第七章 数据库和表,4、显示记录命令 list字段名for 条件 d
14、isplay字段名for 条件,不加条件时:list显示全部记录 display显示当前记录,区别,第七章 数据库和表,例1:显示“学生”表中所有记录 例2:显示“学生”表中第3条记录 例3:显示“学生”表中所有学生的姓名,出生日期和所属院系 例4:显示“学生”表中第三个学生的姓名,出生日期和所属院系 例5:显示“学生”表中出生日期在1984年12月12日之前的学生的姓名,出生日期和所属院系 例6:显示“学生”表中出生日期在1984年12月12日之后的学生的姓名,出生日期和所属院系,且不显示记录号,list,go 3 display,list 姓名,出生日期,所属院系,go 3 display
15、 姓名,出生日期,所属院系,List/display 姓名,出生日期,所属院系 for 出生日期1984-12-12,List/display 姓名,出生日期,所属院系 for 出生日期1984-12-12 off,二、使用命令操作表 5、 查询定位命令 绝对定位:Go 记录号|top|bottom 相对定位:Skip 数值 条件定位:Locate for 条件 continue,第几个记录,表头,表尾,正数:向下 负数:向上,第七章 数据库和表,第七章 数据库和表,打开学生表,做如下操作: 例1:将“学生”表的记录指针指向表尾 例2:将“学生”表的记录指针指向倒数第二条记录 例3:将“学生”
16、表的记录指针指向表头 例4:将“学生”表的记录指针指向第3条记录 例5:将“学生”表的记录指针向下移动两条记录 例6:将“学生”表的记录指针指向第一个性别为“男”的记录上 例7:将“学生”表的记录指针指向第三个性别为 “男”的记录上,go bottom,Go bottom Skip -1,go top,go 3/skip 2,Skip 2,Locate for 性别=“男”,Locate for 性别=“男” continue continue,表数据的统计,1计数命令 格式:COUNT FOR WHILE TO 功能:计算指定打开表中指定范围内满足条件的记录数。 举例:use xsqk co
17、unt for 性别=“男” to xb ?xb 2求和命令 SUM FOR WHILE TO | ARRAY 功能:在打开的表中,对的各个表达式 分别求和。显示在屏幕上、赋给变量或数组 举例:use xsqk sum for 性别=“男” 身高,体重/2 to sg, tz,3求平均值命令 格式:AVERAGE FOR WHILE TO | ARRAY 功能:在打开的表中,对中的各个表达式分 别求平均值。省略各表达式对所有数值字段求平均值 举例:use xsqk average for 性别=“男” 身高,体重/2 to asg, atz ?asg, atz 4计算命令 格式:CALCULA
18、TE FOR WHILE TO | ARRAY 功能:在打开的表中,分别计算中表达式的值。 说明:表达式中至少包括系统规定的八个函数之一:AVG、 CNT、MAX、MIN、SUM、NPV、STD、VAR。 举例:use xsqk calc avg(身高), cnt(身高) for 性别=“男” to asg , csg,5汇总命令 格式:TOTAL TO ON FIELDS FOR WHILE 功能:在当前表中,分别对值相同的记录的数值型 字段值求和,并将结果存入一个新表。一组关键字值 相同的记录在新表中产生一个记录,对于非指定字段 只将关键字值相同的第一个记录的字段值放入新记录 说明: 指排
19、序字段或索引关键字;FIELDS子句的 指出要汇总的字段,若缺省,则对 表中所有数值型字段汇总;缺省指表中所有 记录。 举例:total on 性别 to nsort,总 结,1、使用浏览器操作表 2、使用命令操作表 (1)增加记录命令 (2)删除记录命令 (3)修改记录命令 (4)显示记录命令 (5)查询定位命令,第七章 数据库和表,习题1: 2008年4月 MODIFY STRUCTURE命令的功能是( B ) A)修改记录值 B)修改表结构 C)修改数据库结构 D)修改数据库或表结构,B,第七章 数据库和表,习题2: 2007年9月 在Visual FoxPro中修改表结构的非SQL命令
20、是 (数据库系 统阶 段),MODIFY STRUCTURE,第七章 数据库和表,习题3: 2008年4月 要为当前表所有性别为”女”的职工增加100元工资,应使用命令( B ) A)REPLACE ALL工资 with 工资+100 B) REPLACE ALL工资 with 工资+100 FOR 性别=“女” C)CHANGE ALL工资 with 工资+100 D)CHANGE ALL工资 with 工资+100 FOR 性别=“女”,B,第七章 数据库和表,习题2: 2008年4月 在Visual FoxPro中,使用LOCATE ALL命令按条件对表中的记录进行查找,若查不到记录,函
21、数EOF()的返回值应是 ( ),.T.,一、索引基本概念,第七章 数据库和表,索引是通过指针改变数据表的观察顺序,而表中记录的实际位置没有任何变化,Xs.dbf 按学号建立索引,不允许出现重复值和空值,一个表 中只能有一个主索引。 同主索引特点一样,就是一个表中可 以有多个候选索引。 字段值和索引项都可以不唯一。 一个表中可以有多个。 索引项的唯一,而不是字段值的唯一,一个表中可以有多个。,索引可以提高查询速度。,1、主索引:,2、候选索引:,3、普通索引:,4、唯一索引:,索引 一、索引基本概念,第七章 数据库和表,第七章 数据库和表,1)一个表中只能建立一个主索引,但可以 建立多个候选索
22、引、唯一索引和普通索引 2)只有数据库表才能建立主索引,自由表 中只能建立其他三种索引,注,第七章 数据库和表,二、用命令的方式建立索引 INDEX ON TAG ASCENDING | DESCENDING USE 学生信息表 INDEX ON 学号 TAG 学号 LIST INDEX ON 性别+str(身高,4,2) TAG X1 LIST,例 建立结构复合索引文件 1)按性别降序排列,性别相同按姓名的降序排列,索引标识为BB1 INDEX ON 性别+姓名 DESC TAG BB1 2)按性别升序排列,性别相同按数学成绩的升序排列, 索引标识为BB2 INDEX ON 性别+STR(数
23、学) TAG BB2 3)按数学英语成绩的和的降序建索引,索引标识为BB3 INDEX ON 数学+英语 DESC TAG BB3 4)按数学成绩降序排列,如果数学成绩相等,按英语成绩的降序排列,索引标识为BB4 INDEX ON STR(数学)+STR(英语) DESC TAG BB4,第七章 数据库和表,三、在表设计器中建立索引 1、单项索引(基于一个字段) 2、复合字段索引(基于多个字段),第七章 数据库和表,三、在表设计器中建立索引 1、单项索引 (1)字段选项卡:选中要设置索引的字段,选择升序或降序 (2)索引选项卡:设置索引名、索引类型和索引表达式,字段名,第七章 数据库和表,2、
24、复合字段索引 直接在索引选项卡中设置,确定主控索引,主控索引 一个表可以建立或打开一个或多个索引,但同一时刻只有一个索引起作用,称为当前索引或主控索引。此时表的逻辑顺序以主控索引的顺序排列。主控索引可随时指定 1用命令指定主控索引 格式:SET ORDER TO | TAG 索引名 功能:指定一个主控索引 说明:数值表达式指出索引列表中第几个索引为主控索引 set order to 是取消主控索引 SET ORDER TO TAG X1 SET ORDER TO 1,3.5.2 索引查询,索引查询 在索引文件中进行的查询称为索引查询 1、SEEK命令 格式:SEEK ORDER 索引序号TAG
25、 索引名 功能:在已打开索引的表中查找符合条件的第一个记录。 说明:1、的值是索引项或索引关键字的值 2、可以用索引序号或索引名指定按哪一个索引定位 举例:seek 1161008 order 4 &第4个索引按学号建立 seek 1.72&主控索引按身高建立 skip,如果某个索引不再使用了则可以删除它。命令格式如下: DELETE TAG ALL | ,关联,关联的概念 在Visual FoxPro中,多个数据表之间存在一定联系,可以在表之间建立这种联系,称为关联。 表的关联分为永久关联和临时关联。 关联的目的就是令建立关联的表之间存在一种制约关系或指针联动关系。,临时关联的概念:不同工作
26、区的指针建立一种临时的联动关系,使一个表(父表)的指针移动时另一个表(子表)的记录指针随之移动到满足关联条件的记录上。,3.7.1 永久性关联,永久关联的概念 在“数据库设计器”中,通过链接不同表的索引可以很方便地建立表之间的关系,这种在数据库中建立的关联被作为数据库的一部分保存起来,所以称为永久关联。 永久关联对表的要求 建立关联的两个表必须在同一数据库中,并确定一个表为主动表(为主表或父表),另一个表为被动表(子表) 两个表要具有相同属性的字段,并且每个表都要以该字段建立索引。其中主表中的字段(称主关键字)建立的索引必须是主索引或候选索引,子表中的字段(外部键关键字)可建立任意索引。,建立
27、永久关联 1)建立或打开数据库 2)添加表 3)建立索引 4)用鼠标将主表中主索引或候选索引拖到子表中相匹配的索引上,习 题,2006年4月 1、不允许出现重复字段值的索引是( A ) A)侯选索引和主索引 B)普通索引和惟一索引 C)惟一索引和主索引 D)惟一索引,A,习 题,2005年4月 4、在创建数据库表结构时,为该表中一些字段建立普通索引,其目的是(D) A) 改变表中记录的物理顺序 B) 为了对表进行实体完整性约束 C) 加快数据库表的更新速度 D) 加快数据库表的查询速度,D,习 题,2004年4月 7、以下关于主索引和候选索引的叙述正确的是(A) A)主索引和候选索引都能保证表
28、记录的惟一性 B)主索引和候选索引都可以建立在数据库表和自由表上 C)主索引可以保证表记录的惟一性,而候选索引不能 D)主索引和侯选索引是相同的概念,A,第七章 数据库和表,数据完整性包括: 实体完整性 域完整性 参照完整性,第七章 数据库和表,一、实体完整性 保证表中记录惟一的特性,即在一个表中不允许有重复的记录。 注:用主关键字或候选关键字来保证实体完整性,二、域完整性 (在表设计器中,设置字段有效性规则) 例如:设置“学生”表中性别字段的有效性规则:性别必须为“男”或“女”,错误提示信息为“性别为男或女”,默认值为“男”,第七章 数据库和表,规则:逻辑表达式 信息:字符串表达式 默认值:
29、由字段的类型决定的,性别=男.OR.性别=女,数据表之间的参照完整性设置,参照完整性的概念 所谓参照完整性,简单地说就是控制数据一致性,尤其是不同表之间关系的规则。 建立永久关联的目的就是利用关联表之间的制约机制互相参照,控制表间数据的一致性和完整性。这种制约机制会在用户执行插入、修改或删除记录等编辑记录的操作时,发挥其限制作用。 参照完整性有效限制了对表中数据的非法编辑。具体说参照完整性是指不允许在相关数据表中引用不存在的记录。,第七章 数据库和表,三、参照完整性 1、建立表之间的联系(通过公共字段) (1)在父表建立主索引 (2)在子表建立普通索引,第七章 数据库和表,2、设置参照完整性 1)清理数据库(注意:数据库不能以只读形式打开) 数据 | 清理数据库 2)在连线上单击右键,选择“编辑参照完整性”,2006年4月,(9)在定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 把握生命的“黄金12秒”:初中七年级综合实践活动课防震减灾避险素养教学设计
- 2026年冶金工业技能鉴定练习题含完整答案详解(典优)
- 2026年四川省安全员-A证考前冲刺练习题附完整答案详解【易错题】
- 2026年一级注册建筑师之建筑物理与建筑设备考试黑钻押题【基础题】附答案详解
- 广西南宁市2025-2026学年八年级下学期期末模拟自测数学试卷(三)人教版(含答案)
- 十六年前的回忆教案
- 2026年氯化工艺复审考试题库及氯化工艺试题及答案解析
- 2026年呼吸机临床应用培训考核试题及答案
- 2025-2025学年部编人教版八年级语文上册 期末复习资料
- 2025年陕西国防工业职业技术学院单招职业技能测试测试卷带答案
- 2024算力中心冷板式液冷发展研究报告
- 煤炭企业组织结构的创新
- 装配式建筑装饰装修技术 课件 模块三 装配式吊顶
- 新青岛版-二年级下册数学-口算题
- 2024年福建省莆田市初中毕业班质量检查二模英语试卷
- 十大零容忍培训
- 药物不良反应培训讲义
- 汉语写作与百科知识样题
- 提高喷射混凝土施工一次验收合格率QC成果
- 2018年山东德州中考英语试卷真题含答案
- 小白船叶圣陶读后感
评论
0/150
提交评论