第3章表的创建和使用_第1页
第3章表的创建和使用_第2页
第3章表的创建和使用_第3页
第3章表的创建和使用_第4页
第3章表的创建和使用_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章 表的创建和使用本章知识点:自由表的创建、使用与维护本章知识点:自由表的创建、使用与维护 3.1 表结构表结构3.2 表的打开与关闭表的打开与关闭3.3 记录的处理记录的处理3.4 表的索引表的索引3.5 有关表操作的常用函数有关表操作的常用函数3.1 表结构n表及表结构的基本概念表及表结构的基本概念(1)表的概念表的概念(2)表结构概述表结构概述n表结构的创建表结构的创建(1)用用“表设计器表设计器”创建表结构创建表结构(2)用用create table-SQL命令创建表结构命令创建表结构(3)NULL值的使用值的使用n表结构的修改表结构的修改(1)用用“表设计器表设计器”修改表结构修

2、改表结构(2)用用alter table-SQL命令修改表结构命令修改表结构1、表:、表:是指存放在磁盘文件中的一张二维表,扩展名为.dbf,不可用A-J中的单个字母作表文件名。字段(field):表中的一列,最多有255列 学生表中的学号、姓名、年龄等记录(record):表中的一行 记录是多个字段的集合2、表的分类:、表的分类:数据库表:表文件属于某一个数据库。数据库表:表文件属于某一个数据库。自由表:表文件与数据库无关联。自由表:表文件与数据库无关联。表结构表结构主要是指表的字段及其属性主要是指表的字段及其属性1、字段名、字段名(field name) 每一个字段的名字,用以在表中每一个

3、字段的名字,用以在表中标识该字段标识该字段。 命名规则:命名规则:“见名知意见名知意”2、数据类型、数据类型(type) 表中的每个字段都有特定的数据类型表中的每个字段都有特定的数据类型 13种字段类型种字段类型,表(,表(3-1)P65 3、字段宽度、字段宽度(width) 指该字段所能容纳的最大字节数 *整型整型I,备注型,备注型M,通用型,通用型G 4字节字节 *货币型货币型Y,日期型,日期型D,日期时间型,日期时间型T,双精度型,双精度型B 8字节字节 *逻辑型逻辑型L 1字节字节 *字符型字符型C,数值型,数值型N,浮点型,浮点型F字段的宽度需指定字段的宽度需指定若表包含备注或通用型

4、字段,系统自动生成一相应的备注文件(扩展名为.fpt)4、小数位数、小数位数(decimal) 字段宽度字段宽度=整数部分整数部分+小数点小数点+小数部分小数部分 特例特例: 字段宽度字段宽度=小数部分小数部分+1 纯小数纯小数5、空值支持、空值支持 空值,是用来标记记录中空值,是用来标记记录中“没有值没有值”。 不等同于不等同于0,空字符串,逻辑,空字符串,逻辑“假假”自由表设计器1)打开表设计器(多种方式)2)在表设计器中创建表结构字段名最好不要用中文字符用create table-SQL命令创建表结构 一般格式: create table xs(xh c(8),xm c(8),xb c(

5、2) &其中字段类型必须用字母表示 参见表 (2-1)P65create table js(gh c(5),xm c(8), ximing c(18),gz n(7,2)使用NULL值NOT NULL和和NULL子句子句例如:例如:create table zg(gh c(6) not null,; xm c(8) not null,csrq d null)注意:注意:当表中字段可以接受当表中字段可以接受NULL值时值时 该表最多只能有该表最多只能有254个字段个字段用表设计器修改表结构可用界面操作方式或命令可用界面操作方式或命令modify structure打开表设计器,在表设计器中修改表

6、结构打开表设计器,在表设计器中修改表结构 命令窗口用alter table-SQL命令修改表结构1)添加字段添加字段(add column)例如:添加例如:添加“班级名称班级名称bjmc”到到xs表中表中alter table xs add column bjmc c(12)2)重命名字段重命名字段(rename column)例如例如: 重新命名重新命名xs表的表的“bjmc”字段为字段为“bj”alter table xs rename column bjmc to bj3)删除字段删除字段(drop column)例如:例如: 删除删除xs表中的表中的“bj”字段字段alter tabl

7、e xs drop column bj3.2 表的打开与关闭n基本概念基本概念 (1)工作区工作区 (2)表的别名表的别名n“数据工作期数据工作期”窗口窗口n表的表的打开打开与与关闭关闭n表的表的独占与共享独占与共享“数据工作期”窗口数据工作期是当前数据动态工作环境的一种表示。数据工作期是当前数据动态工作环境的一种表示。VFP启动后,系统自动生成一个数据工作期,称为启动后,系统自动生成一个数据工作期,称为“默认默认”数据工作期。数据工作期。n每一个表单、表单集或报表在运行过程中,为了管理自己所用的数据,每一个表单、表单集或报表在运行过程中,为了管理自己所用的数据,可以形成自己的数据工作期。可以

8、形成自己的数据工作期。n每一数据工作期包含有自己的一组工作区,这些工作区含有打开的表、每一数据工作期包含有自己的一组工作区,这些工作区含有打开的表、表索引和表关系。表索引和表关系。“数据工作期数据工作期”窗口的打开窗口的打开:n菜单命令:窗口菜单命令:窗口数据工作期数据工作期n工具按钮:常用工具按钮:常用数据工作期窗口数据工作期窗口通过数据工作期窗口,可选择查看数据工作期,可进行有关表的一些操作通过数据工作期窗口,可选择查看数据工作期,可进行有关表的一些操作工作区工作区:用以标识一张打开用以标识一张打开 的表的区域的表的区域(1)打开一张表时,必须为该表指定一个工作区。)打开一张表时,必须为该

9、表指定一个工作区。(2)每个工作区有一个编号,称为工作区号,编号范围)每个工作区有一个编号,称为工作区号,编号范围1-32767,前,前10个工作区号也可用字母个工作区号也可用字母A-J表示。表示。(3)每个工作区在某一时刻只能打开一张表,打开另一表时,)每个工作区在某一时刻只能打开一张表,打开另一表时,前一张表自动被关闭。前一张表自动被关闭。(4)用户可同时在多个工作区中打开多张表,也可将一张表同)用户可同时在多个工作区中打开多张表,也可将一张表同时在多个区中打开。时在多个区中打开。当前工作区当前工作区:VFP正在使用的工作区,即默认工作区正在使用的工作区,即默认工作区vfp系统启动后,系统

10、默认当前工作区为系统启动后,系统默认当前工作区为1。当前工作区当前工作区设置当前工作区设置当前工作区(1) “窗口窗口”/“数据工作期数据工作期”/“别名别名”中选所要打开的表的别名中选所要打开的表的别名(2)命令方法命令方法: SELECT nWorkArea|cTableAlias 例,例,SELECT JS/SELECT 2 SELECT 0 &选择未被使用的最小编号的工作区选择未被使用的最小编号的工作区测试当前工作区测试当前工作区可用函数可用函数select(0|1|cTableAlias)来测试工作区号:来测试工作区号: 0返回当前工作区号,返回当前工作区号,1返回当前未用的最大工作

11、区号返回当前未用的最大工作区号 别名别名cTableAlias用于返回该表所在的工作区号用于返回该表所在的工作区号操作非当前工作区中的表操作非当前工作区中的表 (1)其他工作区选为当前工作区其他工作区选为当前工作区 SELECT 2 USE XS (2)在命令中强行指定工作区在命令中强行指定工作区 GO TOP IN 2/GO TOP IN XS 表的别名:是对打开的表的一个临时标识别名的指定别名的指定:USE xs ALIAS student若打开表时没指定表的别名若打开表时没指定表的别名,则自动以表文件名作为别名则自动以表文件名作为别名若一张表同时在多个工作区中打开且均未指定别名:若一张表

12、同时在多个工作区中打开且均未指定别名:(1)则在第一次打开的工作区中,别名与表名相同)则在第一次打开的工作区中,别名与表名相同(2)其它工作区中用)其它工作区中用A-J以及以及W11-W32767表示表示别名的查看别名的查看:(1)“数据工作期数据工作期”窗口窗口(2)alias函数函数: alias(nWorkArea) 返回当前或指定工作区中表的别名返回当前或指定工作区中表的别名 若工作区号缺省表示当前工作区若工作区号缺省表示当前工作区表的打开:表的打开:使用表时首先必须把表显式或隐式地打开使用表时首先必须把表显式或隐式地打开n显式打开是指用户利用菜单等界面操作(文件显式打开是指用户利用菜

13、单等界面操作(文件打开)或打开)或USE命命令直接打开表;令直接打开表;n隐式打开是指在执行某些界面操作(项目管理器中隐式打开是指在执行某些界面操作(项目管理器中“浏览浏览”等按等按钮)或执行钮)或执行SQL命令时系统会自动地打开相应的表。命令时系统会自动地打开相应的表。(1)“文件文件”-“打开打开”(2)工具条上工具条上“打开打开”按钮按钮(3) USE XS(4)USE XS IN 0 noupdate &不许修改不许修改 SELECT 0 USE XS &在未被使用的编号最小的工作区内打开一张表在未被使用的编号最小的工作区内打开一张表(5)多次打开一张表多次打开一张表:USE XS S

14、ELECT 0USE XS AGAIN 表的关闭表的关闭(1)“数据工作期数据工作期” 中中,选一张表选一张表-“关闭关闭”按钮按钮(2)USE(3)USE IN 2 或或 SELECT 2 USE(4)CLOSE ALL &关闭所有的数据库、表和索引,将当前工作区设置为关闭所有的数据库、表和索引,将当前工作区设置为0CLOSE DATABASES &关闭所有的数据库关闭所有的数据库CLOSE TABLES &关闭所有的表关闭所有的表(5)退出退出VFP系统系统表的独占与共享使用表的独占与共享使用表的独占使用表的独占使用:一张表只能被一个用户打开一张表只能被一个用户打开表的共享使用表的共享使用

15、:一张表可以同时被多个用户打开一张表可以同时被多个用户打开设置表的使用方式设置表的使用方式 (1)默认情况下默认情况下:独占,默认方式的设定独占,默认方式的设定:“工具工具”-“选项选项” (2)SET EXCLUSIVE OFF/ON (3)USE XS SHARED/EXCLUSIVE (4)打开表时打开表时,在在“打开打开”窗口右下角窗口右下角, 有有“独占独占”复选框复选框 * 注:改变set exclusive的设置并不能改变已打开表的状态,若一张表同时被多次打开,只以第一次的打开方式为准3.3 记录的处理1、记录的输入、记录的输入2、表的浏览与定制、表的浏览与定制3、记录的定位、记

16、录的定位4、记录的修改、记录的修改5、记录的删除、记录的删除6、数据的复制、数据的复制7、数据的统计、数据的统计记录的输入记录的输入n1) 表结构创建后立即输入记录表结构创建后立即输入记录n2)在浏览窗口中追加记录在浏览窗口中追加记录n3)使用使用insert-SQL命令追加记录命令追加记录n4)使用使用append与与append from追加追加浏览窗口编辑窗口显示显示/浏览(编辑)进行转换浏览(编辑)进行转换表结构创建后立即输入记录表结构创建后立即输入记录在浏览窗口中追加记录在浏览窗口中追加记录在浏览状态下向表中追加记录在浏览状态下向表中追加记录 显示显示浏览浏览表表追加新记录追加新记录

17、 追加一条追加一条显示显示追加方式追加方式 可追加多条可追加多条使用insert-SQL命令追加 格式:格式: insert into xs(xh,xm,xb,nl) values (“0012304”,”张三张三”,”男男”,17) 注:若字段列表省略,则指全部字段注:若字段列表省略,则指全部字段对应关系对应关系使用使用append /append from命令追加记录命令追加记录append blank 追加一条空记录追加一条空记录append blank in nWorkArea | cTableAliasappend from 从其他表或文件中导入数据从其他表或文件中导入数据appen

18、d from filename delimited / xls delimited用于说明追加文件为用于说明追加文件为文本文本文件文件 xls用于说明追加文件为用于说明追加文件为Excel文件文件 缺省缺省时追加文件为时追加文件为表表文件文件 要注意要注意文件的格式文件的格式追加文件的格式追加文件的格式n文本文件:文本文件:每条记录以每条记录以回车符回车符结尾;结尾;各字段内容用各字段内容用逗号逗号分隔;分隔;字符型字段值要加字符型字段值要加引号引号。nExcel文件:文件:工作表的工作表的列结构列结构与表的与表的表结构表结构相相对应对应。表的浏览与定制表的浏览与定制n表的浏览表的浏览1、界面

19、方式(浏览窗口)、界面方式(浏览窗口)2、browse命令命令n记录的筛选记录的筛选1、界面方式、界面方式2、命令方式、命令方式 set filter to lExpressionn字段的筛选字段的筛选1、界面方式、界面方式2、命令方式、命令方式 set field to FieldListbrowse 命令命令语法格式:语法格式:browse fields FieldList for lExpression freeze FieldName noappend nodelete nomodify title cExpressionfreeze用于指定可以修改的字段,其它字段不可修改用于指定可以

20、修改的字段,其它字段不可修改1)全部浏览全部浏览 browse 2) 字段的筛选浏览字段的筛选浏览 browse fields xh,xm,xb3)记录的筛选浏览记录的筛选浏览 browse for xb=女女4)字段,记录同时筛选字段,记录同时筛选 browse fields xh,xm for xb=女女语法格式:语法格式:set filter to lExpressionlExpression用于指定记录需要满足的条件用于指定记录需要满足的条件缺省时表示所有记录(即取消筛选)缺省时表示所有记录(即取消筛选)例:例:close tables allUse jsset filter to x

21、b=“女女”Browse fields gh,xm nomodify title 女教师女教师set filter to记录筛选记录筛选的界面操作:表记录筛选的界面操作:表属性属性Set field to 语法格式:语法格式:set field to FieldListlExpression用于指定所需字段用于指定所需字段缺省时表示所有字段(即取消筛选)缺省时表示所有字段(即取消筛选)例:例:close tables allUse jsset field to gh,xmBrowse for xb=女女 nomodify title 女教师女教师set field to字段筛选字段筛选的界面操

22、作:表字段筛选的界面操作:表属性属性记录的定位记录的定位n向表中输入数据时,向表中输入数据时,VFP为每记录按输入顺序指定了为每记录按输入顺序指定了“记录号记录号”,第一个输入的记录,记录号为,第一个输入的记录,记录号为1,依此类,依此类推。推。1、记录指针标志记录指针标志 当一个表文件被打开,系统自动生成三个控制标志:当一个表文件被打开,系统自动生成三个控制标志: 记录的开始标志:介于表结构和第记录的开始标志:介于表结构和第1条记录之间条记录之间 记录指针标志:指示当前处理的记录位置,记录指针指记录指针标志:指示当前处理的记录位置,记录指针指向的那个记录称为向的那个记录称为“当前记录当前记录

23、” 记录的结束标志:整个表记录结束的标志记录的结束标志:整个表记录结束的标志2、有关函数有关函数3、记录的定位方式记录的定位方式4、命令方式实现记录定位命令方式实现记录定位记录指针记录指针第n条记录第1条记录文件头(表结构等)记录开始标志记录开始标志记录结束标志记录结束标志记录指针标志记录指针标志有关函数 recno()返回当前记录号返回当前记录号 bof() 测试记录指针是否指向开始标志测试记录指针是否指向开始标志 eof() 测试记录指针是否指向结束标志测试记录指针是否指向结束标志 当打开一张表时记录指针的情况当打开一张表时记录指针的情况表中记录情况表中记录情况bof()recno()Eo

24、f() 无记录无记录.t.1.t. 有记录有记录.f.1.f.记录定位方式绝对定位:把记录指针移动到指定的位置相对定位:把记录指针从当前位置开始,相对于当前记录向前或向后移动若干条记录位置条件定位:按照一定条件自动地在表的某个指定范围中查找符合该条件的记录,若找到指针定位到该记录上,否则将定位到指定范围的末尾。2) skip命令命令相对定位相对定位 skip nn=1 默认值,记录指针向下移动一个默认值,记录指针向下移动一个n0 记录指针向表尾移动记录指针向表尾移动n个个 n0 记录指针向表头移动记录指针向表头移动n个个 3) locate命令命令条件定位条件定位Locate for xm=张

25、洪张洪 如果表有一个如果表有一个主控索引主控索引Skip、goto top、goto bottom命令将使记录指针移动到索引顺序决定的记录上命令将使记录指针移动到索引顺序决定的记录上 对于对于条件定位条件定位,可以使用,可以使用continue命令从当前记录位置命令从当前记录位置开始继续进行条件定位,即定位到下一条满足条件的记录开始继续进行条件定位,即定位到下一条满足条件的记录1) go/goto n 定位到第定位到第n条记录条记录 go/goto top 定位到第一个记录定位到第一个记录 go/goto bottom 定位到最后一个记录定位到最后一个记录记录的修改记录的修改n界面方式界面方式

26、A、用相应的命令或界面操作打开浏览窗口或编辑窗口、用相应的命令或界面操作打开浏览窗口或编辑窗口B、有规律的批量修改:浏览状态下,表、有规律的批量修改:浏览状态下,表/替换字段替换字段n命令方式命令方式A、 update-SQL命令命令 (参见(参见P78命令语法格式)命令语法格式) update js set gl=gl+1 where gl20记录的删除记录的删除n删除记录一般分两步进行:标记要删除的记录,彻删除记录一般分两步进行:标记要删除的记录,彻底删除带删除标记的记录底删除带删除标记的记录(1)标记要删除的记录标记要删除的记录(2)恢复带删除标记的记录恢复带删除标记的记录(3)彻底删除

27、记录彻底删除记录(4)对带有删除标记的记录的访问对带有删除标记的记录的访问标记要删除的记录标记要删除的记录1)界面方式)界面方式2)命令方式)命令方式delete或或delete-SQL命令命令(P79语法格式)语法格式)例如:例如:use js delete for (date() csrq) /36560或或 delete from js where year(date()-year(js.csrq)60) delete只能对已打开的表操作,只能对已打开的表操作,delete sql无需打开表无需打开表删除标记恢复带删除标记的记录n界面操作界面操作A、浏览窗口中单击删除标记、浏览窗口中单击

28、删除标记B、菜单命令:表、菜单命令:表/切换删除标记(记录指针需指向要取消删除标记的记录)切换删除标记(记录指针需指向要取消删除标记的记录)C、菜单命令:表、菜单命令:表/恢复记录,在某一范围恢复一组符合指定条件的记录恢复记录,在某一范围恢复一组符合指定条件的记录n命令操作命令操作 recall Scope for lExpressionrecall恢复当前记录恢复当前记录recall all 恢复所有记录恢复所有记录recall all for xb=“男男” 恢复所有恢复所有xb为为“男男”的记录的记录彻底删除记录n界面操作界面操作表处于表处于“浏览浏览”状态,用菜单命令状态,用菜单命令“

29、表表/彻底删除彻底删除”n命令操作命令操作pack删除删除当前工作区中打开表当前工作区中打开表的带删除标记的记录的带删除标记的记录zap 删除删除当前工作区中打开表当前工作区中打开表的的所有所有记录,而不管记录,而不管记录是否有删除标记,只留表结构记录是否有删除标记,只留表结构对带有删除标记的记录的访问可用可用set deleted命令来指定是否处理标有删除标记的记录命令来指定是否处理标有删除标记的记录语法格式语法格式set deleted on|offon 忽略有删除标记的记录忽略有删除标记的记录off 允许访问有删除标记的记录(系统默认值允许访问有删除标记的记录(系统默认值)数据的复制数据

30、的复制ncopy to 命令将当前工作区中已打开的表中的数据复制到其它表命令将当前工作区中已打开的表中的数据复制到其它表文件或其它类型的文件中。文件或其它类型的文件中。n语法格式:语法格式: copy to FileName fields FieldList Scope for lExpression type sdf |xls | delimited with Delimiter | with blank | with tab | with character Delimiter例,例,use xsCopy to xs1 for xb=女女 &生成一个生成一个xs1.dbf文件文件Copy

31、to xs1 fields xh,xm sdf &生成一个生成一个xs1.txt文件文件Copy to xs1 xls &生成一个生成一个xs1.xls文件文件数据的统计数据的统计计数计数: count Scope for lExpression to VarName求和求和: sum nExpression Scope for lExpression to VarName求平均求平均: average nExpression Scope for lExpression to VarName例如:例如:Close tables allUse cjCount for cj60 to a1 &结果

32、存到变量结果存到变量a1中中Sum cj for cj“索引索引”选项卡选项卡-“索引名索引名”,“类型类型”,“表达式表达式” (2)命令方式:命令方式:index on eExpression tag TagName & tag前没有前没有to for lExpression asending|desending unique |candidate & 缺省为普通索引缺省为普通索引例例 index on xm+xh tag xh注意注意:不能对:不能对备注型备注型字段和字段和通用型通用型字段建立索引字段建立索引索引的修改和删除n索引的修改索引的修改 (1)“表设计器表设计器”-“索引索引”

33、 (2)INDEX命令建同名索引,则替换原索引命令建同名索引,则替换原索引n索引的删除索引的删除 (1)“表设计器表设计器”-“索引索引” (2)命令:命令: delete tag TagName1, TagName2例如:例如:Delete tag xhDelete tag all &索引文件同时被删除索引文件同时被删除注:注:若要删除主索引或候选索引,且环境设置为若要删除主索引或候选索引,且环境设置为set safety on,会显示是否删除的确认对话框会显示是否删除的确认对话框索引的使用n索引的作用:索引的作用:a提高查询速度;提高查询速度;b使记录的显示和处理顺使记录的显示和处理顺序按照某种指定的方式进行;序按照某种指定的方式进行;c限制记录数据的唯一性。限制记录数据的唯一性。n打开表的同时,可打开多个索引,但还要将一个索引设置打开表的同时,可打开多个索引,但还要将一个索引设置为主控索引,在某一时刻只有该索引对表的显示和访问顺为主控索引,在某一时刻只有该索引对表的显示和访问顺序进行控制序进行控制(1) use 表文件名表文件名 order tag 标识名标识名use xs order tag xh(2) 打开表

温馨提示

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

评论

0/150

提交评论