foxpro数据库命令总结2010-12-13 20:54:50| 分类:软件URL | 标签:|字号大中小订阅数据库和数据表典型及重点操作方式create datebase <数据库名> 建立数据库modi datebase <数据库名> 修改数据库crea <数据表> 建立数据表modify structure 修改数据表结构use <数据表名> 打开数据表append [blank] 追加数据list stru 显示数据表结构skip [<数值表达式>] 记录指针的相对定位insert blank 插入空白记录delete [<范围>] [for<条件>] 对记录作删除标记recall [范围>] [for<条件>] 取消删除标记即恢复记录browse [fields<字段名表>] [nodelete] [nomodify][partition <数值表达式>] 浏览修改数据replase范围>] <字段名1> with <表达式> [for <条件>] 记录的替换count [<范围>] [for<条件>] [to <内存变量>] 记录个数计算sum [<范围>] [<数值型表达式>] [for <条件>] [to <内存变量表>] 库字段的求和edit for <条件> 纵向编辑或修改brow noappe noedit 不能向数据库中添加记录brow nodelete nomodify既不能加上也不能去掉记录的删除标记brow lock <数值表达式> 数据库中前面的几个字段被锁定brow partition <数值表达式> [redit ledit]将浏览窗口分成两个窗口brow font '宋体' ,18 part 30 redit 改变字体大小分割纵横两个窗口calc sum(数学),sum(foxpro) to a1,a2 统计数学和数据库的总和 (提示:限制性的短语用在命令动词后时,不分前后顺序)●copy stru to <数据库文件名> [fields <字段名表>] 数据库结构的复制copy to <文件名> sdf for <条件> [fiel <字段名表>] 生成文本●移除备注文件的数据Delete record 4Pack memo●appe from <未打开的库文件> [for <条件>] [fiel <字段名表>]合并(链接)到当前数据库的末尾●index on <索引表达式> to <索引文件名> [for <条件>]索引文件的建立loca [<范围>] [for <条件>] 数据库的查询●按钮隐藏与显示:if this.caption="追加记录"mand2.visible=.t.this.caption="继续追加"elsemand2.visible=.t.this.caption="追加记录"endifappe blanTHISFORM.CONTAINER1.TXT序号.setfocusthisform.refresh●设定显示范围:Record <n> 指定一个记录Next <n> 目前记录指针所指的以下数个记录Rest <n> 目前记录指针所指的以下所有记录All 数据表中所有的记录●储存数据的各种类型,使用replace 命令时,必须注意其类型Repl str with "amipro 中文版" 字符串Repl num with 100 数值Repl price with $ 100 货币Repl day with {07/06/2007} 日期Repl dt with {10/10/2006 12:33} 日期时间Repl log with .f. 逻辑Repl note with "备注数据" 备注字段与字符串相同repl 工龄年数 with subs(工龄年数,3,5) all *从第三个截取,保留5个字符,意在获得有用的数据,删除空格或多余的数据。
Repl 出生年月 with (subs(出生年月,1,4)+"."+subs(出生年月,5,2)) all Repl cssj with 190000+cssj 将原出生时间四位加上19的操作,字段为数值型Repl 出生时间 with (subs(出生时间,1,4)+"."+subs(出生时间,5,2)) all &&将出生时间6位数,第四位后,五位前加上圆点的所有操作将talk.txt文字文件的内容储存到备注字段中Appe memo note from talk.txt 不覆盖原来内容如:将个人自传加入到工作简历备注字段中:appe memo 工作简历 from 自传.txt for 姓名="WDxrrrrwd"●Appe memo note from friend.doc OVERWRITE数据被覆盖●list 或 disp 记录的显示sys(21) 返回当前工作区中起控制索引顺序作用的复合索引文件的标记或索引文件的索引序号sys (44) 返回一个打开的 .idx 索引文件的索引表达式,或者返回复合索引文件的索引标记的索引表达式sys(7) 返回当前格式文件的文件名sys(9) 返回visual foxpro 的序列号tag() 返回一个打开的多入口复合索引文件的标记名,或者返回一个打开的单项的索引文件名tagno() 返回复合索引文件中的标记以及打开的单项索引文件的索引位置简单索引的建立:index on <关键字表达式> to 索引文件名[for <条件>]●复合索引文件的建立:index on <关键字表达式> tag <索引文件名> [of <非结构索引文件名>][for <条件>]例: 按姓名建立普通索引,按出生日期降序建立候选索引,按学号建立惟一索引,存于复合索引文件中,使用命序列:index on 姓名 tag xm &&(注:descending 降序)index on 出生日期 tag csrq ascending && (注:ascendimg 升序) index on 学号 tag xh unique && (注:unique 建立惟一索引)●索引的打开:use <文件名> [index <索引文件名>/?][order<数值表达式2>/<单索引文件>/[tag] <标识名>>[of <复合索引文件名>]关闭当前工作区中打开的所有单索引文件和独立复合索引文件close indexs建立复合索引文件:("结构化复合索引文件"会在数据表被打开时打开,复合索引文件名,在标识名后会自动建立复合索引文件)use rsdaindex on 性别+str(gzsj) tag xb &&(结构复合索引)index on csny tag csny1 of csny2 dexcending &&(非结构复合索引) index on gz to gz1 compact unique &&按工资升序建立压缩型单索引文件,unique为单索引打开库文件的同时打开索引文件:use <数据库文件> index <索引文件名> [tag <索引标记> [of [<复合索引文件名>]●打开数据库以后,再想打开索引文件set index to <索引文件名> [order[<数值表达式>|<单索引文件名>|[tag] <索引标记> [of <复合索引文件名]]] [ascending|descending] [additive] 如果使用additive 子句,则不会关闭前面已经打开的索引文件例:打开数据库文件 rsda 并同时打开索引文件单位1.idxt和出生年月.cdx Use rsda index 单位1, 出生年月exclusive/shared 指明以独占方式还是以共享方式打开表格式:use <表名> [in <工作区号>][alias <别名> [exclusive/shared] select 0 或 select 2use 成绩表 alias cjfor 条件。
指明在表中选择符合条件的记录进行显示while 条件。
指明选择表中符合条件的记录进行显示,遇到第一条不符合逻辑条件的记录,就不再向下选择记录了。
Delete from <表名> where 课程='pascal'●定义基本表:create table <表名>(<字段名1><类型>[(<宽度>[,<小数的位数>])] [,字段名2>…])例:Create table 成绩表 (学号 c(7),课程 c(15), 成绩 n(5,1))●表单操作 (详细阅读第九章第144页以后内容)Do form <表单名> 调用表单Thisform.release 或release thisform 关闭表单●Use <数据表> alias <别名> exclusive 以独占方式打开表并给予别名Thisform.refresh 刷新Thisform.setfocus 设置焦点如:thisform.text1.setfocus●Report form <报表名> [for <条件>] preview 预览报表Report form <报表名> [for <条件>] to print prompt 打印报表●选择删除或恢复Hhdelete=messagebox(" 如果确认,数据全部更新!",33,"请选择清空数据或恢复")clos alluse ygcjlr excl &&以独占方式打开数据库if hhdelete=1dele allpackelseRECA ALlENDIF●数据库文件的连接:格式:Join with <别名> to <表名> for <条件> [fields < 字段名表>]例:将student学生库和zongf库连接生成新的数据库new,其中包括字段:编号、姓名、性别、总分 (仅作参照实验)Use student alias st && alias 冠以别名格式Select 0Use zongf alias zfSelect stJoin with zf to 新的库文件for 编号=zf.编号 fiel 编号,姓名,性别,zf.总分Use 新的库文件Brow●冻结字段:brow freeze 单位固定数个字段 brow lock 2 && 固定左半部两个字段●排序单一字段排序: sort to <排序后表名> on 档案号sort to <排序后表名> on 工资标准/d &&降序多字段排序:sort to <排序后的表名> on 档案号,序号忽略大小写:sort to <排序后的表名> on 档案号/c &&/cd为忽略大小写降序全部降序:sort to <排序后的表名> on 工资,补贴,养老金 descending降序与升序:sort to <排序后的表名> on 档案号/d,序号,年龄 ascending条件排序:sort to <排序后的表名> 年龄 for (date()-出生年月)/365>=50 &&当前的日期减去出生的日期(得日数),再除于365日即得年数部分字段的撷取:sort to <排序后的表名> on 档案号/a fiel 档案号,姓名,工资标准,工种设定范围:go 4Sort to <排序后的表名> on 工资标准/d rest &&从4个以后排序●取得磁盘空间:? Diskspace()取得数据表的大小:文件头大小:header()……A一个记录的大小:recsize()……B记录个数:reccount()……C &&数据表的大小便是D=A+B*C●数据表文件间的数据更新 update格式:Update on <关键字段> from <别名> replace <字段名1> with <表达式1>[,<字段名2> with <表达式2>...]例:将rsda库中的岗位工资加在rsdagl库中岗位工资中:(两库操作)Close databases &&关闭所有数据库Use rsda alias gwgz01 &&打开rsda数据库并加别名 gwgz01Index on 姓名 to xm01 &&以姓名为关键字索引,索引名为xm01 Select b &&选择b区Use rsdagl alias gwgz02 &&在b区打开人事档案管理, 并加别名gwgz02 Sele a &&将第一次打开的rsda 别名a 作为选择Upda on 姓名 from gwgz01 repl gwgz with gwgz+gwgz01.gwgz &&将当前库中的gwgz加上别名为gwgz01(rsda)库中的gwgz。