第三章节 数据库与表的创建和使用考点 |
||||||||
第三章节 数据库与表的创建和使用 (本章在笔试中所占分数为8分左右,上机考核固定12分) 考点1:数据库包含5个项目:表、本地视图、远程视图、连接和存储过程 考点2:数据库表与数据库之间的相关性是通过数据库表文件与数据库文件的双向链接实现 考点3:视图兼有表与查询的特点,视图分为本地视图与远程视图 考点4:存储过程是在数据库数据上执行特定操作并储存在数据库文件中的程序代码 考点5:数据字典是指存储在数据库中用于描述所管理的表和对象的数据,即关于数据的数据,这些数据称为元数据 考点6:每创建一个数据库,都有三个文件生成数据库文件(.dbc),数据库备注文件(.dct),数据库索引文件(.dcx) 考点7:创建数据库:Create DataBase, 打开数据库的命令:Open DataBase 数据库名称 Validate 关闭数据库:Close DataBase 删除数据库后,数据库中的所有表自动转变为自由表 考点8:链接被破坏后,利用Validate DataBase Recover To File命令检查数据库的有效性和更新链接 考点9:表文件的后缀名:.dbf,每张表最多有255个字段,表文件名不能用A—J的单个字母做文件名 考点10:表字段数据类型符号: C(字符型,1个字节)、Y(货币型, 8个字节 )、 N(数值型,8个字节)、F(浮点型,8个字节)、 D(日期型, 8个字节)、T(日期时间型,8字节)、L(逻辑型,1字节)、M(备注型,4字节)、G(通用型,4字节) 考点11:表创建后,系统以扩展名.dbf保存表文件,如果表中有通用型或备注型字段,则自动产生与表名相同且扩展名为.fpt的备注文件 考点12:如果表在当前工作区已经打开,可以使用Modify Structure来修改表结构 考点13:各种数据类型的默认值:数值型: 0 逻辑型:.F. 日期型:空的日期 考点14:表的触发器包括:插入触发器、更新触发器、删除触发器 创建触发器的命令:Create Trigger On 表名 For Delete|Insert|Update As 类型 如:在KC表创建一个删除触发器放置删除操作: Create Trigger On Kc For Delete As .F. 考点15:工作区 VFP启动后,系统默认当前工作区为1,前10个工作区用字母A—J表示 一个工作区中只能打开一张表,系统正在使用的工作区称为当前工作区,即默认的工作区 Select(0)选择当前工作区,Select 0表示选择最小未被使用的工作区 考点16:打开表 Use 表名 打开一个表后,再次打开的命令: use 表名 again in 0,关键字:again 打开一个表后,定义别名的命令: use 表名 alias jiaoshi in 4, 关键字:alias 考点17:关闭表 关闭所有的表:Close tables all 关闭当前表:use 关闭某个工作区表: use in 工作区号 考点18:表的独占与共享 Use xs Shared &&共享方式打开xs表 Use xs Exclusive &&以独占方式打开xs表 考点19:使用Insert Into命令追加记录 Insert Into 表名(字段名1,字段名2) Values(值1,值2) 使用Append命令追加一条空记录到表中, Append From批量录入记录 考点20:浏览窗口 浏览当前表:Browse 记录的筛选:Set Filter To 限制对字段的访问:Set Field To 考点21:对表记录操作函数 (1)Eof()用来判断记录指针是否指向到表中最后一条记录的后边,在后边表示.T.,否则为.F. (2)Bof()表示记录指针指向到记录的最上面一条记录的上边时表示.T.,否则为.F. (3)RecNo():记录指针的位置,也就是第几条记录 (4)GOTO命令:让记录指针移动到记录的位置 GoTo Top:移动到最上面一条记录 Goto Bottom :移动到最下面一条记录 (5)Skip命令:逻辑移动指针, skip 1从当前记录指针向下移动一条,skip -1从当前记录指针向上移动一条 (6)Locate命令:条件定位,Continue命令 考点22:更新命令: 1.Update 表名 set 字段名1=值,字段名2=值 Where 例:用Update-Sql命令修改ts表中作者字段(zz,c)的值时,若要在所有记录的作者后面加汉字”等”,可以使用命令: Update ts set zz=alltrim(zz)+”等” 2.Replace语句: Replace 字段 with 数值 use ts replace zz with zz+”等” 两者区别:Replace只能对当前打开的表更新数据,Update可以直接对表更新 考点23:删除语句 (1) 给记录加上删除标记 Delete From 表名 Where (2) 恢复删除记录 ReCall &&恢复当前记录 Recall All For xb=”男” &&恢复所有性别为男的记录 Recall All &&恢复所有记录 (3)彻底删除数据: Pack命令的作用是将有删除标记的记录删除 Zap命令的作用是删除所有数据,不管是否有删除标记 设置对带有删除标记的记录的访问: Set Deleted on:忽略标有删除标记的记录 Set Deleted off:允许访问有删除标记的记录 考点24:数据的复制: Copy to xs01 &&拷贝当前表到xs01表中 Copy to xs01 sdf &&拷贝当前表到xs01文本文件中,关键字:sdf Copy to xs01 xls &&拷贝当前表到xs01 Excel文件中, 关键字:xls 考点25:索引 (1) 不能基于备注型字段与通用型字段建立索引 (2)索引文件类型包括结构复合索引文件、非结构复合索引文件、独立索引文件,索引的类型包括:候选索引,主索引,普通索引,唯一索引 (3)设置主控索引的方法: 打开表的同时指定主控索引: use xs order xh &&主控索引为xh 打开表后再设置主控索引 Use xs Set order to xh &&主控索引为xh 例如:课程表(kc)中含有字段学分xf N(3,1),课程代号 kcdh C(10),要求先按xf字段排序,xf相同时再按课程代号排序的表达式为: Str(xf)+kcdh &&因为xf是数值型,所以要转换成字符型 考点26: 用Create Table创建表 例如:创建一张表stu,包含字段:xm 字符型(10) 不为空,csrq 日期型,ck 货币型,js 备注型,sfdy 逻辑型,sxcj 数值型(3,0) Create Table stu(xm c(10) not null, csrq D, ck Y , js M, sfdy L, sxcj N(3,0)) 考点27: 表结构的修改 增加一个字段命令:Alter Table 表名 add column 列名 增加一个主索引:Alter Table js Add Primary Key jybh Tag jybh 设置字段的有效性:Alter Table Js Alter Column Set Check gzrq<csrq Error ‘出生日期必须大于工作日期’ 设置字段的默认值:Alter Table Js Alter Column xb Set Default ‘男’ 删除一个字段命令:alter table 表名 drop column 列名 删除一个字段的索引命令:alter table 表名 drop check 索引名 考点28:数据库表的参照完整性规则包括:更新规则、删除规则和插入规则,更新规则与删除规则都包括级联、限制和忽略,而插入规则只有两种:限制和忽略 考点29:VFP有三类完整性:实体完整性,参照完整性,用户自定义完整性 实体完整性包括:字段的有效性规则、记录有效性规则,主索引 参照完整性包括:表的触发器 考点30:通过字段级、记录级和表间三级完整约束,有效的实现了数据的完整性和一致性 考点31:DBGetPROP()函数 考点32:其他常用表函数 Select(0):返回当前工作区号 Select(1):返回当前未被使用的最大工作区号 注意跟select 0 ,select 1的区分 Select 0表示选择最小未被使用的最小工作区 Select 1表示选择第1个工作区 Fcount():当前表中字段个数 典型试题: 一:选择题 1.表(table)是存储数据的容器.在下列有关VFP表的叙述中,错误的是 () A.系统默认的表文件扩展名为.dbf B.利用表设计器创建表结构时,系统默认的字符型字段宽度为10 C.自由表的索引功能与数据库表有区别 D.表文件名在命名时只要遵循操作系统的规定 ,VFP本身无任何新的限定 2. 设某数据库中的学生表(XS.DBF)已在2号工作区中打开,且当前工作区为1号工作区,则下列命令中不能将该XS表关闭的是 ( ) A.CLOSE TABLE B.CLOSE DATABASE ALL C.USE IN 2 D.USE 3.XS(学生)表中有XM(姓名,字符型)和XB(性别,字符型)等字段.如果要将所有男生记录的姓名字段值清空,则可以使用命令 _______ . A.UPDATE XS SET xm=’’ WHERE "xb"=男 B.UPDATE XS SET xm=SPACE(0) WHERE xb="男" C.UPDATE XS SET xm=SPACE(0) FOR xb="男" D.UPDATE XS SET xm=““ FOR "xb"=男 4.首先执行CLOSE TABLES ALL命令,然后执行__________命令,可逻辑删除JS(教师)表中年龄超过60岁的所有记录(注:csrq为日期型字段,含义为出生日期). A.DELETE FOR YEAR(DATE()-YEAR(csrq))>60 B.DELETE FROM js WHERE YEAR(DATE())-YEAR(csrq)>60 C.DELETE FROM js FOR YEAR(DATE()-YEAR(csrq))>60 D.DELETE FROM js WHILE YEAR(DATE())-YEAR(csrq)>60 5.在下列有关 VFP 表索引的叙述中,错误的是( ) A通过创建表的索引,不仅可以对记录数据进行排序,而且可以实现记录的筛选 B.对于数据库表来说,可以创建 VFP 系统支持的所有类型的索引 C.在表打开时,系统会自动地将默认的第一个索引作为主控索引 D.表的唯一索引并不能控制字段数据输入时的重复 6.函数SELECT(0)的返回值是 ( ) A.当前工作区号 B.当前工作区的下一个工作区号 C.当前未被使用的最小工作区号 D.当前未被使用的最大工作区号 7.在有关表的操作中,有些命令只能对当前工作区中的表进行操作,而有些命令可以对非当前工作区中的表进行操作,在下列命令中,只能对当前工作区中的表进行操作的是_______ A.Replace B.GOTO C.Skip D.Delete 8.数据库( database )是许多相关的数据库表及其关系等对象的集合.在下列有关 VFP 数据库的叙述中,错误的是( ) A.可用命令新建数据库 B.从项目管理器中可以看出,数据库包含表、视图、查询、连接和存储过程 C.创建数据库表之间的永久性关系,一般是在数据库设计器中进行 D.数据库表之间创建"一对多"永久性关系时,主表必须用主索引或候选索引 9.数据库表可以设置字段有效性规则,字段有效性规则属于() A.实体完整性范畴 B.参照完整性范畴 C.数据一致性范畴 D.域完整性范畴 10.数据库表的主索引(及候选索引)的设置可以实现( ) A.域完整性 B.实体完整性 C.参照完整性 D.用户自定义完整性 二:填空题 1.使用USE命令可以打开或关闭表.如果XS表已在第1号工作区中打开,则要在第10号工作区中再次打开XS表,可使用命令 USE xs __ IN 10 2.设在1号工作区中打开XS表,若要求在2号工作区中再次打开xs表且别名设置为XUESHENG,则可使用命令:USE XS _________ xuesheng IN 2 AGAIN 3.用INSERT-SQL命令在XS(学生)表中添加如下表格所示的记录,可使用命令:
INSERT INTO xs(xh,jl,csrq) ( ) (“E 4.使用SET ( ) ON|OFF命令,可以指定visual FoxPro系统是否处理已做了删除标记的表记录. 5.利用COPY命令可以将当前工作区中的表复制成Microsoft Excel 文件.若当前工作区中已打开XS表,则用命令COPY TO xyz __________,可以将XS表复制成Excel 文件 xyz.xls. 6.对于自由表来说,不可以创建的索引类型是( ) . A.主索引 B.候选索引 C.唯一索引 D.普通索引 7.某公司实现人性化管理,在每个员工生日的当日会赠送礼物.若其人事档案表中包含一个出生日期字段(字段名为 csrq ,类型为日期型),则根据"月日"(不包含”年份”)创建索引时,其索引表达式可以为___________(DTOC(csrq,1),4) 8.Visual FoxPro系统支持3种不同的索引文件,即( )索引文件、非结构复合索引文件和独立索引文件. 9.某表含有两个字段:XX(字符型)和YY(日期型).若要创建一个索引,要求先根据XX字段排序,xx字段相同时再根据YY字段排序,则索引表达式可以设置为xx+( ) . 10.执行以下程序,3个SELECT()函数的输出值分别是 _________ . 【程序清单】 CLOSE TABLES ALL SELECT 3 USE js SELECT xh,xm,csrq FROM XS INTO CURSOR t3 ? SELECT("XS") ??SELECT("t3") ??SELECT(0) 11.教师(js)表中含有100条记录,运行下面程序后,屏幕上显示的记录有____条 Set talk off &&关闭显示 Clear &&清空主窗口 Use js &&打开js表,这时指针指向第一条记录 Scan &&判断是否到js表最后,即是否eof为.t. ? Recno(),gh,xm &&输出记录号的值,gh的值,xm的值 Skip &&向下移动一条记录 Endscan &&向下移动一条记录 Use &&关闭显示 12.两个日期型字段,参加工作日期(cjgzrq)和出生日期(csrq),现要创建一个索引,要求首先按照参加工作日期排序,工作日期相同时根据出生日期排序,则索引表达式为_____________ 13.如果依次执行下列命令,则xs表在两个工作区中同时打开,其别名分别为_____ Close tables all Use xs Select 20 Use xs again 14.在 VFP 中创建一个新的数据库后,系统会生成3个文件,其文件扩展名分别为( )(数据库文件), .dct (数据库备注文件)和 .dcx (数据库索引文件). 15.数据库表的触发器(Trigger)是在对表的记录进行操作时被触发的检验规则.在VFP中,触发器分为3种类型,即更新触发器、删除触发器和( )触发器. 16.如果因误操作删除了某个数据库文件,由于数据库表仍然保留对该数据库引用的后链,因此这些数据库表也不能被添加到其他的数据库中.这时需要利用 _______命令删除存储在数据库表中的后链,使之成为自由表.(07秋) 17.在两个数据库表创建永久性关系后,就可以创建它们之间的参照完整性规则.在VFP中,参照完整性规则分为更新规则、( ) 规则和插入规则. 18.在设置表之间的参照完整性规则时,系统给定的更新和删除规则有3个,即级联,限制和忽略,而插入规则只有两个,即( ). 19.利用DBGetProp函数,可以返回数据库的属性,也可以返回当前数据库中表、表的字段或视图的有关属性,例如:要得到js表的记录级有效性规则DBGetProp(“js”,__________,”RuleExpression”) 20.利用DBGETPROP()函数,可以获取当前数据库的属性设置信息,或当前数据库中的表、表字段或视图的属性设置信息.例如,要获取当前数据库SJK中XS表的xb字段的默认值,可以使用函数 DBGetProp(“js.xb”,”Field”,__________) 典型试题答案 一:选择题 1.D 说明:表文件名除了遵守操作系统的规定,还不能用A--J中的单个字母作文件名 2.D 说明:Use关闭当前工作区中的表 3.B 4.B说明:A错在如果用Delete For则表必须处于打开状态,且为当前工作区,C与D都没有遵守格式 5.C说明:表打开时,不会将任何一个索引作为主控索引 6.A 7.A 8.B 说明:数据库包含表,本地视图,远程视图,连接和存储过程,不包括查询 9.A 10.B 二:填空题 1.again 2.alias 3.values 4.deleted 5.xls 6.A 7.Right 8.结构 9.Dtoc(yy) 10.1 2 2 说明:close tables all表示将所有的表关闭,执行select 3表示选择第3个工作区成为当前工作区,执行use js将在第3个工作区把js表打开,执行Select xh,xm,csrq From xs后将xs表在最小未被使用的工作区打开,并将该工作区作为当前工作区,所以在第1个工作区中打开,并且第1个工作区是当前工作区,执行into cursor t3后t3将在最小未被使用的工作区打开,并将该工作区作为当前工作区,即第2个工作区打开,select("xs")判断xs所在的工作区,所以是2,select("t3")所以是3,select(0)表示当前工作区即2 11.50 说明:在对表js的循环中,skip会向下移动一条记录,而在scan循环中,遇到endscan指针也会向下移动一条记录,所以输出Recno()的时候会输出1,3,5,7,9……这样一个规律 12.Dtoc(cjgzrq,1)+Dtoc(csrq,1) 说明:两个日期型连在一起时,要用Dtoc作一个转换,且注意DTOC中要加1,表示去除日期之间的间隔符'/' 13.xs W20 说明:在VFP中打开一张表时如果没有用alias指定别名,则默认别名同表名相同,如果再次打开该表,则如果在1--10工作区中,则对应别名为A--J,如果超过10则表明为W11--W32767之间 14..dbc 15.插入 16.Free Table 17.删除 18.限制和忽略 19.Table 说明:因为js是表名,所以填写Table,如果js是字段名称,那么就应该填写Field 20.DefaultValue |
||||||||