版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
華工數(shù)據(jù)庫(kù)實(shí)驗(yàn)題創(chuàng)建Student數(shù)據(jù)庫(kù),包括Students,Courses,SC表,表結(jié)構(gòu)如下:Students(SNO,SNAME,SEX,BDATE,HEIGHT,DEPARTMENT)Courses(CNO,CNAME,LHOUR,CREDIT,SEMESTER)SC(SNO,CN,GRADE)(注:下劃線表示主鍵,斜體表示外鍵),并插入一定數(shù)據(jù)。createtableStudents(SNOvarchar(100)primarykeySNAMEvarchar(100)null,SEXvarchar(100)null,BDATEdatetimenull,HEIGHTdecimalnull,DEPARTMENTvarchar(100)null)gocreatetableCourses(CNOvarchar(100)primarykeyCNAMEvarchar(100)null,LHOURintnull,CREDITintnull,SEMESTERvarchar(100)null)goCREATETABLE[dbo].[SC]([SNO]varchar(100)NOTNULL,[CNO]varchar(100)NOTNULL,[GRADE][int]NULL,CONSTRAINT[PK_SC]PRIMARYKEYCLUSTERED([SNO]ASC,[CNO]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOALTERTABLE[dbo].[SC]WITHCHECKADDCONSTRAINT[FK_SC_Courses]FOREIGNKEY([CNO])REFERENCES[dbo].[Courses]([CNO])GOALTERTABLE[dbo].[SC]CHECKCONSTRAINT[FK_SC_Courses]GOALTERTABLE[dbo].[SC]WITHCHECKADDCONSTRAINT[FK_SC_Students]FOREIGNKEY([SNO])REFERENCES[dbo].[Students]([SNO])GOALTERTABLE[dbo].[SC]CHECKCONSTRAINT[FK_SC_Students]完成如下的查詢要求及更新的要求。查詢身高大丁1.80m的男生的學(xué)號(hào)和姓名;答:selectSNO,SNAMEfromStudentswhereHEIGHT>1.8查詢計(jì)算機(jī)系秋季所開(kāi)課程的課程號(hào)和學(xué)分?jǐn)?shù);答:selectCNO,CREDITfromCourseswhereSEMESTER='秋季'查詢選修計(jì)算機(jī)系秋季所開(kāi)課程的男生的姓名、課程號(hào)、學(xué)分?jǐn)?shù)、成績(jī);答:selects.SNAME,SC.CNO,c.CREDIT,SC.GRADEfromstudentssinnerjoinSConsc.SNO=s.SNOinnerjoinCoursesconsc.CNO=c.CNOwheres.DEPARTMENTS計(jì)算機(jī)系'ands.SEX='男'andc.SEMESTER='秋季'查詢至少選修一門電機(jī)系課程的女生的姓名(假設(shè)電機(jī)系課程的課程號(hào)以EE開(kāi)頭);答:selectdistincts.snamefromStudentss,scwheres.sno=sc.snoands.sex='女’olike'EE%'查詢每位學(xué)生已選修課程的門數(shù)和總平■均成績(jī);答:selectcount(c.CNC)as課程門數(shù),avg(SC.GRADE)as總平均成績(jī)fromstudentssinnerjoinSConsc.SNO=s.SNOinnerjoinCoursesconsc.CNO=c.CNOgroupbys.SNO查詢每門課程選課的學(xué)生人數(shù),最高成績(jī),最低成績(jī)和平均成績(jī);答:selectcname,count(cno),max(grade),min(grade),avg(grade)fromstudentsnaturaljoinscnaturaljoincoursesgroupbychane;查詢所有課程的成績(jī)都在80分以上的學(xué)生的姓名、學(xué)號(hào)、且按學(xué)號(hào)升序
join(selectsno.min(grade)as答:selectsname,snofromstudentsnaturalminifromscgroupbysno)join(selectsno.min(grade)as查詢?nèi)背煽?jī)的學(xué)生的姓名,缺成績(jī)的課程號(hào)及其學(xué)分?jǐn)?shù);selectsname,coursescno,creditfromstudents,courses,scwherestudents.sno=o=scselectsname,coursescno,creditfromstudents,courses,scwherestudents.sno=o=oandgradeisnull;(9)名;selectsnamefromstudents,courses,sc(9)名;selectsnamefromstudents,courses,scwherestudents.sno=o=sc.choandcredit>=3andgrade<70;查詢有一門以上(含一門)三個(gè)學(xué)分以上課程的成績(jī)低丁70分的學(xué)生的姓(10)查詢1984年~1986年出生的學(xué)生的姓名,總平■均成績(jī)及已修學(xué)分?jǐn)?shù)。selectsmane,avg(grade),sun(credit)fromstudentsnaturaljoinscnaturaljoincourseswhereselectfromstudentsnaturaljoinscnaturaljoincourseswherebdatebetween'1984-00-00'and'1987-00-00'groupbysname;(11)deletescwhereSNOlike'%01%'deleteStudentswhereSNOlike'%01%'(12)<0409101<0408130在STUDENT關(guān)系中增加以下記錄:何平向陽(yáng)1987-03-021986-12-11insertintostudents(11)deletescwhereSNOlike'%01%'deleteStudentswhereSNOlike'%01%'(12)<0409101<0408130在STUDENT關(guān)系中增加以下記錄:何平向陽(yáng)1987-03-021986-12-11insertintostudentsvalues('0409101'insertintostudentsvalues('0408130'(13)將課程CS-221的學(xué)分?jǐn)?shù)增為3,1.62>1.75>,'何平','女','1987-03-02','向陽(yáng)','男','1986-12-11',1.62,,1.75,講課時(shí)數(shù)增為60在STUDEN和SC關(guān)系中,刪去SNC^'01'開(kāi)關(guān)的所有記錄。updateupdatecoursessetcredit=3wherecno='GS-221updatecoursessetcredit=60wherecno='GS-221'補(bǔ)充題:(1)統(tǒng)計(jì)各系的男生和女生的人數(shù)orderbydepartmentTOC\o"1-5"\h\zselectdepartment,sum(casewgensex='男,sum(casewgensex='女,count(sno)fromstudentsthen1else0end),then1else0end),groupbydepartmentorderbydepartment(2)列出學(xué)習(xí)過(guò)’編譯原理’,’數(shù)據(jù)庫(kù)’或’體系結(jié)構(gòu)’課程,且這些課程的成績(jī)之一在90分以上的學(xué)生的名字。答:selectsnamefromstudentsnaturaljoinscnaturaljoincourseswherecname='編譯原理'orcname='數(shù)據(jù)庫(kù)'orcname='體系結(jié)構(gòu)'andgrade>90;⑶列出未修選’電子技術(shù)’課程,但選修了’數(shù)字電路’或’數(shù)字邏輯’課程的學(xué)生數(shù)。答:selectcount(distincisc.sno)fromcourses,sc.snonotin(o=oandcname='電子技術(shù)')oin(selectcnofromcourseswherecname='數(shù)字邏輯'orcname='數(shù)字電路')(4)按課程排序列出所有學(xué)生的成績(jī),尚無(wú)學(xué)生選修的課程,也需要列出,相關(guān)的學(xué)生成績(jī)用NULL^示。答:o,ame,sno,gradefromcoursesleftjoinscon(o)o,ame,sno,o,ame,sno,grade;⑸列出平均成績(jī)最高的學(xué)生名字和成績(jī)。(SELECT^中不得使用TOPn子句)答:selectsname,rfrom(selectsname,avg(grade)asfromstudents,scwherestudents.sno=sc.snogroupbysname,students.snoorderbyrdesc)whererownum=1;選做題:對(duì)每門課增加“先修課程”的屆性,用來(lái)表示某一門課程的先修課程,每門課程應(yīng)可記錄多丁一門的先修課程。要求:修改表結(jié)構(gòu)的定義,應(yīng)盡量避免數(shù)據(jù)冗余,建立必要的主鍵,外鍵。設(shè)計(jì)并插入必要的測(cè)試數(shù)據(jù),完成以下查詢:列出有資格選修數(shù)據(jù)庫(kù)課程的所有學(xué)生。(該學(xué)生已經(jīng)選修過(guò)數(shù)據(jù)庫(kù)課程的所有先修課,并達(dá)到合格成績(jī)。)INSERTS句插入表中注意:須設(shè)計(jì)每個(gè)查詢的測(cè)試數(shù)據(jù),并在查詢之前用實(shí)驗(yàn)二:數(shù)據(jù)庫(kù)的安全和完整性約束INSERTS句插入表中1.采用實(shí)驗(yàn)一的建庫(kù)腳本和數(shù)據(jù)插入腳本創(chuàng)建Student數(shù)據(jù)庫(kù),并完成以下操新增表Credits(SNO,SumCredit,NoPass),表示每學(xué)生已通過(guò)選修課程的合計(jì)學(xué)分?jǐn)?shù),以及不及格的課程數(shù)。答:createtableCredits(SNOvarchar(100),SumCreditint,NoPassint)創(chuàng)建視圖Student_Grade(Sname,Cname,Grade),表示學(xué)生選修課程及成績(jī)的詳細(xì)信息。答:createviewStudent_Gradeasselects.SNAME,c.CNAME,SC.GRADEfromstudentssinnerjoinSConsc.SNO=s.SNOinnerjoinCoursesconsc.CNO=c.CNO在數(shù)據(jù)庫(kù)中創(chuàng)建以下觸發(fā)器:Upd_Credit要求:當(dāng)在SC表中插入一條選課成績(jī),自動(dòng)觸發(fā)Upd_Credit,完成在Credits表中修改該學(xué)生的合計(jì)學(xué)分?jǐn)?shù)和不及格的課程數(shù)。答:createtriggerUpd_CreditonSCforinsertasdeclare@SNOvarchar(100),@CNOvarchar(100),@GRADEint,@NoPassint,@CREDITintselect@SNO=SNO,@CNO=CNQ@GRADE=GRADE,@NoPass=(casewhenGRADE<60then1else0end)frominsertedselect@CREDIT=CREDITupdateCreditssetSumCredit=SumCreditNoPass=NoPass+@NoPasswhereSNO=@SNOfromCourseswhereCNO=@CNO+@CREDIT,2)Upd_StuView(Insteadof觸發(fā)器)要求:當(dāng)對(duì)視圖Student_Grade作插入數(shù)據(jù)項(xiàng)操作時(shí),自動(dòng)觸發(fā)Upd_StuView,完成對(duì)SC表的插入操作。如:當(dāng)執(zhí)行InsertintoStudent_Gradevalues('王剛','數(shù)據(jù)庫(kù)',54)則觸發(fā)器完成另一插入操作:InsertintoSCvalues('980201','CS-110',54)另夕卜,需要檢查當(dāng)前插入的學(xué)生和課程是否已在Students,和Courses表中存在,如不存在,不執(zhí)行任何操作,并提示用戶錯(cuò)誤信息。答:createtriggerUpd_StuViewonStudent_Gradeforinsertasdeclare@SNAMEvarchar(100),@CNAMEvarchar(100),@GRADEintselect@SNAME=SNAME,@CNAM巨CNAME@GRADE=GRADEfrominsertedIF(EXISTS(SELECT*FROMStudentsWHERESNAME=@SNAMEANDEXISTS(SELECT*FROMCoursesWHERECNAME=@CNAME)BEGINInsertintoSCselect(SELECTTOP1SNOFROMStudentsWHERESNAME=@SNAME,(SELECTTOP1CNOFROMCoursesWHERECNAME=@CNAME@GRADEENDPK_SC,FK_SC_SNO,FK_SC_CNO)(選做)要求:首*刪除SC『所有主面日外鍵定義,用觸發(fā)器實(shí)現(xiàn)表SC上的主鍵(SNOCNO和夕卜鍵SNOCNO勺約束定義。3.為Student數(shù)據(jù)庫(kù)設(shè)計(jì)安全機(jī)制。要求:在該數(shù)據(jù)庫(kù)系統(tǒng)中,有三類用戶:學(xué)生,權(quán)限包括:查詢所有的課程信息,根據(jù)學(xué)號(hào)和課程號(hào)來(lái)查詢成績(jī)。但不允許修改任何數(shù)據(jù)。(必做)只能查詢自己的成績(jī),不能查詢別人的成績(jī)。(選做)老師:權(quán)限包括:查詢有關(guān)學(xué)生及成績(jī)的所有信息,有關(guān)課程的所有信息,但不允許修改任何數(shù)據(jù)。答:CREATETRIGGERsecure_studentBEFOREUPDATEORDELETEONdatabaseBEGINIF((selectuserfromdual)='老師')THENRAISE_APPLICATION_ERROR(-20506,'您沒(méi)有權(quán)限對(duì)學(xué)生表進(jìn)行修改.’)教務(wù)員:權(quán)限包括:查詢和修改任何有關(guān)學(xué)生和課程的信息,但不允許查詢和修改數(shù)據(jù)庫(kù)中其它任何表,視圖等數(shù)據(jù)庫(kù)對(duì)象。答:CREATETRIGGERsecure_studentBEFOREUPDATEORDELETEONdatabaseEXCEPTStudentsBEGINIF((selectuserfromdual)='教務(wù)員')THENRAISE_APPLICATION_ERROR(-20506,'您沒(méi)有權(quán)限進(jìn)行修改.')要求:安全控制必須僅由數(shù)據(jù)庫(kù)一端來(lái)實(shí)現(xiàn),不考慮由應(yīng)用程序來(lái)控制。為此,需要?jiǎng)?chuàng)建三個(gè)用戶,登錄時(shí)密碼驗(yàn)證;分別授予各類權(quán)限,并測(cè)試權(quán)限的控制是否有效。實(shí)驗(yàn)三:SQL編程實(shí)驗(yàn)要求:1.采用實(shí)驗(yàn)一的建庫(kù)腳本和數(shù)據(jù)插入腳本創(chuàng)建Student數(shù)據(jù)庫(kù)。在數(shù)據(jù)庫(kù)中創(chuàng)建以下存儲(chǔ)過(guò)程:Add_Student(SNO,SNAME,SEX,BIRTHDAY,HEIGHT,DEPT)要求:根據(jù)輸入?yún)?shù),插入一條學(xué)生記錄。答:createprocedureAdd_Student@SNOvarchar(100),@SNAMEvarchar(100),@SEXvarchar(10),@BIRTHDAYdatetime,@HEIGHTdecimal,@DEPTvarchar(100)asinsertintoStudentsvalues(@SNOSNO,@SNAME@SEX@BIRTHDAY,@HEIGHT,@DEPT)Upd_Grade(SNO,CNO,GRADE)要求:根據(jù)輸入?yún)?shù),修改某學(xué)生選課的成績(jī)。答:createprocedureUpd_Grade@SNOvarchar(100),@CNOvarchar(100),@GRADEINTasUPDATESCsetSNO=@SNOCNO=@CNOGRADE=@GRADEwhereSNO=@SNOandCNO=@CNODisp_Student(SNO,SUM_CREDIToutputAVG_GRADEoutput)要求:根據(jù)SNO^數(shù)顯示該學(xué)生的有關(guān)信息,包括:學(xué)號(hào),姓名,性別,年齡,身高,系別,所有選修的課程及成績(jī);顯示輸出參數(shù)SUM_CREDI寂示選修課程的總學(xué)分)及AVG_GRAD或示3學(xué)分以上的課程的平&成績(jī))。答:createprocedureUpd_Grade@SNOvarchar(100),@SUM_CREDITINToutput,@AVG_GRADEintoutputasselectinner*fromStudentssjoinSConsc.SNO=s.SNOinnerwherejoinCoursesconsc.CNO=c.CNOs.SNO=@SNOselectwhere@SUM_CREDIT=SumCreditfromCreditsSNO=@SNOselectinnerwheregroup@AVG_GRADE=avg(SC.GRADE)fromStudentssjoinSConsc.SNO=s.SNOs.SNO=@SNOandSC.GRADE>3bys.SNOCAL_GPA(SN,OGPAoutput)要求:根據(jù)SNC^數(shù),輸出并顯示該學(xué)生的GPAS。計(jì)算方法如下:GRADE(G)GRADEPOINT(GP)TOC\o"1-5"\h\zG>=85485>G>=75375>G>=60260>G1GPA=(£GP*CREDIT)/工CREDIT)答:createprocedureCAL_GPA@SNOvarchar(100),@GPAdecimaloutputasde
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度產(chǎn)業(yè)園租賃及產(chǎn)業(yè)孵化基地建設(shè)合同4篇
- 2025年度拆除工程風(fēng)險(xiǎn)評(píng)估分包合同示范文本4篇
- 2025年LED路燈節(jié)能升級(jí)項(xiàng)目購(gòu)銷及維護(hù)合同3篇
- 2025年度商業(yè)街租賃合同標(biāo)準(zhǔn)范本4篇
- 2025年度彩鋼房拆除與裝配式建筑推廣合同范本3篇
- 2025年度廠房建設(shè)項(xiàng)目環(huán)境影響評(píng)價(jià)合同范本4篇
- 2024版招商引資居間合同協(xié)議書(shū)范本
- 2025年度電子游戲角色插畫開(kāi)發(fā)合同4篇
- 2025年度生物醫(yī)藥產(chǎn)業(yè)項(xiàng)目合作協(xié)議范本4篇
- 資產(chǎn)評(píng)估服務(wù)房屋征收項(xiàng)目測(cè)繪實(shí)施方案
- 2025年經(jīng)濟(jì)形勢(shì)會(huì)議講話報(bào)告
- 北師大版小學(xué)三年級(jí)上冊(cè)數(shù)學(xué)第五單元《周長(zhǎng)》測(cè)試卷(含答案)
- 國(guó)家安全責(zé)任制落實(shí)情況報(bào)告3篇
- 2024年度順豐快遞冷鏈物流服務(wù)合同3篇
- 六年級(jí)下冊(cè)【默寫表】(牛津上海版、深圳版)(漢譯英)
- 合同簽訂培訓(xùn)
- 電工基礎(chǔ)知識(shí)培訓(xùn)課程
- 鐵路基礎(chǔ)知識(shí)題庫(kù)單選題100道及答案解析
- 金融AI:顛覆與重塑-深化理解AI在金融行業(yè)的實(shí)踐與挑戰(zhàn)
- 住宅樓安全性檢測(cè)鑒定方案
評(píng)論
0/150
提交評(píng)論