杨小艳
摘要:SQL语言教学是VFP数据库课程教学的一个重点和难点。文章针对SQI语言教学过程中存在的问题,对SQL语言的教学进行了研究与实践,提高了学生的学习兴趣和课堂教学质量。
关键词:SQL语言;数据库;教学方法
SQL(Structured Query Language)是关系数据库系统的国际标准查询语言,当前主流的数据库都提供对该语言的支持,它包括数据定义、数据控制、数据操作以及数据查询。SQI语言包含的内容非常丰富,其中查询是数据库最重要的操作,SQL语言的SELECT语句为查询提供了灵活而全面的支持。VFP数据库课程是安康学院文科专业学生开设的一门计算机公共课,SOL语言是该课程的一个重点和难点,采用什么样的教学方法,使学生在较短的时间内对SQL语言能够全面地了解和掌握,提高学生的数据库应用能力,是广大计算机教育工作者所共同关心的问题。
1SQL语言教学中存在的问题
1.1学生缺乏学习兴趣
SQL语言的教学内容一般都先讲解概念、语法,然后通过一个简单的实例进行验证,而真正能提高学生学习兴趣的实例很少,导致学生缺乏学习兴趣,影响课堂教学质量。
1.2不能写出完整的SQL命令
非计算机专业的学生从开始接触到计算机操作时,主要使用的是图形界面的操作方式,对于使用命令的操作方式非常生疏,学习起来非常困难。学生反映,能够分析出SQL命令的功能,但很难写出完整的SOL命令。
1.3不能用SOL语言实现分组统计功能
分组统计查询是SOL语言中的一个难点,分组查询通常和统计函数一起使用,学生反映不知道用哪些函数以及如何确定分组依据。
1.4多表查询以及嵌套查询掌握的较差
在教学过程中,学生反映,单表查询相对容易,多表查询涉及多个联接条件,嵌套查询涉及主查询和子查询以及关键字(in,any,all等)的选择,学生很难写出完整的命令。
2 SQL语言教学方法研究
2.1改变教学内容顺序,提高学生学习兴趣
通过实例讲解SOL语言的具体功能。
例1:查询本班学生的全部信息。
SQI命令:select*from学生表
通过该实例讲解sQL语言每一部分的语句功能,如select表示查询,星号(*)表示显示所有列,from短语后跟表名。可以让学生思考:查询课程的全部信息、查询班级的全部信息,这些命令如何写。接着可以引出条件查询(where子句)、分组查询(group by子句)、排序查询(order by子句)等。
实例的选择最好是学生熟悉的数据,如本班的学生、学生所学习的课程、学生的学习成绩等。为了进一步提高学生的学习兴趣,还可以举例说明日常生活中用到的数据库的例子,如火车订票系统、超市管理系统、银行管理系统等,让学生明白数据库和自己的生活息息相关,数据库是一门技能,要学好这门技能,必须学好SQL语言,使学生对SQL语言的学习产生兴趣,进而提高课堂教学效果。
2.2可视化的SQL语言对比教学方法
SQI培言主要是由命令及参数组成,掌握不好命令及参数的使用就不能正确执行查询,得到结果。针对学生不能写出完整的SQL命令的问题,可以采用可视化的SQI语言对比教学方法,通过实例说明该方法的具体使用过程。
教学管理数据库包含如下4张表:
学生表(学号、姓名、性别、专业编号、出生日期、奖学金、备注)
课程表(课程号、课程名、课时、学分、必修)
专业表(专业编号、专业名称)
成绩表(学号、课程号、成绩)
例2:查找平均分是前3名的女生的学号、姓名、专业名称、年龄和平均分。
(1)打开Microsoft Visual FoxPr06.0,选择新建查询。
(2)在查询设计器中添加查询需要的数据表:学生表、专业表和成绩表,并设置添加显示字段,函数的添加要在“函数和表达式”文本框处输入,然后点击添加,如图1所示。
(3)设置2张表的连接条件,学生表和专业表通过专业编号联接,学生表和成绩表通过学号联接。
(4)设置筛选条件为:学生表.性别=t.。
(5)设置排序依据,按平均分的降序排序。
(6)设置分组依据,按学号分组。
(7)设置杂项,无重复记录与命令关键字distinct对应,记录个数与top n关键字对应。
该查询命令比较复杂,涉及多表查询、分组统it.排序、条件查询等操作,学生很难写出完整的命令,通过查询设计器这种可视化的方式进行对比教学,学生操作的每一步都可以查看到对应的SQI培句,可以加强学生对SQI语句的掌握,整个操作过程很直观,学生很容易地掌握了SQL语言中各种参数的正确使用。
2.3 SOL分组查询
针对学生反映的分组查询问题,在教学过程中应注意以下几点:
(1)SQL统计函数。SQL统计函数包括:count,sum,avg,max,min这5个基本函数,要让学生明白每个函数的具体功能,在实践过程中,学生有时候把count函数和sum函数弄混,在教学过程中应该强调二者的区别,count用来计数,sum用来给数值数据求和。
(2)分析分组的依据。例如求男女生的平均年龄,应该按性别分组;求每个学生的平均成绩,应该按学号分组;求每门课程的平均成绩应该按课程号分组等。由浅入深,让学生掌握如何确定分组依据。
(3)通过实践加强学生对所学知识的理解和掌握。例3:统计男女生人数。
命令:select性别,count(*) as人数
from学生表
group by性别
让学生实践操作:统计男女生入学成绩的平均分,统计不同专业学生的平均年龄等操作。
2.4多表查询和嵌套查询
2.4.1多表查询
首先要分析的是查询中最少需要的数据表,而不是把所有表都写进查询,这样就会影响查询效率。其次,要分析多表查询中的连接条件,例如学生表和专业表通过专业编号连接,课程表和成绩表通过课程号连接等。最后,需要提醒学生多表中具有的相同字段在显示时必须写上表的别名或表名。
2.4.2嵌套查询
从简单的实例出发:例如查询所有选课的学生信息,应该就是查询那些学号在成绩表中的所有学生信息,查询命令为:
select*from学生表
where学号in(select学号from成绩表)
让学生思考:查询被学生选修的课程信息,应该如何写,使学生对所学知识融会贯通,提高学生的数据库应用能力。
3结语
SQL语言是VFP数据库教学的核心部分,本文针对教学过程中存在的问题,通过教学方法的改革与实践,使学生的学习由被动变主动,提高了学生的学习兴趣,使学生能够利用SQL语言完成数据库的基本操作,学生的素质和课堂教学质量得到了进一步提升。