資源描述:
《數(shù)據(jù)庫的集合查詢和統(tǒng)計查詢實驗》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。
1、(三》數(shù)據(jù)庫的集合查詢和統(tǒng)計查詢實驗1.實驗目的本實驗的目的是使學生熟練掌握SQLServer查詢分析器的使用方法,加深SQL語言查詢語句的理解。熟練掌握數(shù)據(jù)查詢中的分組、統(tǒng)計、計算和集合的操作方法。2.實驗時數(shù)2學時[相關知識](1)分組和SQL函數(shù)查詢SQL函數(shù)是綜合信息的統(tǒng)計函數(shù),包括計數(shù)、求最大值、最小值、平均值、和值等,較詳細的SQL函數(shù)及功能見第三章3.3節(jié)(SQL查詢用的函數(shù))。SQL函數(shù)可作為列標識符出現(xiàn)在SELECT子句的目標列或HAVING子句的條件屮。在SQL查詢語句中,如果有GROUPBY分組子句,則語句中的函數(shù)
2、為分組統(tǒng)計函數(shù);如果沒有GROUPBY分組子句,則語句中的函數(shù)為全部結果集的統(tǒng)計函數(shù)。表1基本的SQL函數(shù)函數(shù)功能AVG(v數(shù)值表達式〉)求與字段相關的數(shù)值表達式的平均值SUM(v數(shù)值表達式〉)求與字段相關的數(shù)值表達式的和值MIN(v字段表達式〉)求字段表達式的最小值MAX(v字段表達式〉)求字段表達式的最大值COUNT(*
3、v字段〉)求記錄行數(shù)(9,或求不是NULL的字段的行數(shù)(2)集合查詢每一個SELECT語句都能獲得一個或一組元組。若要把多個SELECT語句的結果合并為一個結果,可用集合來完成。集合操作主耍包插并操作UNION、交
4、操作INTERSECT和差操作MINUSo標準SQL語言中提供了并操作UNION,沒有直接提供交操作INTERSECT和差操作MINUS,但可以用其他方法來實現(xiàn),具體實現(xiàn)方法依查詢不同而不同。3.實驗內容本實驗的主要內容是:a)分組查詢實驗。該實驗包括分組條件表達、選擇組條件表達的方法。b)使用函數(shù)查詢的實驗。該實驗包括統(tǒng)計函數(shù)和分組統(tǒng)計函數(shù)的使用方法。c)集合查詢實驗。該實驗并操作UNION、交操作INTERSECT和差操作MINUS的實現(xiàn)方法。具體完成以下例題,將它們用SQL語句表示,在學生選課中實現(xiàn)其數(shù)據(jù)查詢操作。在數(shù)據(jù)庫屮建立學
5、生選課表學號姓名性別年齡所在系0001李雍19計算機科學系0004柳伊20計算機科學系0008王巧巧18信息管理系0011張清19計算機科學系0018歐陽薦19信息管理系0021陳辰20計算機科學系?1丘表-Course"中的數(shù)據(jù),位置是?Studezrt"中、叮曠上課程號1課程名1先行課1學分11C142C233C3254C412?宥表USCW中的數(shù)據(jù),位置是-Student"中、UX4W上學號課程號成績0001188000419100082810011100182750021165?口回僅1求學生的總人數(shù),u
6、'11查詢一X4.Student.X4Ad?inistrator—無標題1拿SELECTCOUNTS)FROMStudent:
7、<_Z—祖——:_I>1(無列名)62求選修了課程的學生人數(shù)—X4.Student.X4Ad*inistrator—SELECTCOU1^T(DISTINCTFROMSC;
8、3求課程和選修了該課程的學生人數(shù)SELECT課程號?COUN譏學號廠FROMSCGROUPBY課程號<課程號「(無列名)11142224求選修超過3門課的學生學號SELECT學號FROMSCGROUPBY學號HAVINGCOUNT(*)
9、>3;
10、<
11、
12、I學號5查詢計算機科學系的學生及年齡不大于19歲的學生SELECT*FROMStudentWHERE所在系二'計算機科學系'UNIONSELECT*FROMStudentWHERE年齡<=19;
13、<lli學號姓名性別年齡所在系1巧存雍伊巧清郵辰李柳王張歐陳19計算機科學系20計算機科學系18信息管理系19計算機科學系19信息管理系20計算機科學系男女女男女男6查詢計算機科學系的學生與年齡不大于19歲的學生的交集SELECT*FROMStudentWHERE所在系二'計算機科學系’AND年齡<=19;
14、學號―[姓名性別庫齡]
15、所在系10001李雍男19計算機科學系20011張清男19計算機科學系7查詢計算機科學系的學生與年齡不大于19歲的學生的差集SELECT*FROMStudentWHERE所在系二‘計算機科學系’AND年齡>09:學號姓名[性別年齡所在系10004柳伊女20計算機科學系20021陳辰男20計算機科學系8查詢選修課程'Cl,的學生集合與選修課程'C2,的學生集合的交集SELECT*FROMSCWHERE課程號=,TAND課程號「2'
16、A<——皿一學號課程號成績9查詢選修課程'C1'的學牛集合與選修課程(2,的學牛集合的差集SELECT*FR
17、OMSCWHERE課程號二’1’AND課程號?'2’:
18、
19、皿二>學號—
20、課程號成績
21、1000118820004191300111NULL40021165