數(shù)據(jù)庫實(shí)驗(yàn)4實(shí)驗(yàn)報(bào)告_第1頁
數(shù)據(jù)庫實(shí)驗(yàn)4實(shí)驗(yàn)報(bào)告_第2頁
數(shù)據(jù)庫實(shí)驗(yàn)4實(shí)驗(yàn)報(bào)告_第3頁
數(shù)據(jù)庫實(shí)驗(yàn)4實(shí)驗(yàn)報(bào)告_第4頁
數(shù)據(jù)庫實(shí)驗(yàn)4實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

淮海工學(xué)院計(jì)算機(jī)工程學(xué)院試驗(yàn)匯報(bào)書課程名:《數(shù)據(jù)庫原理及應(yīng)用》題目:T-SQL高級(jí)應(yīng)用班級(jí):軟件132學(xué)號(hào):122907姓名:孫瑩瑩評(píng)語:評(píng)語:成績(jī):指導(dǎo)教師:批閱時(shí)間:年月日目的與規(guī)定掌握復(fù)雜查詢的使用措施;掌握多表連接的措施;掌握SELECT語句在多表查詢中的應(yīng)用。掌握數(shù)據(jù)匯總、外連接查詢的使用措施;掌握事務(wù)定義的一般措施試驗(yàn)內(nèi)容給出教材14-16的程序運(yùn)行成果。編寫程序,查詢“1033”班的最高分的學(xué)生的學(xué)號(hào)、姓名、班號(hào)、課程號(hào)和分?jǐn)?shù)。編寫程序,創(chuàng)立一種新表,包括所有學(xué)生的姓名、課程名和分?jǐn)?shù),并以姓名排序。編寫程序,輸出每個(gè)班最高分的課程名和分?jǐn)?shù)。在上次試驗(yàn)建立的factory數(shù)據(jù)庫的基礎(chǔ)上,完畢如下各題:刪除factory數(shù)據(jù)庫上各個(gè)表之間建立的關(guān)系;顯示各職工的工資記錄和對(duì)應(yīng)的工資小計(jì)。按性別和部門名的所有組合方式列出對(duì)應(yīng)的平均工資。在worker表中使用如下語句插入一種職工記錄:insertintoworkervalues(20,’陳立’,‘女’,’55/03/08’,1,’75/10/10’,4),在depart表中使用如下語句插入一種部門記錄:insertintodepartvalues(5,’設(shè)備處’)。再對(duì)worker和depart表進(jìn)行全外連接顯示職工的職工號(hào),姓名和部門名。然后刪除這兩個(gè)插入的記錄。顯示最高工資的職工的職工號(hào)、姓名、部門名、工資發(fā)放日期和工資。顯示最高工資的職工所在的部門名。顯示所有平均工資低于所有職工平均工資的職工的職工號(hào)和姓名。先顯示worker表中的職工人數(shù),開始一種事務(wù),插入一種職工記錄,再顯示worker表中的職工人數(shù),回滾該事務(wù),最終顯示worker表中的職工人數(shù)。試驗(yàn)環(huán)節(jié)刪除factory數(shù)據(jù)庫上各個(gè)表之間建立的關(guān)系的操作環(huán)節(jié)如下:①啟動(dòng)SQLServer管理控制器。②在“對(duì)象資源管理器”中展開LCB-PC服務(wù)器節(jié)點(diǎn)。③展開“數(shù)據(jù)庫”節(jié)點(diǎn)。④選中,將其展開。⑤展開“數(shù)據(jù)庫關(guān)系圖”節(jié)點(diǎn)。⑥選中dbo.Diagram_1,右擊,在出現(xiàn)的快捷菜單中選擇“修改”命令,如圖5.1所示。⑦在數(shù)據(jù)庫關(guān)系圖中,選擇表達(dá)要從關(guān)系圖中刪除的關(guān)系的連接線(對(duì)于兩條連線均進(jìn)行⑦~⑨的操作)。⑧右擊關(guān)系線,從快捷菜單中選擇“從數(shù)據(jù)庫中刪除關(guān)系”命令。⑨出現(xiàn)一種消息框,提醒確認(rèn)刪除。單擊“是”按鈕。⑩在出現(xiàn)的對(duì)話框中單擊“是”按鈕保留所做的修改。這樣就將worker表和depart表以及worker表和salary表之間的關(guān)系刪除了。測(cè)試數(shù)據(jù)與試驗(yàn)成果第1-14題圖第1-15題圖第1-16題圖第2題圖第3題圖第4題圖圖5.1第5-2題圖第5-3題圖第5-4題圖第5-5題圖第5-6題圖第5-7題圖第5-8題圖第5-9題圖第5-10題圖成果分析與試驗(yàn)體會(huì)在FROM子句中指定連接條件,有助于將這些連接條件與WHERE子句中的其他搜索條件分開,指定連接時(shí)提議使用這種措施。假如某個(gè)表只出目前子查詢中而不出目前外部查詢中,那么該表中的列就無法包括在輸出中(外部查詢的選擇列表)。使用EXISTS引入的子查詢?cè)谌缦聨追矫媾c其他子查詢略有不一樣: EXISTS關(guān)鍵字前面沒有列名,常量或其他體現(xiàn)式。 由EXISTS引入的子查詢的選擇列表一般都是由星號(hào)(*)構(gòu)成。由于只是測(cè)試與否存在符合子查詢中指定條件的行,因此不必列出列名。源碼1useschoolselect學(xué)號(hào),課程號(hào),分?jǐn)?shù)fromscorewhere學(xué)號(hào)in(103,105)orderby學(xué)號(hào)computeavg(分?jǐn)?shù))by學(xué)號(hào)go2useschoolgoselectstudent.班號(hào),course.課程名,avg(score.分?jǐn)?shù))as'平均分'fromstudent,course,scorewherestudent.學(xué)號(hào)=score.學(xué)號(hào)andcourse.課程號(hào)=score.課程號(hào)groupbystudent.班號(hào),course.課程名withcubego3useschoolgobegintransactionMytraninsertintoteachervalues('999','張英','男','1960/03/05','專家','計(jì)算機(jī)系')savetransactionMytraninsertintoteachervalues('888','胡麗','男','1982/08/04','副專家','電子工程系')rollbacktransactionMytrancommittransactiongoselect*fromteachergodeleteteacherwhere編號(hào)='999'go4useschoolselectstudent.學(xué)號(hào),student.姓名,student.班號(hào),score.課程號(hào),score.分?jǐn)?shù)fromstudent,scorewhere分?jǐn)?shù)in(selectmax(分?jǐn)?shù))fromscorewhere班號(hào)='1033'andstudent.學(xué)號(hào)=score.學(xué)號(hào))5USEschoolgoSELECTs.姓名,c.課程名,sc.分?jǐn)?shù)INTOstudFROMstudents,coursec,scorescWHEREs.學(xué)號(hào)=sc.學(xué)號(hào)andc.課程號(hào)=sc.課程號(hào)andsc.分?jǐn)?shù)isnotnullORDERBYs.姓名SELECT*FROMstudGo6USEschoolGOSELECT班號(hào),課程名,MAX(分?jǐn)?shù))分?jǐn)?shù)FROM(SELECTs.學(xué)號(hào),s.姓名,s.班號(hào),c.課程名,sc.分?jǐn)?shù)FROMstudents,coursec,scorescWHEREs.學(xué)號(hào)=sc.學(xué)號(hào)ANDc.課程號(hào)=sc.課程號(hào)AND分?jǐn)?shù)ISNOTNULL)TGROUPBY班號(hào),課程名ORDERBY班號(hào)GO7USEfactoryGOSELECTworker.職工號(hào),worker.姓名,salary.工資FROMworker,salaryWHEREworker.職工號(hào)=salary.職工號(hào)ORDERBYworker.職工號(hào),worker.姓名COMPUTESUM(salary.工資)BYworker.職工號(hào)GO8USEfactoryGOSELECTworker.性別,depart.部門名,AVG(salary.工資)AS'平均工資'FROMworker,depart,salaryWHEREworker.職工號(hào)=salary.職工號(hào)ANDworker.部門號(hào)=depart.部門號(hào)GROUPBYworker.性別,depart.部門名WITHCUBEGO9USEfactoryGOINSERTINTOworkerVALUES('20','陳立','女','55/03/08',1,'75/10/10',4)GOINSERTINTOdepartVALUES(5,'設(shè)備處')GOSELECTworker.職工號(hào),worker.姓名,depart.部門名FROMworkerFULLJOINdepartON(worker.部門號(hào)=depart.部門號(hào))ORDERBYworker.職工號(hào)GODELETEFROMworkerWHERE職工號(hào)='20'GODELETEFROMdepartWHERE部門號(hào)=5GO10USEfactoryGOSELECTworker.職工號(hào),worker.姓名,depart.部門名,salary.日期,salary.工資FROMworker,depart,salaryWHEREworker.部門號(hào)=depart.部門號(hào)ANDworker.職工號(hào)=salary.職工號(hào)ANDsalary.工資=(SELECTMAX(工資)FROMsalary)GO11USEfactoryGOSELECT部門名FROMdepartWHERE部門號(hào)=(SELECT部門號(hào)FROMworkerWHERE職工號(hào)=(SELECT職工號(hào)FROMsalaryWHERE工資=(SELECTMAX(工資)FROMsalary)))GO12USEfactoryGOSELECT職工號(hào),姓名FROMworkerWHERE職工號(hào)IN(SELECT職工號(hào)FROMsalaryGROUPBY職工號(hào)HAVINGAVG(工資)<(SELECTAVG(工資)FROMsalary))GO13USEfactoryGOSETNOCOUNTON--申明變量DECLARE@dnamechar(10)--申明游標(biāo)DECLAREd_cursorCURSORFORSELECT部門名FROMdepartWHERE部門號(hào)=(SELECT部門號(hào)FROMworkerWHERE職工號(hào)=(SELECT職工號(hào)FROMsalaryWHERE工資=(SELECTMAX(工資)FROMsalary)))--打開游標(biāo)OPENd_cursor--提取第一行數(shù)據(jù)FETCHNEXTFROMd_cursorINTO@dname--打印表標(biāo)題PRINT'部門名'PRINT'---------'WHILE@@FETCH_STATUS=0BEGIN--打印一行數(shù)據(jù)PRINT@dname--提取下一行數(shù)據(jù)FETCHNEXTFROMd_cursorINTO@dnameEND--關(guān)閉游標(biāo)CLOSEd_cursor--釋放游標(biāo)DEALLOCATEd_cursorGO14USEfactoryGOSETNOCOUNTON--申明變量DECLARE@noint,@namechar(10)--申明游標(biāo)DECLAREw_cursorCURSORFORSELECT職工號(hào),姓名FROMworkerWHERE職工號(hào)IN(SELECT職工號(hào)FROMsalaryGROUPBY職工號(hào)HAVINGAVG(工資)<(SELECTAVG(工資)FROMsalary))--打開游標(biāo)OPENw_cursor--提取第一行數(shù)據(jù)FETCHNEXTFROMw_cursorINTO@no,@name--打印表標(biāo)題PRINT'職工號(hào)姓名'PRINT'-----------------'WHILE@@FETCH_STATUS=0BEGIN--打印一行數(shù)據(jù)PRINTCAST(@noASchar(8))+@name--提取下一行數(shù)據(jù)FETCHNEXTFROMw_cursorINTO@no,@nameEND--關(guān)閉游標(biāo)CLOSEw_cursor--釋放游標(biāo)DEALLOCATEw_cursorGO15USEfactoryGODECLARE@numintSELECT@num=COUNT(*)FROMworkerPRINT'原職工人數(shù):'+CAST(@numASCHAR(3))GODECLARE@numintBEGINTRANSACTION--啟動(dòng)事務(wù)--插入一種職工記錄INSERTI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論