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

        ?

        VF中SQL復雜查詢的四步教學法研究

        2014-03-28 11:29:09賈麗萍
        重慶三峽學院學報 2014年3期
        關鍵詞:學號課程表代號

        賈麗萍

        (山西師范大學臨汾學院,山西臨汾 041000)

        Visual FoxPro是一個集數據庫技術與程序設計為一體的關系數據庫系統開發(fā)軟件,在眾多的數據庫系統軟件中有著不可替代的作用,長久以來享有“大眾數據庫”的美譽.

        SQL是結構化查詢語言,是操作關系數據庫的標準數據庫查詢語言,提供了關系數據庫定義、數據操作和數據查詢等功能.其中數據查詢是SQL的核心,也是教學的重點和難點.本文主要針對SQL中的復雜查詢,從查詢涉及的字段、字段來自哪些表、表之間的關聯、查詢條件分析四個方面闡述了如何利用四步法編寫復雜的查詢語句.

        1 多表聯接查詢

        假設“教學管理”數據庫中有5個表,分別是學生表(學號c(7)主索引,姓名c(8),性別c(2),出生日期d,專業(yè)c(10)普通索引,入學成績n(5,1),貸款否l,照片g,簡歷m),任課表(課程代號c(5)普通索引,教師代號c(5)普通索引)其中課程代號+教師代號為主索引,課程表(課程代號c(5)主索引,課程名c(16)普通索引,周學時n(1,0),學分n(1,0)),教員表(教師代號c(5)主索引,姓名c(8),性別c(2),出生日期d,職稱c(6)),成績表(學號c(7)普通索引,課程代號c(5)普通索引,平時n(3,0),期中n(3,0),期末n(3,0))其中學號+課程代號為主索引[1].

        題目1:檢索所有選修了“大學語文”課程的學生姓名、學號和課程名.

        教學法:

        (1)查詢涉及的字段

        (學生)姓名、學號、課程名

        (2)字段來自哪些表

        學生表、課程表

        (3)表之間的關聯

        學生表、課程表之間沒有關聯.應該尋找中間表將這兩個表關聯起來.觀察數據庫中的表,分析得出:學生表通過成績表和課程表關聯.

        (4)查詢條件分析

        課程名=“大學語文”

        最后,編寫SQL語句為:select姓名,學生表.學號,課程名from學生表,成績表,課程表where學生表.學號=成績表.學號 and課程表.課程代號=成績表.課程代號and課程名=“大學語文”,或者也可編寫為:select姓名,學生表.學號,課程名from學生表join成績表join課程表on課程表.課程代號=成績表.課程代號 on學生表.學號=成績表.學號where課程名=“大學語文”.

        題目 2:檢索選修“大學語文”課程的學生姓名、課程名和教師姓名.

        教學法:

        (1)查詢涉及的字段

        (學生)姓名、課程名、教師姓名

        (2)字段來自哪些表

        學生表、課程表、教員表

        (3)表之間的關聯

        學生表、課程表、教員表之間沒有關聯.應該尋找中間表將這三個表關聯起來.觀察數據庫中的表,分析得出:學生表通過成績表和課程表關聯,教員表通過任課表和課程表關聯.

        (4)查詢條件分析

        課程名=“大學語文”

        最后,編寫SQL語句為:select學生表.姓名as學生姓名,課程名,教員表.姓名as教師姓名from學生表,成績表,課程表,教員表,任課表 where學生表.學號=成績表.學號 and課程表.課程代號=成績表.課程代號and教員表.教師代號=任課表.教師代號and課程表.課程代號=任課表.課程代號and課程名=“大學語文”,或者也可編寫為:select學生表.姓名as學生姓名,課程名,教員表.姓名as教師姓名from學生表join成績表join課程表join任課表join教員表 on教員表.教師代號=任課表.教師代號on課程表.課程代號=任課表.課程代號on課程表.課程代號=成績表.課程代號 on學生表.學號=成績表.學號where課程名=“大學語文”

        注意:join連接多個表時,join的順序要和On的順序(相應的連接條件)正好相反.

        2 嵌套查詢

        題目 3:檢索學生中入學成績高于平均入學成績的學生姓名、學號、專業(yè)、入學成績.

        教學法:

        (1)查詢涉及的字段

        (學生)姓名、學號、專業(yè)、入學成績

        (2)字段來自哪些表

        學生表

        (3)表之間的關聯

        無(一個表)

        (4)查詢條件分析

        入學成績高于平均入學成績:先利用avg()函數計算學生的平均入學成績,再將每個學生的入學成績與之比較.

        最后,編寫SQL語句為:select姓名,學號,專業(yè),入學成績from學生表where入學成績>(select avg(入學成績) from學生表)

        題目 4:檢索每個職工經手的具有最高總金額的訂購單信息.

        假設“訂購單”表(職工號c(5),訂購單號 c(5)主索引,供應商號c(5),訂購日期 d,總金額 n(10,4))[2]

        教學法:

        (1)查詢涉及的字段

        職工號、訂購單號、供應商號、訂購日期、總金額

        (2)字段來自哪些表

        訂購單表

        (3)表之間的關聯

        無(一個表)

        (4)查詢條件分析

        每個職工經手的最高總金額:這個查詢中外層查詢和內層查詢使用同一訂購單表,所以給它們分別指定別名out1和in1.用外層查詢提供out1中的每個記錄的職工號值給內層查詢用,內層查詢利用這個職工號值確定該職工經手的具有最高總金額的訂購單的總金額,然后外層查詢再根據out1的同一記錄的總金額值與該總金額值進行比較,如果相等,則該記錄被選擇.

        最后,編寫SQL語句為:select out1.職工號,out1.訂購單號,out1.供應商號,out1.訂購日期,out1.總金額 from訂購單 out1 where 總金額=(select max(總金額) from 訂購單 in1 where out1.職工號=in1.職工號)

        3 其他查詢

        設有學生表(學號,姓名,性別,出生日期)和選課表(學號,課程號,成績),并假定學號的第3、4位為專業(yè)代碼.

        題目5:計算各專業(yè)學生選修課程號為“101”課程的平均成績.

        教學法:

        (1)查詢涉及的字段(隱含在表中)

        專業(yè):subs(學號,3,2)

        平均成績:avg(成績)

        (2)字段來自哪些表

        選課表

        (3)表之間的關聯

        無(一個表)

        (4)查詢條件分析

        各專業(yè)學生選修課程號為“101”:用group by短語將專業(yè)分組,課程號為“101”。

        最后,編寫SQL語句為:select subs(學號,3,2) as 專業(yè),avg(成績) as 平均成績 from 選課表where 課程號="101" group by 1

        題目6:查詢選修課程號為"101"課程得分最高的學生學號、姓名.

        教學法:

        (1)查詢涉及的字段

        學生學號、姓名

        (2)字段來自哪些表

        學生表、選課表

        (3)表之間的關聯

        兩個表中的學號

        (4)查詢條件分析

        找出選修課程號為"101"的所有成績,利用 all找出成績得分最高的;并且課程號="101"。

        最后,編寫SQL語句為:select 學生表.學號,姓名 from 學生表,選課表 where 學生表.學號=選課表.學號 and 課程號="101" and 成績>=all(select 成績 from 選課表 where 課程號="101")

        題目 7:檢索選修的每門課程的成績都高于或等于85分的學生的學號、姓名和性別.

        教學法:

        (1)查詢涉及的字段

        學生的學號、姓名和性別

        (2)字段來自哪些表

        學生表、選課表

        (3)表之間的關聯

        兩個表中的學號

        (4)查詢條件分析

        查找成績小于85分的選課信息,用not exists找出每門課程的成績都高于或等于85分。

        最后,編寫SQL語句為:select 學號,姓名,性別 from 學生表 where not exists (select * from選課表 where 選課表.學號=學生表.學號 and 成績<85 )

        4 總 結

        在該方法中,首先仔細觀察找出題目中出現的所有字段;然后觀察這些字段來自哪些表;如果來自兩個表及以上,則要看這些表是否有關聯,如果沒有關聯,則要尋找中間表將這些表關聯起來;接下來,分析查詢條件,利用計算檢索的函數、查詢中常用的運算符等寫出查詢條件;最后編寫SQL語句.

        在課程教學的最后安排一些相關的練習加強學生用該方法編寫復雜查詢語句的能力,進而鞏固對該方法的理解和掌握,要特別強調對查詢條件的分析.

        [1]周永恒.Visual FoxPro基礎教程:第 3版[M].北京:高等教育出版社,2013.

        [2]教育部考試中心.全國計算機等級考試二級教程——Visual FoxPro數據庫程序設計[M].北京:高等教育出版社,2011.

        猜你喜歡
        學號課程表代號
        《中獸醫(yī)學雜志》
        《中獸醫(yī)學雜志》
        課程表
        演習代號:圍城計劃
        代號“凌凌漆”
        趣味(數學)(2020年3期)2020-07-27 01:43:40
        超萌小鹿課程表
        童話世界(2019年17期)2019-07-04 15:15:36
        我們來打牌
        嘗試親歷的過程,感受探究的快樂
        學生學號的妙用
        青年課程表
        金色年華(2016年8期)2016-02-28 01:39:58
        天天狠狠综合精品视频一二三区| 免费观看国产短视频的方法| 中文字幕无线码免费人妻| 最近中文字幕mv在线资源| 久久国产乱子伦精品免费强| 亚洲国产人成自精在线尤物| 好大好爽我要高潮在线观看| 国产精品 人妻互换| 日子2020一区二区免费视频| 国产精品国产三级国产一地 | 男女互舔动态视频在线观看| 日韩一区二区三区无码影院| 丰满老熟妇好大bbbbb| 精品亚洲女同一区二区| 亚洲av网站在线免费观看| 亚洲国产成人精品无码区在线播放| 少妇高清精品毛片在线视频| 中文不卡视频| 性感的小蜜桃在线观看| 亚洲av乱码一区二区三区林ゆな| 人人爽人人爽人人爽| 久久精品国产精品亚洲婷婷| 一区二区三区极品少妇| 无码人妻丰满熟妇区bbbbxxxx| 午夜福利视频合集1000| 亚洲日日噜噜噜夜夜爽爽| 亚洲一区二区三区精品视频| 妺妺窝人体色www聚色窝| 无码国产精品一区二区免| 亚洲国产av中文字幕| 无码国产精成人午夜视频一区二区 | 亚洲六月丁香色婷婷综合久久| 国语自产精品视频在线看| 成人小说亚洲一区二区三区| 中日韩欧美成人免费播放 | 最新国产精品精品视频| 亚洲男人免费视频网站| 日本最新免费二区| 欧美日韩人妻| 国产毛片一区二区日韩| 东京热日本av在线观看|