數(shù)據(jù)庫實驗報告實驗二_第1頁
數(shù)據(jù)庫實驗報告實驗二_第2頁
數(shù)據(jù)庫實驗報告實驗二_第3頁
數(shù)據(jù)庫實驗報告實驗二_第4頁
數(shù)據(jù)庫實驗報告實驗二_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗二 SQL Server 數(shù)據(jù)庫設(shè)計高級內(nèi)容實驗內(nèi)容:一、使用分析器實現(xiàn)以下(1)(2)統(tǒng)計有學(xué)生選修的課程門數(shù)。求選課在四門以上的學(xué)生所選課程的平均成績(不統(tǒng)計不及格的課程)。最后按降序列出平均成績名次來。(3)統(tǒng)計每門指選課程的學(xué)生選修人數(shù)(超過10人的課程才統(tǒng)計),要求輸出課程號,課程名和選修人數(shù),結(jié)果按人數(shù)降序排列,若人數(shù)相同,按課程號升序排列。(4)檢索所學(xué)課程包含了s3所選所有課程的學(xué)生注:上述中所用的課程號和學(xué)號的值,可以根據(jù)表中的數(shù)據(jù)作修改;為了驗證的正確,可能還需要輸入或修改表中的示例數(shù)據(jù);二、實現(xiàn)數(shù)據(jù)完整性(1) 定義 check 約束check 約束用來限制用戶輸入的

2、某一列數(shù)據(jù);例如:成績輸入的值應(yīng)該限制為 0-100 之間的數(shù)值(2) 定義規(guī)則(rule)rule 也可以用來限制用戶輸入的數(shù)據(jù),但它只定義一次,可以綁定到一列或多列;例如:創(chuàng)建一個規(guī)則,保證只輸入指定的課程類別:“必修”,“任選”,“指選”,然后把此規(guī)則綁定到“課程類別”;(3) 創(chuàng)建以上約束后,練習(xí)修改約束的操作(包括增加,修改和刪除以上約束);三、在企業(yè)管理器中利用數(shù)據(jù)導(dǎo)入,導(dǎo)出向?qū)Ь毩?xí)數(shù)據(jù)的導(dǎo)入導(dǎo)出;把每個表中的數(shù)據(jù)導(dǎo)出到指定的文本文件中;四、在企業(yè)管理器中,練習(xí)數(shù)據(jù)庫的完整性備份和恢復(fù);五、1過程和觸發(fā)器的實現(xiàn)過程(1)使用 CREATE PROCEDURE 命令創(chuàng)建過程例 1:定

3、義例 2:定義例 3:定義例 4:定義過程,實現(xiàn)學(xué)生學(xué)號,姓名,課程名和成績的;過程,實現(xiàn)按過程,在指定課程的成績;所選修的課程和成績,指定姓名時,可以只給出姓;過程,計算并查看指定學(xué)生的總學(xué)分(2)使用 EXEC 命令執(zhí)行上述2觸發(fā)器過程(1)使用 CREATE TRIGGER 命令對學(xué)生選課信息表創(chuàng)建觸發(fā)器,實現(xiàn)的功能是:當(dāng)向?qū)W生選課信息表中一時,檢查該的學(xué)號在學(xué)生表中是否存在,檢查該的課程編號是否在課程表中存在,若有一項為否,則提示“違背數(shù)據(jù)的一致性”錯誤信息,并且不。(2)使用 CREATE TRIGGER 命令對學(xué)生信息表創(chuàng)建刪除觸發(fā)器,實現(xiàn)的功能是:當(dāng)在學(xué)生信息表中刪除一條時,同時

4、刪除學(xué)生選課信息表中相應(yīng)的。(2)向課程信息表數(shù)據(jù),在學(xué)生信息表刪除,驗證觸發(fā)器的執(zhí)行;在實驗驗收所有的項目后,刪除所創(chuàng)建的數(shù)據(jù)庫, 把實驗中生成的文件,數(shù)據(jù)到 U 盤中,并通過驗收。導(dǎo)出的文本文件以及數(shù)據(jù)庫的備份文件實驗代碼及截圖:SELECTCOUNT(DISTINCTcno)FROMscSELECTSno,AVG(score)avg_gradeFROM SCWHEREGROUP ORDERScore = 60BY Sno HAVING count(CourseNo)=4 BY avg_grade DESCSELECT courseno,COUNT(sno) snum FROM scGRO

5、UP BY courseno HAVING COUNT(sno)=3ORDER BY COUNT(sno) DESC, courseno ASCSELECT DISTINCT sno FROM sc sc_1 WHERE NOT EXISTS(SELECT * FROM sc sc_2 WHERE sno=200815128 ANDNOT EXISTS(SELECT * FROM scsc_3sc_1.snoWHEREsc_3.sno=ANDsc_3.courseno=sc_2.courseno)altertablesc add constraint ck_sc CHECK( score =

6、0 ANDscore = 100)altertablescdropconstraintck_sccreate rulecoursetypeas coursetype in (必修,任選,指選)sp_bindrulecoursetype,Course.Categorysp_unbindrule Course.CategorydroprulecoursetypeCREATE PROC student_query ASSELECT student.sno,sname,coursename,scoreFROM student,course,scWHERE student.sno = sc.sno an

7、d course.courseno = sc.coursenoEXECstudent_queryEXECstudent_queryCREATE PROC student_query1snamecnamevarchar(20),varchar(30)ASSELECTstudent.sno,sname,coursename,score FROM student,course,scWHEREstudent.sno = sc.sno AND course.courseno = sc.coursenoANDsname=snameANDcoursename=cnameexec student_query1

8、 張三,數(shù)據(jù)庫技術(shù)CREATE PROC student_query2 sname varchar(20) = %ASSELECT student.sno,sname,coursename,score FROM student,course,sc WHERE student.sno = sc.sno AND course.courseno = sc.coursenoand sname LIKE snameEXECstudent_query2張%CREATE PROC student_query3 sname varchar(20),total integer OUTPUTASSELECT to

9、tal = SUM(Credits) FROM student,course,scWHEREstudent.sno = sc.snoANDcourse.courseno=sc.coursenoandsname=snamedeclare total floatexec student_query3 張三,total select totalOUTPUTCREATE TRIGGER check_ins ON dbo.SC FOR INSERTASif not exists(select * from student,course,inserted where student.sno=inserted.sno andcourse.courseno=inserted.courseno)RAISERROR (違背數(shù)據(jù)的一致性,16,1)elsebeginPRINT 數(shù)據(jù)已endinsertintoscvalues(4,200815128,80)CREATETRIGGERdel_trigger ON dbo.StudentFOR DELETEASde

溫馨提示

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

評論

0/150

提交評論