foxpro数据库命令总结 foxpro命令大全

foxpro数据库命令总结

2010-12-1320:54:50|分类: 软件URL |标签: |字号大中小订阅

数据库和数据表典型及重点操作方式
create datebase<数据库名>建立数据库
modi datebase<数据库名>修改数据库
crea<数据表>建立数据表
modifystructure修改数据表结构
use<数据表名>打开数据表
append[blank]追加数据
liststru显示数据表结构
skip[<数值表达式>]记录指针的相对定位
insertblank插入空白记录
delete [<范围>][for<条件>]对记录作删除标记
recall [范围>][for<条件>]取消删除标记即恢复记录
browse [fields<字段名表>] [nodelete][nomodify][partition <数值表达式>]浏览修改数据
replase范围>] <字段名1>with <表达式> [for<条件>] 记录的替换
count [<范围>][for<条件>] [to<内存变量>] 记录个数计算
sum [<范围>][<数值型表达式>] [for<条件>] [to<内存变量表>]库字段的求和
edit for<条件>纵向编辑或修改
brow noappenoedit 不能向数据库中添加记录
brow nodeletenomodify既不能加上也不能去掉记录的删除标记
brow lock <数值表达式>数据库中前面的几个字段被锁定
brow partition<数值表达式> [reditledit]将浏览窗口分成两个窗口
brow font '宋体' ,18 part 30 redit改变字体大小分割纵横两个窗口
calc sum(数学),sum(foxpro) to a1,a2 统计数学和数据库的总和(提示:限制性的短语用在命令动词后时,不分前后顺序)
●copy stru to <数据库文件名> [fields<字段名表>] 数据库结构的复制
copy to <文件名> sdf for<条件> [fiel<字段名表>] 生成文本
●移除备注文件的数据
Delete record 4
Pack memo
●appe from <未打开的库文件> [for<条件>] [fiel<字段名表>]合并(链接)到当前数据库的末尾
●index on <索引表达式> to<索引文件名> [for<条件>]
索引文件的建立
loca [<范围>] [for<条件>] 数据库的查询
●按钮隐藏与显示:
if this.caption="追加记录"
thisform.container1.command2.visible=.t.
this.caption="继续追加"
else
thisform.container1.command2.visible=.t.
this.caption="追加记录"
endif
appe blan
THISFORM.CONTAINER1.TXT序号.setfocus
thisform.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 姓名 tagxm&&(注:descending 降序)
index on 出生日期 tag csrqascending&& (注:ascendimg 升序)
index on 学号 tag xhunique&& (注:unique 建立惟一索引)
●索引的打开:
use <文件名> [index<索引文件名>/?][order<数值表达式2>/<单索引文件>/[tag]<标识名>>[of<复合索引文件名>]
foxpro数据库命令总结 foxpro命令大全
关闭当前工作区中打开的所有单索引文件和独立复合索引文件
close indexs
建立复合索引文件:("结构化复合索引文件"会在数据表被打开时打开,复合索引文件名,在标识名后会自动建立复合索引文件)
use rsda
index on性别+str(gzsj) tagxb&&(结构复合索引)
index on csny tag csny1 of csny2dexcending&&(非结构复合索引)
index on gzto gz1compactunique&&按工资升序建立压缩型单索引文件,unique为单索引
打开库文件的同时打开索引文件:
use <数据库文件> index<索引文件名> [tag<索引标记> [of[<复合索引文件名>]
●打开数据库以后,再想打开索引文件
set index to <索引文件名>[order[<数值表达式>|<单索引文件名>|[tag]<索引标记> [of <复合索引文件名]]][ascending|descending] [additive]
如果使用additive 子句,则不会关闭前面已经打开的索引文件
例:打开数据库文件 rsda 并同时打开索引文件 单位1.idxt和出生年月.cdx
Use rsdaindex 单位1, 出生年月
exclusive/shared 指明以独占方式还是以共享方式打开表
格式:use <表名> [in<工作区号>][alias<别名> [exclusive/shared]
select 0 或 select 2
use 成绩表 alias cj
for 条件。指明在表中选择符合条件的记录进行显示
while 条件。指明选择表中符合条件的记录进行显示,遇到第一条不符合逻辑条件的记录,就不再向下选择记录了。
Delete from<表名>where 课程='pascal'
●定义基本表:create table<表名>(<字段名1><类型>[(<宽度>[,<小数的位数>])][,字段名2>…])
例:Create table 成绩表 (学号 c(7),课程 c(15), 成绩n(5,1))
●表单操作(详细阅读第九章第144页以后内容)
Do form <表单名> 调用表单
Thisform.release 或releasethisform关闭表单
●Use <数据表> alias<别名> exclusive以独占方式打开表并给予别名
Thisform.refresh 刷新
Thisform.setfocus设置焦点如:thisform.text1.setfocus
●Report form<报表名> [for<条件>]preview 预览报表
Report form<报表名> [for<条件>]to print prompt 打印报表
●选择删除或恢复
Hhdelete=messagebox(" 如果确认,数据全部更新!",33,"请选择清空数据或恢复")
clos all
use ygcjlr excl&&以独占方式打开数据库
if hhdelete=1
dele all
pack
else
RECA ALl
ENDIF
●数据库文件的连接:
格式:Join with <别名> to<表名> for<条件> [fields <字段名表>]
例:将student学生库和zongf库连接生成新的数据库new,其中包括字段:编号、姓名、性别、总分(仅作参照实验)
Use studentaliasst&& alias 冠以别名格式
Select 0
Use zongfalias zf
Select st
Join 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 4
Sort 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库中岗位工资中:(两库操作)
Closedatabases&&关闭所有数据库
Use rsda aliasgwgz01&&打开rsda数据库 并加别名 gwgz01
Index on 姓名 toxm01&&以姓名为关键字索引,索引名为xm01
Selectb&&选择b区
Use rsdagl aliasgwgz02&&在b区打开人事档案管理, 并加别名gwgz02
Selea&&将第一次打开的rsda 别名a 作为选择
Upda on 姓名 from gwgz01 repl gwgz withgwgz+gwgz01.gwgz&&将当前库中的gwgz加上别名为gwgz01(rsda)库中的gwgz。已验正可行
●数据库文件的合并
格式:Append from <数据表名> [fiel<字段名表>] [for<条件>]
例:将rsda.dbf和rsdaht.dbf数据库合并到总库wdxrrzk中
Use wdxrrzk
Appe from rsda
Appe fromrsdaht&&已在wdxrrzk中合并了rsda、rsdaht
●数据表字段内容的替换
格式:Replace [<范围>] [for<条件>]<字段名> with<表达式>
例:在数据库student.dbf中,将所有女同学的入学总分增加10分
Use student
Repl all 总分 with 总分+10 for 性别="女"
List&&选择显示方式:list disp brow chanedit
●数据库综合计算命令calculate
格式:Calculate [<范围>] [for<条件>][while<条件>][<表达式>] [to<内存为量表>]
命令中的<表达式>可以是以下函数的任意组合:记录个数:cnt(),最大值:max(<表达式>),最小值:min(<表达式>),平均值:avg(<数值型表达式>),总和:sum(<数值型表达式>),标准偏差:sid(<数值>)
例:将学生库英语和数据库的成绩和求总和:
Use 学生库
Calc sum(英语分+foxpro) to zf
? '英语分数和foxpro总分为:',zf&&显示内存变量zf的数据
●计算数据库中记录个数的命令:count
格式:count [<范围>][for<条件>] [to<内存变量>]
例:统计入学总分在560-650分之间的人数
Use 学生库
Count for 入学总分>=560 and 入学总分<=650 tors
? '入学成绩在560到650分之间的人数为:', rs&&显示变量
●数据库字段的求和命令 sum
格式:sum [<范围>][<数值型表达式>][for<条件>][to<内存变量表>]
例:统计学生成绩库score.dbf各科成绩
Use score
Sum 英语成绩,foxpro to yy,vf
? '英语成绩和foxpro分别为:'yy,vf&&显示内存变量的数据
●数据库字段的求平均值命令AVERAGE
格式:average [<范围>][for<条件>][<数值型表达式>][to<内存变量表>]
例:求数据库score.dbf中所有女同学的英语平均成绩:
Use score
Aver 英语成绩 for 性别='女' to a
?"学生成绩库中女同学的英语平均成绩为:',a
●功能最强的 select 命令
1、select <表达式> from<数据库>是select命令的必选项
例1、 select 编号,姓名 from rsda to screen
例2、显示rsda库中每个人的姓名、年龄
Sele 姓名,year(dade())-year(birth) from rsda to screen
例3、显示rsda库中的记录个数,总工资、高低工资、平均工资
Sele count(*) AS记录个数,sum(gz),max(gz),min(gz),avg(gz) from rsda to screen
例:利用基本情况库rsdab、技能工资库rsdac和岗位工资库rsdad显示出每个职工的姓名、技能工资和岗位工资(三库共同唯一的字段是编号gh,ab c是系统默认的工作区号,也称别名)
sele a.xm,b.jngz,c.gwgz from rsdab a,rsdab b,rsdad c wherea.xm=b.xm and b.gh=c.gh&&到屏幕或打印机 to screen /print
●sele[distinct]<表达式>[as<列标题>][,<表达式>[as<列标题>]…]
from <数据库>[别名][,<数据库>[别名]…]
[where<条件>]
[group by <分组项目>[,<分组项目>…]][having<条件>]
[order by<排序项目>[asc/desc][,<排序项目>[asc/desc]…]]
[into<目标>/tofile<文件名>[additive]/toprint/screen]
In:判断in左侧数据是否出现在in右侧的各个值中
Between…and:判断between左侧的数据是否则在betw…and指定的范围,如果在,结果为.t.,否则为.f.
Like:判断like左侧的数据是否符合like右侧指定的字符串的格式。在字符串可使用通配符"%"(百分号)和"-"(下划线),'%'代表多零个或多个字符,"-"代表一个字符。
group by<分组项目>[,<分组项目>…]][having<条件>]
order by<排序项目>[asc/desc][,<排序项目>[asc/desc]…]
into dbf <数据库文件名> 或 into table<数据库文件名>
to file <文件名> [additive]指定的文本文件中或尾部
●例1:显示出1978年和1979年出生的学生的姓名和出生日期。
Sele 姓名,出生日期 from 学生库 where year(出生日期) in (1978,1979) toscreen&&判断in左侧的数据是否出现右侧的各个值中,若出现,结果为.T.,否则为.F.
●例2:显示出姓名中有"英"字的学生的姓名和学号
Sele 姓名,学号 from 学生库 where 姓名 like "%英%"&&LIKE:判断like左侧的数据是否符合like右侧指定的字符串的格式
●例3:显示学生库和成绩库每个女生的学号,姓名以及所修课程号。
Sele 学生库.学号,学生库.姓名,成绩库.课程 from 学生库,成绩库 where 学生库.姓名=成绩库.姓名 and学生库.性别='女' to screen
●例4:显示学生库,课程库和成绩库显示出每个学生的学号、姓名、所修课程名称和该门的成绩。
Sele a.学号,a.姓名,c.科目,b.分数 from 学生库 a,成绩库 b,课程库 c where a.学号=b.学号 andb.科目=c.科目 to screen
●例5:显示学生库和总分库每个学生的姓名、学号和总分。
Sele a.姓名,b.* from 学生库 a,总分库 b where a.学号=b.学号
●例6:分别求出男女生的人数、高考成绩的总分、平均分、最高分和最低分。
Sele 性别,count(*)as 人数,sum(成绩),avg(成绩),max(成绩),min(成绩) from 学生库group by 性别 to screen
●例7:求出学生库中同年出生的学生的人数、高考成绩的平均分、最高分和最低分。
Sele year(出生时间)as 出生时间,coun(*)as 人数,avg(成绩),max(成绩),min(成绩), from学生库 group by year to screen
●例8:分别求出学生库中同年出生的男女生的人数以及高考成绩的平均分。
Sele rear(出生年月)as year,性别,count(*)as 人数,avg(成绩) from 学生库 group byyear,性别 to screen&&group by 分组子句中不允许使用表达式如:
Sele rear(出生年月)as year,性别,count(*)as 人数,avg(成绩) from 学生库 group byyear(出生年月),性别 to screen是错误
●例9:求出学生中1977和1978年出生的学生的人数及高考成绩的平均分数。
SELE YEAR(cssj)AS year,count(*)as 人数,avg(fs) from 学生库 group by yearHAVING YEAR(cssj) IN(1977,1978) to screen
●例10:显示学生库中每个学生的学号、姓名和出生日期,按照出生日期的升序排列记录:
Sele 学号,姓名,出生日期 from 学生库 order by 出生日期
●例子11:显示学生数据库中每个学生的学号、姓名和年龄,按照年龄的降序排列记录。
Sele 学号,姓名,year(date())-year(出生日期) from 学生库 order by 3 DESC TOSCREEN
●例子12:利用学生库和总分库显示出每个学生的姓名、学号和总分,并按照总分的降序排列记录。
Sele a.姓名,b.* from 学生库 a,总分库 b WHERE a.学号=b.学号 order by b.总分库 DESCTO SCREEN
●例13:利用学生库,课程库和成绩库显示出每个学生的学号、姓名、所修课程名称和该门课的成绩,并按照学号的升序排列记录,学号相同时,再按照分数的升序排列记录。
Sele a.学号,a.姓名,c.科目,b.分数 from 学生库 a,成绩库 b,课程库 c WHERE a.学号=b 学号 andb.科目=c.科目 ORDER BY a. 学号,b.分数 to screen
●例14:利用学生库建立名为wdxrrsjk,其中只包括公费生的记录
Sele * from 学生库 WHERE !公F自T into dbfwdxrrsjk
注:公F自T 是字段变量 是自己定义的库结构 公费为f 自费为t
又如:sele 姓名,iif(owe,"自费","公费")as 显示自公 from 学生库 toscreen &&注明owe是库中字段逻辑型
●例15:利用学生库和总分库建立新库wdxrrsjkb,新库中包括字段:学号、姓名、性别和总分。
Sele a.学号,a.姓名,a.性别,b.总分 from 学生库 a,总分库 b where a.学号=b.学号 into dbfwdxrrsjkb
●group by<分组项目>[,<分组项目>…]][having<条件>]
order by<排序项目>[asc/desc][,<排序项目>[asc/desc]…]
into dbf <数据库文件名> 或 into table<数据库文件名>
to file <文件名> [additive]结果放在<文件名>指定的文本文件中。如果使用[additive]子句,查询结果添加在文本文件尾部,不覆盖其原有内容
into cursor<数据库文件名>结果存入<数据库文件名>指定的临时数据库中。只要关闭临时数据库,该数据库立即被删除
●例:显示rsda中所有工种,去掉重复的工种:
Sele dist 工种 as 所有工种 from rsda to screen&&into dbf rsdab
●例:显示出生日期1928年至1957年之间的人员的姓名、出生日期
sele 姓名,出生日期 from wdxrrzb where 出生日期 betw '1928'and '1957' to screen&& between 符合多个条件查找 出生年月是字符型
●例:显示不是1928年和1954年之间出生的人员姓名、出生日期(字符型)
sele 姓名,出生 from wdxrrzb where 出生日期 not betw'1928' and '1954'
显示单位不重复的工种数分组排序到临时表 (dist子句要放在所有显示的字段前面,否则出错,会出现找不到的提示)
●例:Sele dist 工种,工作单位,姓名,count(*) from员工培训 group by 工种 order by 工作单位 to cursor
●例:显示出1978年和1979年出生的人员的姓名和出生年月(出生年月日期型)
sele 姓名,出生年月from rsda where year(出生年月) in(1978,1979)
●例 :转换数据匹配后显示两个年限的出生年月
sele 姓名,出生年月 from 员工培训 notwhere val(出生年月) in (1980,1989) to screen
●SELE * from 花名册 where 年龄="53" and 性别="女" 数据匹配才能用
●例:显示出不是1978年和1979年出生的人员的姓名和出生年月(出生年月日期型)使用相反的条件 not或者 !
sele 姓名,出生年月from rsda notwhere year(出生年月) in (1978,1979) to screen
●进入vf后将表格导入数据库
IMPORT FROM d:qfwwtwdxrrwdxrrrr员工考勤数据库.xls TYPE XL8SHEET "Sheet1"
●打开数据库生成表格可重新修改使用格式:
expo to alltrim(thisform.text1.value) xls 或:
expo to <文件名> xls
●&&建立临时表 名为:学
sele 备用金额,回收总额 from 出库商品 into cursor 学
&&加入到正式表中 正式表为:出库商品
●插入字段
insert into 出库商品(购买数量,出库数量) value(学.备用金额,学.回收总额)
brow
以上实验通过
●通用字段输入照片:(实验通过)
appe gene 个人照片 fromalltrim(thisform.pageframe1.page2.text2.value)+".bmp"link&&加入指定的个人照片
thisform.refresh
thisform.pageframe1.page2.text2.refresh
clea
●在屏幕上显示照片:例:@2,9 say "c:windows肖像.bmp" Bitmap
设置表单控件热键:只限在Caption属性中:
例:exit 退出热键 将控件属性设为"e<xit" 用时按Alt+x 就可以退出
数字键需要按 Shift
●报表页注脚: _pageno 或 _pbpage
●时间日期页注脚: year(date())年month(date())月day(date())日
或: dtoc(date(),1) 或: datetime()
●表单初始化页面initk中的事件代码:(当前页面)
Thisform.pageframe1.page6.zorder 或:
Thisform.pageframe1.activpage=6
●页面切换: if thisform.pageframe1.activpage=6(总页面数)
Thisform.pageframe1.activpage=1
Else
Thisform.pageframe1.activpage=thisform.pageframe1.activpage+1
Endif
●运行菜单编写的程序: modi comm 人事档案管理.prg
*文件名 人事档案管理.prg
_screen.caption="档案管理系统"
Set sysmenu on
Do 从事档案管理.mpr

●定义表单的init事件代码如下:
Sele 计生管理
Set order to 编号
If file(alltrim(计生管理.个人照片)+".bmp"
Thisform.image1.picture=alltrim(计生管理.个人照片)+".bmp"
Endif
●[]追加gene内容(图片.bmp)
Appe gene 个人相片 from;alltrim(thisform.pageframe1.page1.container1.text2.value)+".bmp" ;link&&加入指定的个人照片
thisform.refresh
thisform.pageframe1.page1.container1.text2.refresh
clea
●打印设置命令:
Set printer to name(sys(1037))
●控制页数:repo form <报表文件名> to printprompt
●设置路径:
set default to c:mss
set path to ;data;include;forms;progs
●运行系统封面
_screen.windowstate=2
_screen.visible=.t.
_screen.icon="grophics3810.ico"
_screen.caption="人事档案操作系统"
_screen.picture="graphicsfm.jpg

●加密确认密码的代码事件:
clos database
use mmk2
if.t.
ifallt(thisform.password2.value)=allt(mmk2.xm)
ifallt(thisform.password1.value)=allt(mmk2.mm)
use
do form wdxrrcda
endif
endif
thisform.release
else
quit
endif
thisform.release
● 在表单form1文本框中, 设置显示当前时间:
This.value=datetime()
●表单form1 、actiiate设置代码,在屏幕中停留时间:
ttime=datetime()
do whildatetime()-ttime<=3&&定为3秒钟
enddo
do form <调用的表单>
●打开数据库生成表格:expo to <生成的表格名称>xls
分工种统计最高分、最低分、平均分
●sele 工种 as 工种分类,max(考试成绩) as 本工种最高分数,min(考试成绩) as 本工种最低分数 fromygcjlr GROUP BY 1 TO SCREEN
●sele 工种 as 工种分类,max(考试成绩) as 本工种最高分数,min(考试成绩) as 本工种最低分数 fromygcjlr GROUP BY 1 TOSCREEN&&临时表
●sele 工种 as 工种分类,max(考试成绩) as 本工种最高分数,min(考试成绩) as 本工种最低分数,avg(考试成绩) as 平均成绩 from ygcjlr GROUP BY 1 TOSCREEN
●sele 工种 as 工种分类,max(考试成绩) as 本工种最高分数,min(考试成绩) as 本工种最低分数,avg(考试成绩) as 平均成绩 from ygcjlr GROUP BY 1 intocursor 汇总表&&生成临时表
●copy to 汇总库&&生成正式表
●expo to 汇总正式表 xls&&转表格
●低于80高于90分的人员:
select 单位,姓名,考试成绩 from ygcjlr where 考试成绩 not BETWEEN 80 AND 90 TOSCREEN
●显示1965年出生的人员
sele 姓名,工作单位,出生年月 from 员工培训 where 出生年月 like"1965%" to screen
●80至90之间人员的分数
select 单位,姓名,考试成绩 from ygcjlr where 考试成绩 BETWEEN80 AND 90 TO SCREEN
●统计1985和1988年参加工作时间的人数
sele 姓名,工作时间 from 薪酬用 whereval(工作时间) betw 1985 and 1988 toscreen
●统计各工种的成绩情况:
sele 工种 as 工种统计,count(*),max(考试成绩),min(考试成绩),avg(考试成绩) from ygcjlrgroup by 工种 to screen
●分单位统计各工种情况
sele 单位,工种 as 工种统计,count(*),max(考试成绩),min(考试成绩),avg(考试成绩) fromygcjlr group by 工种 to screen
●工种分类并求出各工种的人数:
sele dist(工种) as 工种分类, count(工种)from ygcjlrgroup by 工种 to screen
●分工种统计以下内容并分类计数:
sele 单位,工种 as 工种统计,count(*)as 工种人数,max(考试成绩) as 最高分数,min(考试成绩) as最低分数,avg(考试成绩) as 平均分数 from ygcjlr group by 工种 toscreen&& to cursor 生成临时表
●分类统计成绩人数存入临时表:
sele 工种,max(考试成绩) as 高分,min(考试成绩) as 低分,avg(考试成绩) as 平均分数 fromygcjlr GROUP BY 工种 into CURSOR汇总表
● copy to 汇总一览表
●expo to 汇总一览表 xls
●从表格中导入数据库:
IMPORT FROMd:qfwwtwdxrrwdxrrrr整理文件qfwdxrrqfwwtwdxrr嗣懿文件重新调整薪酬打印组合试验导入.xlsTYPE XL8 SHEET "Sheet1"
●按单位、姓名、由高到低分数排序:
sele 单位,姓名,考试成绩 from ygcjlr where 单位="采一队" order by 3 desc toscreen
●生成新库由高到低排名:
sele 单位,姓名,考试成绩 from ygcjlr where 单位="工会" order by 考试成绩 desc intodbf 成绩排名榜
●在指定的记录前添加一条空白记录
go 5
insert before blank
●统计工种数、单位工种数、分组,按单位排序生成新库文件:
sele 单位,count(工种),工种 from ygcjlr group by 工种 order by 单位 into dbf工种分类
●查询范围内的工种:
set exac off&&模糊环境,提示一个以上的关键字
sele 工种,姓名,考试成绩,min(考试成绩) as 最低分数 ,avg(考试成绩) as 平均分数 from ygcjlrwhere 工种 in("采","压") to screen
●按单位分组、考试成绩排序并显示所在单位的最高分数:
sele * ,max(考试成绩) from ygcjlr groupby 单位 order by 考试成绩 desc
●查询90至100之间的成绩、工种和单位集中在一块并生成新的数据库
sele * from ygcjlr where 考试成绩 between 90 and 100group by 工种 order by 单位 into dbf 汇总表
●查询单位人数,成绩表并生成数据库
sele 单位,工种,考试成绩,max(考试成绩) as 最高分数,min(考试成绩) as 最低分数,avg(考试成绩) as平均分数, cnt(工种) as 总人数 from ygcjlr group by 单位 intodbf 考试成绩汇总表
●显示工种 姓名 考试成绩,98.5至99分之间的人数并由高到低排序
sele count(*) as 人数,工种,姓名,考试成绩 from ygcjlr where考试成绩 between 98.5 and 100 orderby 考试成绩 desc to screen
●查找所有名字带"霞"字的人员
sele * from 员工培训 where 姓名 like "%霞"
●查找姓王的姓氏分布单位的数据:
sele count(单位),单位 from ygcjlr where 姓名 like "王%" group by 单位 toscreen
●union[all]<select命令>说明将两个查询结果合并在一起输出,若无all,重复记录将被自动取消,若有all,表示结果全部合并。
●修改命令:格式:update <表名> set<字段名1>=<表达式1>[,<字段名2>=<表达式2>……][where<条件>]
例:把"成绩表"中学号为"0422601"、课程为"pascal"的成绩加5分。
Update 成绩表 set 成绩=成绩+5 where 学号="0422601" and 课程="pascal"
●插入命令:
格式:insert into<表名>(<字段名1>[,<字段名2>]…)values(<表达式1>[,<表达式2>]…)
例:向"成绩表"中插入一个新记录
Insert into 成绩表(学号,课程,成绩) values("0622616","pascal",65)
●删除命令:格式:delete from <表名> where<条件>
例:删除"成绩表"中课程为"pascal"的记录
Delete from 成绩表 where 课程="pascal"
●在Visual Foxpro 程序中显示通用字段图像.将*.jpeg另存为*.bmp 图像步骤如下:
将得到的数码图像jpeg(*.jpg;*jpeg;*.jfif)照片,经过重新编辑后另存为:24位位图(*.bmp;*.dib)文件,即可在程序中(桌面上)显示。格式:
Appe gene 个人相片 from;alltrim(thisform.pageframe1.page1.container1.text2.value)+".bmp" ;link&&加入指定的个人照片
●左上角显示图标
_screen.icon="qfwwtwdxrrwdxrrrr整理文件qfwdxrrqfwwtwdxrr嗣懿文件调资用薪酬图标.ico"
●设置菜单桌面背景方式:
_screen.picture="program filesmicrosoft visualstudiovfp98杂色背景.jpg"
●截取替换
repl 改后标准小计 with subs(改后标准小计,3,12),套前小计 with subs(套前小计,8,12)all
●在表单上输入数字型数据替换的模式:repl nx withval(allt(thisform.pageframe1.page2.container1.text7.value))
●在表单中操作统计的数据型显示的代码:
count for nx=val(alltrim(thisform.container1.text8.value)) torr_nx
thisform.container1.label17.caption="同一工作年限的人数为:"+str(rr_nx,4)+"人"
●按指定页数打印
repo form 薪资台帐 to print prompt
●备注字段的数据储存
不覆盖:例如:appe memo 信访内容 from 试验.txt
覆盖:例如:appe memo 信访内容 from 试验.txt overwrite
条件限制:appe memo 信访内容 from 试验.txt overwrite for姓名="王良"
●备注字段的修改
Modi memo <备注字段名>

from:

http://blog.163.com/wenbo8004@126/blog/static/8677270520097294142814/

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/300334.html

更多阅读

net 命令大全 cad快捷键命令大全

net 命令大全——简介net命令是功能强大的以命令行方式执行的工具。它包含了管理网络环境、服务、用户、登录等大部分重要的管理功能、使用它可以轻松管理本地或者远程计算机的网络环境,以及各种服务程序的运行和配置,或者进行用户管

dos命令大全 DOS命令图解教程 dos命令图解教程

dos命令大全DOS命令图解教程DOS概述及入门——DOS简介   现在家用电脑的操作系统大多都是用的Windows 95,但在1995年Windows 95推出以前,占统治地位的操作系统是DOS(Disk Operation System磁盘操作系统)。  接触电脑早一点

H3C交换机常用配置命令大全 h3c交换机关机命令

H3C交换机常用配置命令大全用户配置system-view[H3C]super password H3C 设置用户分级密码[H3C]undo super password 删除用户分级密码[H3C]localuser bigheap 123456 1Web网管用户设置,1(缺省)为管理级用户,缺省admin,admin[H3C]undo

最完整的ftp命令大全 ftp上传文件不完整

ftp有很多命令,熟悉这些命令你能大大的提高工作效率:FTP命令行格式为: ftp -v -d -i -n -g [主机名] ,下面是ftp命令的参数的解释其中 -v 显示远程服务器的所有响应信息;-n 限制ftp的自动登录,即不使用;、n etrc文件;-d 使用调试方式;-g

声明:《foxpro数据库命令总结 foxpro命令大全》为网友最终的法术分享!如侵犯到您的合法权益请联系我们删除