APP下载

在VFP中利用SQL语言中的SELECT语句快速统计学生成绩

2014-04-14徐涛

中国信息技术教育 2014年6期
关键词:语句

徐涛

摘 要:SELECT语句是结构化查询语言SQL中的数据查询命令,具有非常丰富的成分和强大的查询功能,本文介绍了SELECT语句的基本格式,并举例说明了SELECT语句在对学生成绩进行统计分析所起的作用。

关键词:成绩统计 SELECT 语句

中图分类号:TP31 文献标识码:A 文章编号:1674-2117(2014)06-0052-02

1 引言

对考试成绩进行统计分析,一方面可以检验教师的教学效果,另一方面也可以用来衡量学生的学习状况。因此,每次考试结束后,教师都应立即对学生的成绩进行统计分析。统计分析时,大多数教师都会选择Excel来实现。虽然Excel很容易上手,但是如果考试频繁、班级多、学生多,使用Excel就会显得繁琐,无形中增加了教师的负担,而且使用Excel统计的时候,有很多手动操作,所以一个误操作就会导致统计结果的大相径庭。而利用SQL语言进行统计分析,可以灵活地写出统计语句,往往一条语句就能完成统计,以前EXCEL没办法解决的统计任务它都能够胜任,而且运行速度快,效率高。

2 SELECT语法介绍

SELECT 的完整语句结构比较复杂,这里只列举它的主要子句。SELECT 语句的主要子句格式如下:

SELECT [ALL — DISTINCT][TOP n] select_list

[FROM table_source]

[WHERE search_condition]

[GROUP BY group_by_expression]

[ORDER BY order_by_expression[ASC — DESC]]

SELECT是用来指明查询的字段,FROM是用来指明查询所涉及的表,WHERE是用来指明查询所必须满足的条件,order by 子句是用来对查询的结果进行排序,group by子句是用来对查询结果进行分组。

3 SELECT语句的应用

在对成绩进行统计时,往往需要结合一些函数来配合SELECT语句,常用的函数如下面所示。

统计前首先要建立一张保存有学生成绩的成绩数据表,格式为dbf,其中包含的字段有年级、班级、准考证号、学号、姓名、性别、语文、数学、外语(如图1)。

3.1 计算总分

[例1]统计所有学生的总分

总分是各科成绩之和,具体语句为:select 班级、准考证号、姓名、性别,语文+数学+外语 as 总分 from 成绩数据表。语句执行完成后,统计结果就会在query窗口中显示出来。也可以在原成绩数据表中增加一个总分字段,用update语句进行统计,即Update 成绩数据表 set 总分=语文+数学+外语。

3.2 排名次

对学生进行排名,也是一项必不可少的工作,关键要处理好同分学生的名次问题,统计思路是:每一学生的名次等于分数大于该学生的人数加一。

[例2]对七年级的学生进行排名

具体程序为:select *,1+(select count(*) from 成绩数据表 a where a.总分>成绩数据表.总分) as 名次 from成绩数据表 where 年级=‘七。同样的,如果在原成绩中增加一个名次字段,也可以用update 语句进行统计,即update 成绩数据表 set 名次=1+(select count(*) from 成绩数据表 a where a.总分>成绩数据表.总分) where 年级=‘七。

3.3统计平均分

当需要统计某一科目的平均分时,我们就要用到函数avg( ),学校统计平均分时,一般统计的都是实考平均分,所以要加一个条件:科目成绩必须大于0。

[例3] 统计七年级全校语文平均分

具体程序为:select 年级,班级,avg(语文) from 成绩数据表 where 年级=‘七 and 语文>0。

3.4 统计最高分最低分

最高分最低分的统计,可以利用max( ),min( )函数来求得,统计最低分时,也要考虑缺考情况,因此也要加上成绩不等于零的条件,来排除由于缺考而得零分的情况。

[例4] 统计七年级语文最高分和最低分

具体程序为:select 年级,班级,max(语文),min(语文) from 成绩数据表 where 年级=‘七 and 语文>0

3.5 统计分数段

为了了解分数的排列情况,往往要对分数进行分数段的统计,可以利用case when 语句或者iif( )函数。

[例5] 统计七年级语文分数段人数

具体程序为:select iif(语文>=90,'大于90',iif(语文>=80 and语文<90,'80--90',iif(语文>=70 and语文<80,'70--80',iif(语文>=60 and语文<70,'60--70','0-50')))) as 成绩段,count(*) as 分数段人数 from 成绩数据表 group by 成绩段

3.6 综合统计

统计学生成绩时,需要统计的方面有很多,一步一步统计当然也可以,但是这样就显得繁琐了,利用select语句的强大功能,可以合并成几条select语句一起执行。

[例6]对七年级所有班级的学生考试成绩按班级统计总分、平均分、最高分、最低分,并对班级按照平均分从高到低排名次(如图2)。

select *,语文+数学+外语 as 总分 from 成绩数据表 where 年级=七 into cursor t1

select 班级,max(总分) as 最高分,min(总分) as 最低分,avg(总分) as 平均分 from t1 group by 班级 into cursor t2

select *,1+(select count(*) from t2 a where a.平均分>t2.平均分) as 名次 from t2 into cursor t3

select * from t3 order by 名次 asc

3.7 统计结果的处理

在通过select语句进行统计后,统计结果直接显示在屏幕上。如果需要保存统计结果,可以使用短语into表名,把统计结果存放到dbf表中。如果需要打印出来,可以使用短语into printer,把统计结果输出到打印机打印出来。

4 结语

SELECT语句具有非常强大的数据查询功能,不仅可以单表查询,还可以多表联合查询,对于初学者来说,只要掌握单表的基本查询功能就能胜任大部分的统计工作。综上所述,在对学生的成绩进行统计分析时,灵活地运用SELECT语句可以使原本繁琐的工作得到简化,由此可见SELECT语句具有较好的应用价值。

(江苏省宜兴市新庄中学,江苏 宜兴 214266)endprint

摘 要:SELECT语句是结构化查询语言SQL中的数据查询命令,具有非常丰富的成分和强大的查询功能,本文介绍了SELECT语句的基本格式,并举例说明了SELECT语句在对学生成绩进行统计分析所起的作用。

关键词:成绩统计 SELECT 语句

中图分类号:TP31 文献标识码:A 文章编号:1674-2117(2014)06-0052-02

1 引言

对考试成绩进行统计分析,一方面可以检验教师的教学效果,另一方面也可以用来衡量学生的学习状况。因此,每次考试结束后,教师都应立即对学生的成绩进行统计分析。统计分析时,大多数教师都会选择Excel来实现。虽然Excel很容易上手,但是如果考试频繁、班级多、学生多,使用Excel就会显得繁琐,无形中增加了教师的负担,而且使用Excel统计的时候,有很多手动操作,所以一个误操作就会导致统计结果的大相径庭。而利用SQL语言进行统计分析,可以灵活地写出统计语句,往往一条语句就能完成统计,以前EXCEL没办法解决的统计任务它都能够胜任,而且运行速度快,效率高。

2 SELECT语法介绍

SELECT 的完整语句结构比较复杂,这里只列举它的主要子句。SELECT 语句的主要子句格式如下:

SELECT [ALL — DISTINCT][TOP n] select_list

[FROM table_source]

[WHERE search_condition]

[GROUP BY group_by_expression]

[ORDER BY order_by_expression[ASC — DESC]]

SELECT是用来指明查询的字段,FROM是用来指明查询所涉及的表,WHERE是用来指明查询所必须满足的条件,order by 子句是用来对查询的结果进行排序,group by子句是用来对查询结果进行分组。

3 SELECT语句的应用

在对成绩进行统计时,往往需要结合一些函数来配合SELECT语句,常用的函数如下面所示。

统计前首先要建立一张保存有学生成绩的成绩数据表,格式为dbf,其中包含的字段有年级、班级、准考证号、学号、姓名、性别、语文、数学、外语(如图1)。

3.1 计算总分

[例1]统计所有学生的总分

总分是各科成绩之和,具体语句为:select 班级、准考证号、姓名、性别,语文+数学+外语 as 总分 from 成绩数据表。语句执行完成后,统计结果就会在query窗口中显示出来。也可以在原成绩数据表中增加一个总分字段,用update语句进行统计,即Update 成绩数据表 set 总分=语文+数学+外语。

3.2 排名次

对学生进行排名,也是一项必不可少的工作,关键要处理好同分学生的名次问题,统计思路是:每一学生的名次等于分数大于该学生的人数加一。

[例2]对七年级的学生进行排名

具体程序为:select *,1+(select count(*) from 成绩数据表 a where a.总分>成绩数据表.总分) as 名次 from成绩数据表 where 年级=‘七。同样的,如果在原成绩中增加一个名次字段,也可以用update 语句进行统计,即update 成绩数据表 set 名次=1+(select count(*) from 成绩数据表 a where a.总分>成绩数据表.总分) where 年级=‘七。

3.3统计平均分

当需要统计某一科目的平均分时,我们就要用到函数avg( ),学校统计平均分时,一般统计的都是实考平均分,所以要加一个条件:科目成绩必须大于0。

[例3] 统计七年级全校语文平均分

具体程序为:select 年级,班级,avg(语文) from 成绩数据表 where 年级=‘七 and 语文>0。

3.4 统计最高分最低分

最高分最低分的统计,可以利用max( ),min( )函数来求得,统计最低分时,也要考虑缺考情况,因此也要加上成绩不等于零的条件,来排除由于缺考而得零分的情况。

[例4] 统计七年级语文最高分和最低分

具体程序为:select 年级,班级,max(语文),min(语文) from 成绩数据表 where 年级=‘七 and 语文>0

3.5 统计分数段

为了了解分数的排列情况,往往要对分数进行分数段的统计,可以利用case when 语句或者iif( )函数。

[例5] 统计七年级语文分数段人数

具体程序为:select iif(语文>=90,'大于90',iif(语文>=80 and语文<90,'80--90',iif(语文>=70 and语文<80,'70--80',iif(语文>=60 and语文<70,'60--70','0-50')))) as 成绩段,count(*) as 分数段人数 from 成绩数据表 group by 成绩段

3.6 综合统计

统计学生成绩时,需要统计的方面有很多,一步一步统计当然也可以,但是这样就显得繁琐了,利用select语句的强大功能,可以合并成几条select语句一起执行。

[例6]对七年级所有班级的学生考试成绩按班级统计总分、平均分、最高分、最低分,并对班级按照平均分从高到低排名次(如图2)。

select *,语文+数学+外语 as 总分 from 成绩数据表 where 年级=七 into cursor t1

select 班级,max(总分) as 最高分,min(总分) as 最低分,avg(总分) as 平均分 from t1 group by 班级 into cursor t2

select *,1+(select count(*) from t2 a where a.平均分>t2.平均分) as 名次 from t2 into cursor t3

select * from t3 order by 名次 asc

3.7 统计结果的处理

在通过select语句进行统计后,统计结果直接显示在屏幕上。如果需要保存统计结果,可以使用短语into表名,把统计结果存放到dbf表中。如果需要打印出来,可以使用短语into printer,把统计结果输出到打印机打印出来。

4 结语

SELECT语句具有非常强大的数据查询功能,不仅可以单表查询,还可以多表联合查询,对于初学者来说,只要掌握单表的基本查询功能就能胜任大部分的统计工作。综上所述,在对学生的成绩进行统计分析时,灵活地运用SELECT语句可以使原本繁琐的工作得到简化,由此可见SELECT语句具有较好的应用价值。

(江苏省宜兴市新庄中学,江苏 宜兴 214266)endprint

摘 要:SELECT语句是结构化查询语言SQL中的数据查询命令,具有非常丰富的成分和强大的查询功能,本文介绍了SELECT语句的基本格式,并举例说明了SELECT语句在对学生成绩进行统计分析所起的作用。

关键词:成绩统计 SELECT 语句

中图分类号:TP31 文献标识码:A 文章编号:1674-2117(2014)06-0052-02

1 引言

对考试成绩进行统计分析,一方面可以检验教师的教学效果,另一方面也可以用来衡量学生的学习状况。因此,每次考试结束后,教师都应立即对学生的成绩进行统计分析。统计分析时,大多数教师都会选择Excel来实现。虽然Excel很容易上手,但是如果考试频繁、班级多、学生多,使用Excel就会显得繁琐,无形中增加了教师的负担,而且使用Excel统计的时候,有很多手动操作,所以一个误操作就会导致统计结果的大相径庭。而利用SQL语言进行统计分析,可以灵活地写出统计语句,往往一条语句就能完成统计,以前EXCEL没办法解决的统计任务它都能够胜任,而且运行速度快,效率高。

2 SELECT语法介绍

SELECT 的完整语句结构比较复杂,这里只列举它的主要子句。SELECT 语句的主要子句格式如下:

SELECT [ALL — DISTINCT][TOP n] select_list

[FROM table_source]

[WHERE search_condition]

[GROUP BY group_by_expression]

[ORDER BY order_by_expression[ASC — DESC]]

SELECT是用来指明查询的字段,FROM是用来指明查询所涉及的表,WHERE是用来指明查询所必须满足的条件,order by 子句是用来对查询的结果进行排序,group by子句是用来对查询结果进行分组。

3 SELECT语句的应用

在对成绩进行统计时,往往需要结合一些函数来配合SELECT语句,常用的函数如下面所示。

统计前首先要建立一张保存有学生成绩的成绩数据表,格式为dbf,其中包含的字段有年级、班级、准考证号、学号、姓名、性别、语文、数学、外语(如图1)。

3.1 计算总分

[例1]统计所有学生的总分

总分是各科成绩之和,具体语句为:select 班级、准考证号、姓名、性别,语文+数学+外语 as 总分 from 成绩数据表。语句执行完成后,统计结果就会在query窗口中显示出来。也可以在原成绩数据表中增加一个总分字段,用update语句进行统计,即Update 成绩数据表 set 总分=语文+数学+外语。

3.2 排名次

对学生进行排名,也是一项必不可少的工作,关键要处理好同分学生的名次问题,统计思路是:每一学生的名次等于分数大于该学生的人数加一。

[例2]对七年级的学生进行排名

具体程序为:select *,1+(select count(*) from 成绩数据表 a where a.总分>成绩数据表.总分) as 名次 from成绩数据表 where 年级=‘七。同样的,如果在原成绩中增加一个名次字段,也可以用update 语句进行统计,即update 成绩数据表 set 名次=1+(select count(*) from 成绩数据表 a where a.总分>成绩数据表.总分) where 年级=‘七。

3.3统计平均分

当需要统计某一科目的平均分时,我们就要用到函数avg( ),学校统计平均分时,一般统计的都是实考平均分,所以要加一个条件:科目成绩必须大于0。

[例3] 统计七年级全校语文平均分

具体程序为:select 年级,班级,avg(语文) from 成绩数据表 where 年级=‘七 and 语文>0。

3.4 统计最高分最低分

最高分最低分的统计,可以利用max( ),min( )函数来求得,统计最低分时,也要考虑缺考情况,因此也要加上成绩不等于零的条件,来排除由于缺考而得零分的情况。

[例4] 统计七年级语文最高分和最低分

具体程序为:select 年级,班级,max(语文),min(语文) from 成绩数据表 where 年级=‘七 and 语文>0

3.5 统计分数段

为了了解分数的排列情况,往往要对分数进行分数段的统计,可以利用case when 语句或者iif( )函数。

[例5] 统计七年级语文分数段人数

具体程序为:select iif(语文>=90,'大于90',iif(语文>=80 and语文<90,'80--90',iif(语文>=70 and语文<80,'70--80',iif(语文>=60 and语文<70,'60--70','0-50')))) as 成绩段,count(*) as 分数段人数 from 成绩数据表 group by 成绩段

3.6 综合统计

统计学生成绩时,需要统计的方面有很多,一步一步统计当然也可以,但是这样就显得繁琐了,利用select语句的强大功能,可以合并成几条select语句一起执行。

[例6]对七年级所有班级的学生考试成绩按班级统计总分、平均分、最高分、最低分,并对班级按照平均分从高到低排名次(如图2)。

select *,语文+数学+外语 as 总分 from 成绩数据表 where 年级=七 into cursor t1

select 班级,max(总分) as 最高分,min(总分) as 最低分,avg(总分) as 平均分 from t1 group by 班级 into cursor t2

select *,1+(select count(*) from t2 a where a.平均分>t2.平均分) as 名次 from t2 into cursor t3

select * from t3 order by 名次 asc

3.7 统计结果的处理

在通过select语句进行统计后,统计结果直接显示在屏幕上。如果需要保存统计结果,可以使用短语into表名,把统计结果存放到dbf表中。如果需要打印出来,可以使用短语into printer,把统计结果输出到打印机打印出来。

4 结语

SELECT语句具有非常强大的数据查询功能,不仅可以单表查询,还可以多表联合查询,对于初学者来说,只要掌握单表的基本查询功能就能胜任大部分的统计工作。综上所述,在对学生的成绩进行统计分析时,灵活地运用SELECT语句可以使原本繁琐的工作得到简化,由此可见SELECT语句具有较好的应用价值。

(江苏省宜兴市新庄中学,江苏 宜兴 214266)endprint

猜你喜欢

语句
语句转换
循环语句重点剖析
韩寒作品经典语句
程序框图与算法语句考点
例谈基本算法语句
基本算法语句
我喜欢
C语言循环语句的分析与应用
作文语句实录
伪代码教学中的几点关注