教务学籍工作数据操作VF工具之SQL语句详解
【摘要】随着oa的全面推广,学校使用电脑办公代替了手工操作,在学籍教务工作过程中,如果能够数量使用vf的sql语句可以提高我们的工作效率。
【关键字】查询;替换;连接
【中图分类号】g710
【引言】教务学籍工作一个教育单位不可缺少的部分,它的工作对于学校的决策者和管理者来说都至关重要,一直以来人学籍们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。在我个人工作中,用vf工具使工作变的更快捷和准确,下面就vf工具详细介绍操作技巧。
数据基本操作:是庞大的学籍信息库和教务学生信息各种表格中,利用vf的sql语句可以查询想要的字段缩短表的长度,也可以使单个表连接前来,把几个表中需要的字段组成一个新表。为
了加快操作速度,下面的语句可以提高操作速度。以以下连个表为例,详细介绍命令的使用方法。假设基本信息表(jc.dbf)的字段名如下:序号(id),姓名(xm),学号(xh),性别(xb),身份证号(sfzh),政治面貌(zzmm),考生号(ksh),专业名称(zymc),出生日期(csrq),成绩表(cj.dbf)字段如下:姓名(xm),身份证号(sfzh),计算机(jsj),cad(cad),计算机网络(wl)。
一、替换命令,针对相同或批量的数据处理
(1)自动生成序号:repl all id with recn(),//为id自动升序编号
(2)自动生成学号:
replace all xh with ‘201213924’+left(’000’,3-len(alltrim(str(recno()))))+alltrim(str(recno()))//该命令以201213924开头,三位自动编号组成12位学号。
(3)去掉某字段(姓名为例)所有记录中的空格:
repl all xm with chrtran(xm,’ ‘,’’)//去掉中间的空格 。
repl all xm with chrtran(xm) //去掉两端的空格。
(4)条件替换,根据指定的条件替换相对应的字段记录:
repl all zzmm with “中共党员” for zzmm=“党员”//把政治面貌为党员的记录替换为中共党员。
(5)用指定的字段信息,填充某个字段信息:
repl all csrq with left(alltrim(substr(sfzh,7,8)),8)//用身份证号中的第七位开始后八位字符替换字段出生日期的全部记录。
(6)清空某字段的所有记录:repl all xb with ““,//把性别字段所有记录清空。
(7)添加替换,在某一指定的字段前加字符串:
repl alla ksh with “1243”+ksh //在所有的考生号记录前加上”1243”
二、查询命令:
(1)查询指定的字段:改命令可以从多字段的大表中挑选满足需要的字段所有记录:
select id,xm,sfzh,zzmm from jc into table aa //查询基本信息表中的序号,姓名,身份证号,政治面貌几个字段记录存放在a.dbf表中。
(2)条件查询,在指定的条件范围查询符合条件的记录:
select * from jc where zzmm=“中共党员”//查询基础信息表中政治面貌为中共党员的所有记录。
select * from jc where zzmm=“中共党员” and subs (ksh,1,4)=‘1243’//查询政治面貌为中共党员且考生号的前四位为”1243”的所有记录。
(3)嵌套查询,在两个表中查询出符合条件的记录:
select * from jc into table xx where sfzh not in(select sfzh from cj)//查询出基础信息表中身份证号不在成绩表的所有记录,存放在xx表中。
(4)统计查询,统计出各个记录出现的次数。
select zymc,count(zymc) from jc group by zymc //统计出基本信息表中各个专业的人数。
(5)左连接查询,把两个包含有唯一字段信息的连个表连接成几个表。
select jc.*,cj.* from jc left join cj on jc.sfzh=cj.sfzh //通过身份证号这个唯一字段把基础信息表和成绩表中的所有记录合并成一个新表。
(6)重复查询,查询当前工作表中出现重复的记录
select sfzh,count(*) from jc group by sfzh having count(*)>1 // 查询基本信息表中身份证号重复的记录。
(7)相同查询,查询两个或多个表中包含唯一字段的所有记录
sele * from 基本信息,成绩表 where a.sfzh=b.sfzh//c
三、删除命令:
(1)删除指定的记录dele for xb=字段字符串去重复“女”; pack ;//删除性别为女的所有记录
(2)删除重复的记录
select * from jc group by sfzh into cursor tem
select jc
zap
append from dbf(’tem’)
//删除基础信息表中身份证号重复的记录
总结,本人在学籍和教务管理中,总结出常用的的命令来提高我们的工作效率和准确率。
【参考文献】
[1] 郭云飞 数据库程序设计教程(visualfoxpro6.0)(第二版)北京邮电大学出版社
[2] 王永国 visual foxpro程序设计(第2版)高等教育出版社
[3]宁可 数据库技术与应用 清华大学出版社
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论