楊小艷

摘要: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語言完成數據庫的基本操作,學生的素質和課堂教學質量得到了進一步提升。