亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        SQL語言教學的研究與實踐

        2008-12-31 00:00:00肖遠征曹付元
        計算機教育 2008年18期

        文章編號:1672-5913(2008)18-0145-02

        摘要:本文針對教材中的一些例題進行了分析與探討,給出了同一問題不同的解決方案;設計了面向SQL語言的輔助教學系統(tǒng)。實踐教學表明,這些措施的實施為學生深刻領會和運用SQL語言提供了幫助,增強了學生的實踐能力。

        關鍵詞:SQL語言;數(shù)據(jù)庫系統(tǒng);存儲過程

        中圖分類號:G642 文獻標識碼:B

        引言

        在“數(shù)據(jù)庫原理”課程的教學中,SQL語言是一個難點,也是一個重點,加上該課程的教學大綱中明確要求學生要全面掌握、深刻理解、熟練應用SQL語言。盡管SQL語言有簡單和高度結構化的特點,但在實際教學中學生常是“上課一聽就懂,上機無法下手”,這種情況基本上是理論學習和上機實驗不能同步進行。本文對教材中的一些例題進行了分析,由于教材中使用的數(shù)據(jù)庫系統(tǒng)與實際使用有一定的差距,因此這些例題不能在一些數(shù)據(jù)庫中實現(xiàn),導致了學生上機測試的困難。本文以SQL Server 2000為數(shù)據(jù)庫的實驗平臺,對那些不能實現(xiàn)的例題進行了相應的轉(zhuǎn)化,給出了同一問題的多種實現(xiàn)方法,設計了針對SQL語言使用的輔助實驗系統(tǒng)。為了進一步提高學生對SQL的實踐能力,介紹了存儲過程和自定義函數(shù)的使用。在進行SQL語言教學的過程中,這些方法和措施的實行,已經(jīng)在數(shù)據(jù)庫的綜合實驗和畢業(yè)設計中都得到很好的體現(xiàn)。

        1教材例題,缺乏具體環(huán)境

        例題是學生學習新概念、領會新知識的一種重要手段,它在整個教學過程中起著非常重要的作用。盡管SQL語言是一種通用的語言,但是在不同的關系數(shù)據(jù)庫中管理系統(tǒng)中,仍然有一些微小的差別。教材中推薦使用國產(chǎn)金倉數(shù)據(jù)庫管理系統(tǒng)Kingbase Es作為實驗平臺,但由于該數(shù)據(jù)庫不具有普遍的使用性,而目前普遍使用的是SQL Server、Access、Oracle等數(shù)據(jù)庫的系列版本,這造成了例題與實際使用環(huán)境的脫節(jié)。因此,在教學中,如何根據(jù)使用環(huán)境的不同,對教材種的例題進行及時的調(diào)整顯得尤為重要。在本文中,以SQL Server

        2000作為數(shù)據(jù)庫的使用環(huán)境,下面通過一些例題來說明教材[1]中的實現(xiàn)方式與實際使用環(huán)境的差異性。

        【例51】 查詢選修了課程1又選修課程2的學生。

        教材上給出了如下的表達:

        Select Sno

        From SC

        Where Cno=’1’

        Intersect

        Select Sno

        From SC

        Where Cno=’2’

        而這種表達方式在SQL Server 2000中是無法實現(xiàn)的。在三種集合操作中,只有并操作Union可以以這種方式使用,而交操作Intersect和差操作Except必須通過轉(zhuǎn)化才能在SQL Server 2000中使用。Intersect和Except關鍵字在SQL Server 2000中是兩個函數(shù),分別表示兩個集合的交運算和差運算。下面給出【例51】對應的正確代碼:

        Select Sno

        From SC

        Where Cno=’1’ AND Sno in

        (Select Sno

        From SC

        Where Cno=’2’);

        同樣【例52】的代碼也必須進行轉(zhuǎn)化。

        【例39】查詢與“劉晨”在同一個系學習的學生。

        在教材中特別強調(diào)子查詢一定要跟在比較符之后,并指出了下列語句

        Select Sno,Sname,Sdept

        From student

        Where (Select Sdept

        From Student

        Where Sname=’劉晨’)= Sdept

        是錯誤的,但是上述語句在查詢分析器中能正常執(zhí)行,且能給出正確的結果。

        2一題多解,拓展學生思維

        由于每個學生思考的途徑不同,可能會對同一個問題有許多不同的解法,在教學中,鼓勵學生自覺探求多種解法,這樣不僅使學生的基礎知識、基本技能得到訓練,而且使學生的能力得到增強,智力得到開發(fā)。

        【例21】查詢?nèi)鄙俪煽兊膶W生的學號和相應的課程號。

        Select Sno,Cno

        From SC

        Where Grade IS NULL;

        所謂空值是“不知道”或“無意義”的值,“0”和“空格”都不是空值。以上代碼等同于

        Select Sno,Cno

        From SC

        Where Grade =’’;

        【例7】將計算機科學系全體學生的成績置零。

        Update SC

        Set Grade=0

        Where ‘CS’=

        (Select Sdept

        From Student

        WhereStudent.Sno=SC.Sno);

        習慣上,where后面條件中“=”前面是一個字段,而不應該是一個常量,同樣,以上代碼也可以進行相應的轉(zhuǎn)化

        Update SC

        Set Grade=0

        From SC,Student

        Where Student.Sno=SC.Sno and Student.Sdept=’CS’

        3常見錯誤,不容忽略

        Delete語句的功能是從指定的表中刪除滿足where子句條件的所有元組。如果省略了where子句,表示刪除表中全部元組,但表的定義仍在字典中。也就是說,Delete語句刪除的是表中的數(shù)據(jù),而不是關于表的定義。因此當表中的某一字段設為int型,且為自增型的時候,如果刪除了該表中的全部數(shù)據(jù)。當再插入新的數(shù)據(jù)時候,自增型字段的數(shù)據(jù)不是從1開始,而是從刪除數(shù)據(jù)中的最大值加1開始。為了避免這種情況的產(chǎn)生,在SQL Server 2000中提供了Truncate 命令。因此必須根據(jù)具體情況采用相應的命令。

        4講解例題,增設輔助系統(tǒng)

        在講SQL語言使用的時候,傳統(tǒng)的方法只是把例題中每一條語句給學生解釋一遍,這樣教師教起來沒有激情,學生聽起來倍感枯燥。為此,設計了一個針對SQL語言使用的輔助系統(tǒng),該系統(tǒng)為學生提供了一個上機操作SQL 語言的平臺,讓學生通過在線“做”上機實驗,不斷地觀察、交流和反思,從而更好地“學”SQL 語言的結構和元素。

        5面向應用,提高實踐能力

        SQL語言在實際開發(fā)應用系統(tǒng)過程中占有非常重要的地位。目前,使用SQL編程來訪問和管理數(shù)據(jù)庫中數(shù)據(jù)的方式主要有:嵌入式SQL,PL/SQL,ODBC,JDBC以及OLEDB編程等方式。下面僅對經(jīng)常使用的嵌入式SQL和PL/SQL來做進一步分析:

        (1) 嵌入式SQL::是將SQL語言嵌入程序設計語言中,被嵌入的程序設計語言包括所有的高級語言。但是教材中給出的語句在應用系統(tǒng)的開發(fā)過程中使用頻率是相對比較低的,如何將這些思想和某一具體的開發(fā)工具相結合,使學生更容易理解這些功能,是教學過程中面臨的一個非常重要的問題。

        【例】 連接數(shù)據(jù)庫的語句

        Exec SQL Connect to target [AS connetion-name ][User user-name]

        和關閉數(shù)據(jù)庫的語句

        Exec SQL Disconnect [connection];

        這些語句在目前常用的開發(fā)工具是很少使用的。目前常用的開發(fā)工具中,連接和關閉數(shù)據(jù)庫是通過開發(fā)工具中帶的控件來完成的,如大家熟悉的ADO技術等。

        (2)PL/SQL是編寫數(shù)據(jù)庫存儲過程的一種過程語言,在教材中對存儲過程的介紹比較少,但在實際的應用系統(tǒng)開發(fā)中,存儲過程的開發(fā)可以極大地提高軟件的可維護性和系統(tǒng)的運行速度。下面給出將兩個字符串連接成一個字符串的例子:

        Create procedure strconnect @str1 varchar(20),@str2 varchar(20),@connect varchar(40) output

        As

        Select @connect=@str1+@str2

        (3) 自定義函數(shù)。在系統(tǒng)開發(fā)過程中,經(jīng)常發(fā)現(xiàn)一些相同的功能在多個地方使用,因此,可以通過自定義函數(shù)來完成這一功能。同樣,下面給出一個將兩個字符串連接成一個字符串例子的代碼:

        Function strconnect(str1,varchar(20),str2 varchar(20)

        Begin

        Return str1+str2;

        End;

        總之,進一步掌握SQL語言這些功能,能有效地提高學生的動手實踐能力,增強他們的就業(yè)競爭力。

        參 考 文 獻

        [1] 王珊,薩師煊. 數(shù)據(jù)庫系統(tǒng)概論[M]. 高等教育出版社,2006.

        [2] 曹付元,李茹,梁吉業(yè),王俊紅. “數(shù)據(jù)庫原理”課程中實踐教學的創(chuàng)新模式探索[J]. 高等理科教學(教育教學研究專輯),2008:168-170.

        [3] 李華. 數(shù)據(jù)庫教學淺析[J]. 計算機教育,2007,(8):32-34.

        国产高潮精品久久AV无码 | 一边捏奶头一边高潮视频| 国产激情久久久久影院老熟女| 四虎影视亚洲精品| 日韩av在线不卡观看| 亚洲国产精品中文字幕久久| 国产精品v片在线观看不卡| 国产精品99久久精品爆乳| 果冻蜜桃传媒在线观看| a黄片在线视频免费播放| 欧美人做人爱a全程免费| 亚洲视频在线看| 中文乱码字幕在线中文乱码 | 日本一区二区三区亚洲| 免费a级毛片18以上观看精品| 91在线精品老司机免费播放| 亚洲区一区二区中文字幕| 国产av一级黄一区二区三区| 日日婷婷夜日日天干| 无码AV高潮喷水无码专区线| 求网址日韩精品在线你懂的| 2021亚洲国产精品无码| 欧美日韩亚洲tv不卡久久| 中文精品久久久久中文| 国产麻豆一区二区三区在| 四川丰满妇女毛片四川话| 日韩在线无| 杨幂二区三区免费视频| 99久久国产精品网站| 成av免费大片黄在线观看| 国产欧美日韩不卡一区二区三区 | 久久亚洲中文字幕精品熟| 丰满少妇a级毛片野外| 传媒在线无码| 青青草视频在线播放观看| 亚洲国产aⅴ成人精品无吗| 国产av影片麻豆精品传媒 | 久久伊人精品色婷婷国产| 秘书边打电话边被躁bd视频| 国产黑色丝袜一区在线| 在线视频免费自拍亚洲|