1、完全重复,使用
select distinct * from tableName
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
select distinct * into #TMP from tablename
drop table tablename
select * into tablename from #Tmp
drop table #TMP
2、部分字段重复通常要求保留重复记录中的第一条记录,
a.假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集
select identity(int,1,1) as ID, * into #Tmp from tableName
select MIN(ID) as ID into #Tmp2 from #Tmp group by Name,ID
select * from #Tmp where ID in(select ID from #tmp2)
b.可以使用select分组语句group by,检索出记录数大于1的那些组进行处理。
... ...
你的具体情况可以变更一下,以基表和临时表关联子查询,直接delete即可
Foxpro 2.5 for Windows 操作
(本节所述及的命令格式同样适用于 Visual FoxPro )
1 进入 Foxpro 2.5 for Windows ,建立数据库文件。
★ Foxpro 2.5 for Windows 有两种工作方式;⑴菜单方式;⑵命令方式。本操作为叙述简便,主要介绍命令方式。如果屏幕未出现命令窗口,可按下列方法进入:单击“ window”——“command”。
(1) 键入 crea <;库文件主名>
(2) 按屏幕提示,建立数据库结构。
(3) 按屏幕提示,输入记录。命令为 append 或 F9 。
(4) 在 brow 命令下,光标移到备注字段处,双击;输入备注字段内容。
2 打开文件: use <;库文件主名>
关闭数据库表:use 关闭所有文件数据:close all 清屏:clear 3 追加记录: append 或 F9
将 px2.dbf 接到 px1.dbf 后: (1) use px1 (2) appe from px2
4 显示记录: list 或 F3 或 display all (分屏显示)
5 打印记录: list to prin 或 type <;文件名> [to print]
6 显示指定字段内容: list <;字段名>
7 指定显示:
(1)list all for 姓名="周敏"
(2)list fiel <;要显示的字段名> for <;条件>
(3)list for 婚否
(4)list for .not. 婚否或 list for ! 婚否
(5)list off (不显示记录号)
(6)list 姓名 for 出生日期 > ctod ('01/01/60')
(7)list for 工资 > 700 .and. 性别="女"
(8)list for 笔试 < 60 .or. 上机< 60
8 清屏:clear
9 替换(更新)记录内容:
(1) repl all 总分 with 语文+数学+英语
(2) repl all 工资 with 工资+50 for 工资<=300
(3) repl 职称 with "中高" ,何年 with 99 for 姓名="周敏"
10 浏览库记录: brow
11 修改记录:
(1) 全屏幕修改记录: brow 或 (1) go <;记录号> (2) brow
(2) 指定字段修改: brow free <;指定字段名>
(3) 修改第 3 条记录: change 3 或 edit 3
(4) chan for 姓名="周敏"
(5) chan fiel 姓名, a, c, 计 for 姓名="周敏"
12 在第 3 条前插入记录: (1) go 3 (2) inse befo
在第 3 条后插入记录: (1) go 3 (2) inse
在第 3 条后插入空记录: (1) go 3 (2) inse blank
13 逻辑删除记录: (1) go 3 或 loca for 姓名="周敏" (2) dele
也可以: dele all for 出生日期 < ctod ('01/01/52')
恢复逻辑删除的记录: reca all
物理删除记录: pack
14 删除当前库中所有记录: zap
15 修改库结构: modi stru 增加字段 Ctrl+N 删除字段 Ctrl+U
16 按条件建新库:sort to <;新文件主名> on <;关键字段> for <;条件>
17 递减排序: sort to <;新库主名> on 总分 / D
(注意要打开新库,显示,才能看到排序结果。)
18 记录数统计: coun for <;条件> [to <;内存变量名>]
例: coun for 学区="北团 ".and.语文>=60
19 一般统计:
求和:sum <;字段名> [ to <;内存变量名> ] [ for <;条件> ]
求平均值: aver <;字段名> [ to <;内存变量名> ]
20 使用 calc 计算平均分、最高分、最低分、标准差:
calc avg(zz),max(zz), min(zz),std(zz)
21 分类汇总:问题设为对各商场风雪衣、皮夹克订货数进行汇总。
⑴打开订货数据库:use dinghuo
⑵按商品名排序或建立索引文件:index on 商品名 to shpmsy
⑶打开索引文件:set index to shpmsy
⑷按商品名对订货数分类汇总,建立分类汇总库:
total on 商品名 to shphz fiel 订货数
select distinct from⑸打开新建的分类汇总库:use shphz
⑹显示:list 。
21 指针指向顶部:go top 指针指向底部:go bott
指针指向第5条记录:go 5 或 5
指针从当前记录往下移动 5 个记录: skip 5
22 指针指向"周敏": loca for 姓名="周敏"
定位后继续往下查:cont
23 建立索引文件: inde on <;索引字段表达式> to <;索引文件名>
例(1) INDE ON 年龄 TO NL 例(2) INDE ON 总分 TO ZF
例(3) INDE ON 单位+STR(年龄,2) TO DW-NL
在Visual FoxPro中一般使用“表设计器”建立索引(主索引、候选索引、普通索引、唯一索引)。在自由表中不能建立“主索引”。
在过程中使用Index建立的索引叫“独立索引”,自然成为“主控索引”。
在“表设计器”中的多个字段上建立索引叫“复合索引”。
24 索引文件的打开和关闭:
开始操作打开索引文件:use <;库文件名> index <;索引文件名>
在过程中打开索引文件:set index to <;索引文件名>
指定当前索引(指定主控索引):set order to <;索引文件名> 然后 list
关闭索引:close index 或 set index to
25 索引检索命令: (1) 打开库文件 (2) 建立索引文件
(3) FIND <;检索值> 或 SEEK <;表达式>
26 数据库表文件的关联:
(1) sele 2 (2) use pxcgz (3) index on 姓名 to xm (4) sele 1 (5) use pxc
(6) set rela on 姓名 into pxcgz (7) brow fiel 姓名,学历,职称,B.工资
27 数据库表文件的连接:
(1) sele 1 (2) use pxc1 (3) sele 2 (4) use pxc2 (5) sele 1
(6) JOIN WITH B TO PXC3 FOR 姓名=B->姓名
(7) use pxc3 (8) list
28 数据库表的更新
对单个表的更新有多种方法,如用:edit brow change 及 repl 命令。当需要用一个数据库表的数据更新另一个数据库中的数据时,可以使用 update 命令,调用非当前表文件数据来修改当前表。(假设“0407工资”)
(1) sele 2 (2) use 0407工资 (3) index on 姓名 to axm (4) sele 1 (5) use 职工情况
(6) index on 姓名 to bxm (7) update on 姓名 from B replace 工资 with B->工资
29 编辑修改程序: modi comm <;程序文件主名>
进入程序: do <;程序文件主名>
进入表单: do form <;表单文件主名> 进入查询: do form <;表单文件主名>
30 库结构复制: copy stru to <;新库主名> [ fiel <;字段名表> ]
31 库文件改名: rena <;原文件全名> to <;新文件全名>
32 库文件复制:
copy to <;新文件主名> [ fiel <;字段名表> ] [ for <;条件> ]
copy file <;源文件全名> to <;目标文件全名> (源文件不能处于打开状态)
33 复制库文件记录:
copy to <;新文件主名> [<;范围>] [fiel<;字段名表>][for<;条件>][sdf]
( sdf 选项命令执行后形成 txt 文件 )
34 库文件删除: erase <;文件全名> 或 dele <;路径及文件全名>
35 几个 SQL 语句介绍
sele xm, gz, from pxc wher gz>=900 pxc 和 0402 为数据库表名
sele * from pxc wher xm="张萍" * 表示所有字段
sele xm AS 教工姓名,biye AS 毕业学校及专业 from pxc
sele sum(gz) from pxc wher xb=' 女'
sele coun(zf) from 0402 wher zf>=665.5
sele max(yw),min(yw),avg(yw),std(yw) from 0402
(1) use 0402 (2) max(yw),min(yw),avg(yw),std(yw)
36 几个SET 命令
set defa to d:\my_vfp 指定数据环境
set date ansi 中国日期格式
do form 02xxzx 执行名为“02xxzx”的表单
附 FoxPro 上机练习题
一、请建立如下数据库,库名由学员自定,如:0218.dbf 。建库命令为 crea <;库主名>
学号姓名婚否出生电话语文数学英语总分
xh xm hun chsh dh yw sx yy zf
C,3 C,6 L,1 D,8 C,7 N,4,1 N,4,1 N,4,1 N,5,1
001 刘均仁未 01/23/71 8945321 58.0 65.5 52.5
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论