楊小艷
摘要:SQL語言教學(xué)是VFP數(shù)據(jù)庫課程教學(xué)的一個重點和難點。文章針對SQI語言教學(xué)過程中存在的問題,對SQL語言的教學(xué)進行了研究與實踐,提高了學(xué)生的學(xué)習(xí)興趣和課堂教學(xué)質(zhì)量。
關(guān)鍵詞:SQL語言;數(shù)據(jù)庫;教學(xué)方法
SQL(Structured Query Language)是關(guān)系數(shù)據(jù)庫系統(tǒng)的國際標(biāo)準(zhǔn)查詢語言,當(dāng)前主流的數(shù)據(jù)庫都提供對該語言的支持,它包括數(shù)據(jù)定義、數(shù)據(jù)控制、數(shù)據(jù)操作以及數(shù)據(jù)查詢。SQI語言包含的內(nèi)容非常豐富,其中查詢是數(shù)據(jù)庫最重要的操作,SQL語言的SELECT語句為查詢提供了靈活而全面的支持。VFP數(shù)據(jù)庫課程是安康學(xué)院文科專業(yè)學(xué)生開設(shè)的一門計算機公共課,SOL語言是該課程的一個重點和難點,采用什么樣的教學(xué)方法,使學(xué)生在較短的時間內(nèi)對SQL語言能夠全面地了解和掌握,提高學(xué)生的數(shù)據(jù)庫應(yīng)用能力,是廣大計算機教育工作者所共同關(guān)心的問題。
1SQL語言教學(xué)中存在的問題
1.1學(xué)生缺乏學(xué)習(xí)興趣
SQL語言的教學(xué)內(nèi)容一般都先講解概念、語法,然后通過一個簡單的實例進行驗證,而真正能提高學(xué)生學(xué)習(xí)興趣的實例很少,導(dǎo)致學(xué)生缺乏學(xué)習(xí)興趣,影響課堂教學(xué)質(zhì)量。
1.2不能寫出完整的SQL命令
非計算機專業(yè)的學(xué)生從開始接觸到計算機操作時,主要使用的是圖形界面的操作方式,對于使用命令的操作方式非常生疏,學(xué)習(xí)起來非常困難。學(xué)生反映,能夠分析出SQL命令的功能,但很難寫出完整的SOL命令。
1.3不能用SOL語言實現(xiàn)分組統(tǒng)計功能
分組統(tǒng)計查詢是SOL語言中的一個難點,分組查詢通常和統(tǒng)計函數(shù)一起使用,學(xué)生反映不知道用哪些函數(shù)以及如何確定分組依據(jù)。
1.4多表查詢以及嵌套查詢掌握的較差
在教學(xué)過程中,學(xué)生反映,單表查詢相對容易,多表查詢涉及多個聯(lián)接條件,嵌套查詢涉及主查詢和子查詢以及關(guān)鍵字(in,any,all等)的選擇,學(xué)生很難寫出完整的命令。
2 SQL語言教學(xué)方法研究
2.1改變教學(xué)內(nèi)容順序,提高學(xué)生學(xué)習(xí)興趣
通過實例講解SOL語言的具體功能。
例1:查詢本班學(xué)生的全部信息。
SQI命令:select*from學(xué)生表
通過該實例講解sQL語言每一部分的語句功能,如select表示查詢,星號(*)表示顯示所有列,from短語后跟表名??梢宰寣W(xué)生思考:查詢課程的全部信息、查詢班級的全部信息,這些命令如何寫。接著可以引出條件查詢(where子句)、分組查詢(group by子句)、排序查詢(order by子句)等。
實例的選擇最好是學(xué)生熟悉的數(shù)據(jù),如本班的學(xué)生、學(xué)生所學(xué)習(xí)的課程、學(xué)生的學(xué)習(xí)成績等。為了進一步提高學(xué)生的學(xué)習(xí)興趣,還可以舉例說明日常生活中用到的數(shù)據(jù)庫的例子,如火車訂票系統(tǒng)、超市管理系統(tǒng)、銀行管理系統(tǒng)等,讓學(xué)生明白數(shù)據(jù)庫和自己的生活息息相關(guān),數(shù)據(jù)庫是一門技能,要學(xué)好這門技能,必須學(xué)好SQL語言,使學(xué)生對SQL語言的學(xué)習(xí)產(chǎn)生興趣,進而提高課堂教學(xué)效果。
2.2可視化的SQL語言對比教學(xué)方法
SQI培言主要是由命令及參數(shù)組成,掌握不好命令及參數(shù)的使用就不能正確執(zhí)行查詢,得到結(jié)果。針對學(xué)生不能寫出完整的SQL命令的問題,可以采用可視化的SQI語言對比教學(xué)方法,通過實例說明該方法的具體使用過程。
教學(xué)管理數(shù)據(jù)庫包含如下4張表:
學(xué)生表(學(xué)號、姓名、性別、專業(yè)編號、出生日期、獎學(xué)金、備注)
課程表(課程號、課程名、課時、學(xué)分、必修)
專業(yè)表(專業(yè)編號、專業(yè)名稱)
成績表(學(xué)號、課程號、成績)
例2:查找平均分是前3名的女生的學(xué)號、姓名、專業(yè)名稱、年齡和平均分。
(1)打開Microsoft Visual FoxPr06.0,選擇新建查詢。
(2)在查詢設(shè)計器中添加查詢需要的數(shù)據(jù)表:學(xué)生表、專業(yè)表和成績表,并設(shè)置添加顯示字段,函數(shù)的添加要在“函數(shù)和表達(dá)式”文本框處輸入,然后點擊添加,如圖1所示。
(3)設(shè)置2張表的連接條件,學(xué)生表和專業(yè)表通過專業(yè)編號聯(lián)接,學(xué)生表和成績表通過學(xué)號聯(lián)接。
(4)設(shè)置篩選條件為:學(xué)生表.性別=t.。
(5)設(shè)置排序依據(jù),按平均分的降序排序。
(6)設(shè)置分組依據(jù),按學(xué)號分組。
(7)設(shè)置雜項,無重復(fù)記錄與命令關(guān)鍵字distinct對應(yīng),記錄個數(shù)與top n關(guān)鍵字對應(yīng)。
該查詢命令比較復(fù)雜,涉及多表查詢、分組統(tǒng)it.排序、條件查詢等操作,學(xué)生很難寫出完整的命令,通過查詢設(shè)計器這種可視化的方式進行對比教學(xué),學(xué)生操作的每一步都可以查看到對應(yīng)的SQI培句,可以加強學(xué)生對SQI語句的掌握,整個操作過程很直觀,學(xué)生很容易地掌握了SQL語言中各種參數(shù)的正確使用。
2.3 SOL分組查詢
針對學(xué)生反映的分組查詢問題,在教學(xué)過程中應(yīng)注意以下幾點:
(1)SQL統(tǒng)計函數(shù)。SQL統(tǒng)計函數(shù)包括:count,sum,avg,max,min這5個基本函數(shù),要讓學(xué)生明白每個函數(shù)的具體功能,在實踐過程中,學(xué)生有時候把count函數(shù)和sum函數(shù)弄混,在教學(xué)過程中應(yīng)該強調(diào)二者的區(qū)別,count用來計數(shù),sum用來給數(shù)值數(shù)據(jù)求和。
(2)分析分組的依據(jù)。例如求男女生的平均年齡,應(yīng)該按性別分組;求每個學(xué)生的平均成績,應(yīng)該按學(xué)號分組;求每門課程的平均成績應(yīng)該按課程號分組等。由淺入深,讓學(xué)生掌握如何確定分組依據(jù)。
(3)通過實踐加強學(xué)生對所學(xué)知識的理解和掌握。例3:統(tǒng)計男女生人數(shù)。
命令:select性別,count(*) as人數(shù)
from學(xué)生表
group by性別
讓學(xué)生實踐操作:統(tǒng)計男女生入學(xué)成績的平均分,統(tǒng)計不同專業(yè)學(xué)生的平均年齡等操作。
2.4多表查詢和嵌套查詢
2.4.1多表查詢
首先要分析的是查詢中最少需要的數(shù)據(jù)表,而不是把所有表都寫進查詢,這樣就會影響查詢效率。其次,要分析多表查詢中的連接條件,例如學(xué)生表和專業(yè)表通過專業(yè)編號連接,課程表和成績表通過課程號連接等。最后,需要提醒學(xué)生多表中具有的相同字段在顯示時必須寫上表的別名或表名。
2.4.2嵌套查詢
從簡單的實例出發(fā):例如查詢所有選課的學(xué)生信息,應(yīng)該就是查詢那些學(xué)號在成績表中的所有學(xué)生信息,查詢命令為:
select*from學(xué)生表
where學(xué)號in(select學(xué)號from成績表)
讓學(xué)生思考:查詢被學(xué)生選修的課程信息,應(yīng)該如何寫,使學(xué)生對所學(xué)知識融會貫通,提高學(xué)生的數(shù)據(jù)庫應(yīng)用能力。
3結(jié)語
SQL語言是VFP數(shù)據(jù)庫教學(xué)的核心部分,本文針對教學(xué)過程中存在的問題,通過教學(xué)方法的改革與實踐,使學(xué)生的學(xué)習(xí)由被動變主動,提高了學(xué)生的學(xué)習(xí)興趣,使學(xué)生能夠利用SQL語言完成數(shù)據(jù)庫的基本操作,學(xué)生的素質(zhì)和課堂教學(xué)質(zhì)量得到了進一步提升。