




已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)實(shí)驗(yàn)二SQL server實(shí)驗(yàn)二SQL Server數(shù)據(jù)庫(kù)設(shè)計(jì)高級(jí)內(nèi)容一、使用查詢(xún)分析器實(shí)現(xiàn)以下查詢(xún)(1) 統(tǒng)計(jì)有學(xué)生選修的課程門(mén)數(shù)。 SELECT COUNT(DISTINCT CourseNo) CourseTotal FROM sc(2) 求選課在四門(mén)以上的學(xué)生所選課程的平均成績(jī)(不統(tǒng)計(jì)不及格的課程)。最后按降序列出平均成績(jī)名次名單來(lái)。 SELECT sno,AVG(score) avg_grade FROM scWHERE score = 60GROUP BY sno HAVING count(courseno)=4ORDER BY avg_grade DESC(3) 統(tǒng)計(jì)每門(mén)指選課程的學(xué)生選修人數(shù)(超過(guò)10人的課程才統(tǒng)計(jì)),要求輸出課程號(hào),課程名和選修人數(shù),查詢(xún)結(jié)果按人數(shù)降序排列,若人數(shù)相同,按課程號(hào)升序排列。SELECT courseno,COUNT(sno) snumFROM sc GROUP BY courseno HAVING COUNT(sno)=10 ORDER BY COUNT(sno) DESC, courseno ASC(4) 檢索所學(xué)課程包含了s3所選所有課程的學(xué)生姓名。SELECT DISTINCT sno FROM sc sc_1 WHERENOT EXISTS( SELECT * FROM sc sc_2 WHERE sno=200815128 ANDNOT EXISTS(SELECT * FROM sc sc_3 WHERE sc_3.sno = sc_1.sno AND sc_3.courseno = sc_2.courseno)注:上述查詢(xún)中所用的課程號(hào)和學(xué)號(hào)的值,可以根據(jù)自己表中的數(shù)據(jù)作修改;為了驗(yàn)證查詢(xún)的正確,可能還需要輸入或修改表中的示例數(shù)據(jù);二、實(shí)現(xiàn)數(shù)據(jù)完整性(1)定義check約束check約束用來(lái)限制用戶(hù)輸入的某一列數(shù)據(jù);例如:成績(jī)輸入的值應(yīng)該限制為0-100之間的數(shù)值 alter table sc add constraint ck_sc CHECK( score = 0 AND score = 100)刪除約束alter table sc drop constraint ck_sc(2)定義規(guī)則(rule)rule也可以用來(lái)限制用戶(hù)輸入的數(shù)據(jù),但它只定義一次,可以綁定到一列或多列;例如:創(chuàng)建一個(gè)規(guī)則,保證只允許輸入指定的課程類(lèi)別:“必修”,“任選”,“指選”,然后把此規(guī)則綁定到“課程類(lèi)別”;創(chuàng)建規(guī)則create rule coursetypeas coursetype in (必修,任選,指選)綁定規(guī)則sp_bindrule coursetype,Course.Category解除綁定sp_unbindrule Course.Category刪除規(guī)則drop rule coursetype(3)創(chuàng)建以上約束后,練習(xí)修改約束的操作(包括增加,修改和刪除以上約束);三、在企業(yè)管理器中利用數(shù)據(jù)導(dǎo)入,導(dǎo)出向?qū)Ь毩?xí)數(shù)據(jù)的導(dǎo)入導(dǎo)出;把每個(gè)表中的數(shù)據(jù)導(dǎo)出到指定的文本文件中;導(dǎo)出的文件四、在企業(yè)管理器中,練習(xí)數(shù)據(jù)庫(kù)的完整性備份和恢復(fù);備份文件;五、存儲(chǔ)過(guò)程和觸發(fā)器的實(shí)現(xiàn)1存儲(chǔ)過(guò)程(1)使用CREATE PROCEDURE命令創(chuàng)建存儲(chǔ)過(guò)程例1:定義存儲(chǔ)過(guò)程,實(shí)現(xiàn)學(xué)生學(xué)號(hào),姓名,課程名和成績(jī)的查詢(xún);CREATE PROC student_queryASSELECT student.sno,sname,coursename,score FROM student,course,scWHERE student.sno = sc.sno and course.courseno = sc.coursenoEXEC student_query例2:定義存儲(chǔ)過(guò)程,實(shí)現(xiàn)按某人指定課程的成績(jī);CREATE PROC student_query1sname varchar(20),cname varchar(30)ASSELECT student.sno,sname,coursename,score FROM student,course,scWHERE student.sno = sc.sno AND course.courseno = sc.coursenoAND sname = sname AND coursename = cnameexec student_query1 李剛,數(shù)據(jù)庫(kù)技術(shù)例3:定義存儲(chǔ)過(guò)程,在查詢(xún)某人所選修的課程和成績(jī),指定姓名時(shí),可以只給出姓;CREATE PROC student_query2sname varchar(20) = %ASSELECT student.sno,sname,coursename,score FROM student,course,scWHERE student.sno = sc.sno AND course.courseno = sc.coursenoand sname LIKE snameEXEC student_query2 張%例4:定義存儲(chǔ)過(guò)程,計(jì)算并查看指定學(xué)生的總學(xué)分alter table course alter column Credits floatCREATE PROC student_query3sname varchar(20), total integer OUTPUTASSELECT total = SUM(Credits) FROM student,course,scWHERE student.sno = sc.sno AND course.courseno = sc.coursenoand sname = snamedeclare total floatexec student_query3 李剛,total OUTPUTselect total TotalCredits(2)使用EXEC命令執(zhí)行上述存儲(chǔ)過(guò)程2觸發(fā)器(1)使用CREATE TRIGGER命令對(duì)學(xué)生選課信息表創(chuàng)建插入觸發(fā)器,實(shí)現(xiàn)的功能是:當(dāng)向?qū)W生選課信息表中插入一記錄時(shí),檢查該記錄的學(xué)號(hào)在學(xué)生表中是否存在,檢查該記錄的課程編號(hào)是否在課程表中存在,若有一項(xiàng)為否,則提示“違背數(shù)據(jù)的一致性”錯(cuò)誤信息,并且不允許插入。CREATE TRIGGER check_ins ON dbo.SC FOR INSERT ASif not exists(select * from student,course,insertedwhere student.sno=inserted.sno and course.courseno=inserted.courseno) RAISERROR (違背數(shù)據(jù)的一致性,16,1)elsebegin PRINT 數(shù)據(jù)已插入endinsert into sc values(200815128,C4,80)(2)使用CREATE TRIGGER 命令對(duì)學(xué)生信息表創(chuàng)建刪除觸發(fā)器,實(shí)現(xiàn)的功能是:當(dāng)在學(xué)生信息表中刪除一條記錄時(shí),同時(shí)刪除學(xué)生選課信息表中相應(yīng)的記錄。CREATE TRIGGER del_trigger ON dbo.Student FOR DELETE ASdelete from sc where sc.sno in (select sno from deleted
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 消防工程測(cè)量施工方案
- 2025房地產(chǎn)公司合同終止協(xié)議書(shū)
- 2025至2031年中國(guó)后幫機(jī)拉簧油缸行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 水庫(kù)防水施工方案設(shè)計(jì)
- 校長(zhǎng)在初三二模教學(xué)質(zhì)量分析會(huì)上講話明確差距,對(duì)癥下藥,多方聯(lián)動(dòng),分類(lèi)推進(jìn),奮戰(zhàn)60天
- 07【初中】【帶班育人方略】《外爍內(nèi)發(fā)三階遞進(jìn)育博雅少年》
- 蒸汽吹灰器改造施工方案
- 唐山人工假山施工方案
- 2025至2030年中國(guó)軸承鋼精線數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 凱美瑞前杠改色施工方案
- 幼兒園《開(kāi)關(guān)門(mén)要小心》
- 《運(yùn)營(yíng)管理》第2版題庫(kù)與參考答案
- 基于PLC的自動(dòng)配料系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 煙花爆竹工程設(shè)計(jì)安全規(guī)范
- 回旋加速器的五個(gè)有關(guān)問(wèn)題
- 四川省中學(xué)生學(xué)籍卡片
- 夕陽(yáng)簫鼓-鋼琴譜(共11頁(yè))
- 地面沉降監(jiān)測(cè)技術(shù)要求
- 基本建設(shè)項(xiàng)目建設(shè)成本管理規(guī)定解讀
- 金色的魚(yú)鉤課本劇
評(píng)論
0/150
提交評(píng)論