梁文娟 張延鋒
摘要:SQL分組查詢是SQL數(shù)據(jù)查詢語句的一個(gè)教學(xué)難點(diǎn)。首先分析了學(xué)生在學(xué)習(xí)分組查詢時(shí)存在的主要問題,然后結(jié)合實(shí)際教學(xué)經(jīng)驗(yàn),提出了一種通過對分組查詢實(shí)例的執(zhí)行過程進(jìn)行分析來學(xué)習(xí)分組查詢的教學(xué)方法,初步實(shí)踐表明可以有效提高SQL分組查詢的教學(xué)效果。
關(guān)鍵詞:分組查詢;教學(xué)法;聚集函數(shù);笛卡爾積;視圖
中圖分類號:G642文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)24-5752-03
Exploration of Teaching on Group Query Statement in SQL
LIANG Wen-juan, ZHANG Yan-feng
(College of Computer and Information Engineering, Kaifeng 475001, China)
Abstract: Group query statement of SQL in Database Course Teaching is both difficult and important. This paper first analyzes the main problems when students studying the group query statement, and then, in combination with the teaching experience, proposes a new didac? tics based on analyzing the executing processes of group query examples. The tentative practice has proves that the new didactics can im? prove teaching effectively.
Keywords: group query; didactics; aggregation function; cartesian product; SQL view
圖3中間結(jié)果集2
3)按GROUP子句中指定列的值分組,對第二步中間結(jié)果集,再加上GROUP BY學(xué)號,在SQL SERVER中執(zhí)行,讓學(xué)生對分組后的查詢結(jié)果集有一個(gè)形象直觀的印象,同時(shí)穿插講解分組屬性的概念和SELECT子句中目標(biāo)列表達(dá)式的寫法;由圖4和圖3比較可以發(fā)現(xiàn),分組后,分組屬性值相等的為一組,再加上GROUP BY子句后,每組為結(jié)果集中的一條記錄。所以,在分組查詢語句的SE? LECT子句中,我們只能寫分組屬性和對組內(nèi)記錄操作的聚集函數(shù),因?yàn)橹挥羞@樣,在每一組值才是單一的。圖4中間結(jié)果集3
4)提取滿足HAVING子句中組條件表達(dá)式的那些組;針圖4進(jìn)行分析得出滿足COUNT(*)>=2的組,然后在上步SQL語句中加上HAVING COUNT(*)>=2,在SQL SERVER中執(zhí)行,查看最終的查詢結(jié)果集圖5;圖5中間結(jié)果集4
在這里,我們在補(bǔ)充講解HAVING短語中的條件表達(dá)式和WHERE子句中的條件表達(dá)式的區(qū)別;
經(jīng)過上述分析,最后總結(jié)分組查詢語句的內(nèi)容,同時(shí)結(jié)合學(xué)生在分組查詢實(shí)踐中經(jīng)常出現(xiàn)的錯(cuò)誤,強(qiáng)調(diào)以下幾點(diǎn):
1)分組查詢中SELECT子句中的目標(biāo)列只能是分組屬性和聚集函數(shù);
2)分組查詢中的聚集函數(shù)的作用對象是每個(gè)組;
3)分組查詢中元組篩選條件要放在WHERE子句中,組篩選條件要放在HAVING短語中;
經(jīng)過以上分析講解,學(xué)生們對分組查詢就有了形象直觀的概念。由于該知識點(diǎn)的學(xué)習(xí)具有很強(qiáng)的實(shí)踐性特點(diǎn),此時(shí),我們可以再設(shè)計(jì)一些典型的分組查詢要求的實(shí)例,讓學(xué)生應(yīng)用鞏固,那么就可以起到好的教學(xué)效果。
在傳統(tǒng)的教學(xué)過程中,分組語句的講解是直接先講語法以及分組語句中應(yīng)注意的問題,然后再分析一些實(shí)例,語法和實(shí)例脫節(jié);該文提出對應(yīng)于實(shí)例的SQL分組查詢語句的執(zhí)行過程來學(xué)習(xí)分組查詢語句,將語法及分組語句的特點(diǎn)的學(xué)習(xí)放在語句執(zhí)行過程中去學(xué)習(xí),體現(xiàn)了一種新的教學(xué)思路,實(shí)踐證明,這種教學(xué)方法起到了較好的教學(xué)效果。