《數(shù)據(jù)庫(kù)系統(tǒng)》上機(jī)題,實(shí)驗(yàn)四:T
《《數(shù)據(jù)庫(kù)系統(tǒng)》上機(jī)題,實(shí)驗(yàn)四:T》由會(huì)員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫(kù)系統(tǒng)》上機(jī)題,實(shí)驗(yàn)四:T(20頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、實(shí)驗(yàn)四:T-SQL查詢、存儲(chǔ)過(guò)程、觸發(fā)器、完整性姓名:張浩 學(xué)號(hào):20082617 專業(yè):信息管理與信息系統(tǒng)班級(jí):1課程名稱:數(shù)據(jù)庫(kù)系統(tǒng)概論課程代碼:實(shí)驗(yàn)時(shí)間:2010年12月24日,2010年12月18日實(shí)驗(yàn)地點(diǎn):12號(hào)樓406室1. 實(shí)驗(yàn)特點(diǎn):類型:驗(yàn)證類別:專業(yè)基礎(chǔ)計(jì)劃學(xué)時(shí):4學(xué)時(shí) 每組人數(shù):1人2. 實(shí)驗(yàn)?zāi)康呐c要求:實(shí)驗(yàn)?zāi)康模?)熟練掌握局部變量、游標(biāo)的定義和使用2)熟練掌握存儲(chǔ)過(guò)程、觸發(fā)器的創(chuàng)建和使用3 )掌握數(shù)據(jù)庫(kù)完整性約束的定義和使用基本要求:1)掌握上述過(guò)程定義的一般格式3. 主要儀器設(shè)備:計(jì)算機(jī)+SQL Server 2000第一部分:T-SQL程序設(shè)計(jì)(1 ).如果3號(hào)課程
2、的平均成績(jī)?cè)?80分以上,則輸岀“ 3號(hào)課程成績(jī)良好”,否則輸岀“ 3號(hào)成績(jī)一般” if (select avg(grade) from sc where eno=3)80beginprint 3號(hào)成績(jī)良好endelsebeginprint 3號(hào)成績(jī)一般if Select -wg (grade) from sc where cna-5 : 80 begmprint V號(hào)成績(jī)良奸endJP妙煩氓STI.翌網(wǎng)格aS消息end 汁-:yr. “I,”蘭亠: 1 l .,提示信息(2 )計(jì)算并輸岀95003號(hào)學(xué)生的平均成績(jī),若無(wú)該生信息,則顯示“該生未選課”declare message varcha
3、r(200)if exists(select sno from sc where sc.s no=95003)beg in select avg(grade) from sc where sc.s no=95003 endpri nt message enddeclare Message varchar f200)aif ezists select sno frtym here sc. begin sele匚七 av? grade) froiiL sc where else begin s&t Message 該生未選諜 print message endvr=90) select sno,c
4、no ,grade from sc where sc.grade=90 elseset msg=沒(méi)有學(xué)生的成績(jī)?cè)?0以上pri nt msgdeclarevarchar(200aif ex 11: z i select grade from sc where select sno;, cnoj grade from sc where elseset snsg- 沒(méi)有學(xué)生的成績(jī)?cè)?0以上v1 ! sno crto grade195001 19295D02 290n冏格so消息張浩SOOB261710:00:002 行 行列(4).利用游標(biāo)逐行顯示student表中的記錄。declare curs
5、orvar cursorset cursorvar=cursor scroll dyn amic forselect* from stude nt ope n cursorvarfetch n ext from cursorvarwhile fetch_status=Obeg in fetch next from cursorvar end close cursorvar deallocate cursorvar(5).用自定義函數(shù)計(jì)算全體男生的平均年齡CREATE FUNCTION average(c num char(2) RETURNS int asbeg indeclare aver
6、intselect aver=(select avg(sage) from stude nt where ssex=c num group by ssex) retur n averendgodeclare aver1 in t,c num1 char(2)set c num 仁男select aver1=dbo.average (c num1) select aver1 as 全體男生的平均年齡CREATE FUNCTION averagfl (Acnun char C2) )a.| begin declare (Saver intselect Oaver- i seleut avg (sa
7、ge ret urn averendv全體男生的平均年齡1 GIU張;200&26171 0:00:00 i 行 各 11 ,列 I(6) .顯示course 表中課程名的前 2個(gè)字符。select left(c name, 2) from course order by eno(無(wú)列名n網(wǎng)格ami張浩2 0:00:00(7) .在一列中顯示 student中各元組的學(xué)號(hào)中的年級(jí),列名顯示為“年級(jí)”;另一列中顯示學(xué)號(hào)中的學(xué)生序列號(hào),列名顯示為“序號(hào)”。SELECT SUBSTRINGS no,1,2)年級(jí),SUBSTRINGS no, 3,LEN(s no)-1)序號(hào)FROM stude nt
8、ORDER BY snoSELECT SUBSTRIMG (sno, 1, 2)年ST, SUE STR: aFROM studentORDER BY sno.年級(jí)序號(hào)195001295002395003495004岡格圜消息;曲I加舒i張浩2008261710:00:002行 行 S 列1(8) .在選課表中顯示學(xué)號(hào)、課程號(hào),并根據(jù)成績(jī):0-59顯示“不合格”;60-79顯示“合格” ;80-89顯示良好” ;90-100 顯示優(yōu)秀?!?select sno,cno,grade=casewhe n grade=0 and grade=60 and grade=80 and grade=90
9、and grade=100then 優(yōu)秀endfrom scselect sno, cna=90 md grade =100 thg 優(yōu)香endfrom scvsnoeno grade1234595001 10 2950D1 31 295002 3tisaffn網(wǎng)榕團(tuán)消息|c?H4O6 SH4OB2TAdmtnistrator (54)張浩200026171 0:00:00 :5 存 行釦列 1第二部分:存儲(chǔ)過(guò)程(1 )創(chuàng)建一個(gè)為 worker表添加職工記錄的存儲(chǔ)過(guò)程AddworkerCREATE proc Addworker 職工號(hào) char(4),名姓 char(8),性別 char(2)
10、,岀生日期 datetime,黨員否char(2),參加工作 datetime, 部門號(hào) char (4)as in sert into workervalues( 職工號(hào),名姓,性別,岀生日期,黨員否,參加工作,部門號(hào));(2)創(chuàng)建一個(gè)存儲(chǔ)過(guò)程Delworker 刪除worker表中指定職工號(hào)的記錄create proc Delworker zhigonghao char(4) as delete from worker where 職工號(hào)=zhig on ghao;go(3)顯示存儲(chǔ)過(guò)程Delworker的定義信息(4)刪除存儲(chǔ)過(guò)程 Addworker 和Delworker。不要截圖dro
11、p procedure Addworkerdrop procedure Delworker(5 )創(chuàng)建并執(zhí)行以下存儲(chǔ)過(guò)程:a.從數(shù)據(jù)庫(kù)表中查詢,返回學(xué)生學(xué)號(hào)、姓名、課程名、成績(jī)create proc s_back as select stude nt.s no,sn ame,c name,grade from stude nt,sc,course where stude nt.s no=sc.s no and sc.c no=course.c nogoexec s backcreat e pracgb ackAasselect student, sno, snane, cnane. grade
12、from student、scj coursewhere student.sno=sc. sno and o=course. enoexec s_backV |snosnamecnaftegradeA |195001李勇數(shù)據(jù)庫(kù)02295001E5395001李勇信息系統(tǒng)E8495002劉辰90595002信息系統(tǒng)80V |13網(wǎng)格圍消息jH4067Udni imstrator 強(qiáng)浩 2003261710:00:005行行4列ib.從數(shù)據(jù)庫(kù)表中查詢指定學(xué)號(hào)的學(xué)生學(xué)號(hào),姓名、班級(jí),該存儲(chǔ)過(guò)程接受與傳遞參數(shù),精確匹配的 值create proc r_backa char(10)as select s
13、no,sn ame from stude nt where sno=a go exec r back95003create proc r_backaa char(10)as select sno, sname from student wheSxec r back 5003尸_v-J11L二 Lil ieqsnaiiiE1*95003王敏*昌岡格_團(tuán)消息:(張92008261710:00:001 行行 5,列曲第三部分:觸發(fā)器在表depart上創(chuàng)建一個(gè)觸發(fā)器 depart_update ,當(dāng)更改部門號(hào)時(shí)同步更改worker表中對(duì)應(yīng)的部門號(hào) create trigger depart_updat
14、eon departfor updateas update workerset 咅部門號(hào)=(select 咅部門號(hào) from inserted)where worker.咅咅門號(hào)=(select咅咅門號(hào) from deleted)在表worker上創(chuàng)建一個(gè)觸發(fā)器worker_delete,當(dāng)刪除職工記錄時(shí)同步刪除salary表中對(duì)應(yīng)的職工記錄 create trigger worker_delete on worker for deleteas delete from salarywhere 職工號(hào)=(select 職工號(hào) from deleted)刪除觸發(fā)器depart_updatedrop
15、 trigger depart_update刪除觸發(fā)器worker_deletedrop trigger worker_delete(5)在數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)觸發(fā)器,向選課表添加一條紀(jì)錄時(shí),檢查該紀(jì)錄的學(xué)號(hào)在學(xué)生表中是否存在,檢查該紀(jì)錄的課程號(hào)在課程表中是否存在,若其中有一項(xiàng)為否,則拒絕添加操作,并顯示“違反數(shù) 據(jù)一致性”提示信息。例如:向選課表中添加一條記錄(95007,2,99),說(shuō)明95009不在student表中create trigger sc_in sert on sc for in sert asdeclare xuehao char(10),keche nghao char(10
16、),che ngji smalli nt,a,bselect xuehao=s no, keche nghao=c no from in sertedset a= select sno from stude nt where sno=xuehaoset b= select eno from course where cno=keche nghao if exists(a and b)beig ninsert into sc values(xuehao,keche nghao,che ngji)endrollback transaction print違反數(shù)據(jù)一致性in sert into sc
17、 values(95007,2,99)第四部分:數(shù)據(jù)庫(kù)完整性1、實(shí)施worker表的“性別”字段默認(rèn)值為“男”的約束alter table workeradd constraint con1 default 男for 性另 Vgo例如:insert worker(職工號(hào))values(111)select * from worker2實(shí)施salary表的“工資”字段值在09999的約束create table salary(職工號(hào)char(4),姓名 char(8),日期 datetime,工資 decimal not null check( 工資 =0 and 工資 =9999),prima
18、ry key(職工號(hào),日期)3實(shí)施depart表的“部門號(hào)”字段值唯一的非聚集索引的約束create table depart(部門號(hào) char(4) unique,部門名char(10)Go4、為worker表建立外鍵“部門號(hào)”,參考表depart的“部門號(hào)”列。Create table worker(職工號(hào) char(4) primary key,姓名 char(8),性別 char(2),岀生日期 datetime,黨員否char(2),參加工作 datetime,部門號(hào)char(4),create rule worker_ruleas 性別like 男or 性別 goexec sp_b
19、 in drule worker_rule, worker.Go6、刪除1小題所建立的約束Alter table worker drop con stra int con17、刪除2小題所建立的約束。Alter table salary drop 工資 check8、刪除3小題所建立的約束Alter table depart drop uni que9、刪除4小題所建立的約束Alter table worker drop foreig n key10、解除5小題所建立的綁定并刪除規(guī)則if exists (select n ame from sysobjects where n ame = wo
20、rker_rule and type = R)like 女性別sexbegindrop rule worker_rule倚窗遠(yuǎn)眺,目光目光盡處必有一座山,那影影綽綽的 黛綠色的影,是春天的顏色。周遭流嵐升騰,沒(méi)露出那真實(shí)的面孔。面對(duì)那流轉(zhuǎn)的 薄霧,我會(huì)幻想,那里有一個(gè)世外桃源。在天階夜色涼如水的夏夜,我會(huì)靜靜地, 靜靜地,等待一場(chǎng)流星雨的來(lái)臨許下一個(gè)愿望,不乞求去實(shí)現(xiàn),至少,曾經(jīng),有那么一刻,我那還未枯萎的, 青春的,詩(shī)意的心,在我最美的年華里,同星空做了一次靈魂的交流秋日里,陽(yáng)光并不刺眼,天空是一碧如洗的藍(lán),點(diǎn)綴著飄逸的流云。偶爾,一 片飛舞的落葉,會(huì)飄到我的窗前。斑駁的印跡里,攜刻著深秋的顏色。在一個(gè)落雪 的晨,這紛紛揚(yáng)揚(yáng)的雪,飄落著一如千年前的潔白。窗外,是未被污染的銀白色世 界。我會(huì)去迎接,這人間的圣潔。在這流轉(zhuǎn)的歲月里,有著流轉(zhuǎn)的四季,還有一顆 流轉(zhuǎn)的心,亙古不變的心。
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小數(shù)的加減法PPT課件
- 小學(xué)綜合實(shí)踐活動(dòng)方案課件
- 第11課經(jīng)濟(jì)體制改革課件
- 形而上學(xué)問(wèn)題
- CT心臟冠脈檢查技術(shù)及技巧
- 公開課教案教學(xué)設(shè)計(jì)課件北京課改初中語(yǔ)文七下《群鶴翔空》PPT課件-(二)
- 愛愛醫(yī)資源-西醫(yī)診斷-體檢-一般檢查【38頁(yè)P(yáng)PT】
- 給水方式供水方案
- 《供應(yīng)鏈管理實(shí)務(wù)》任務(wù)五供應(yīng)鏈的綜合計(jì)劃
- 貓虎歌課件(精品)
- 年輕人必備的蘋果樹心態(tài)
- 愛蓮說(shuō) (7)(精品)
- 單片機(jī)原理課程設(shè)計(jì)(本)新
- 相似三角形的性質(zhì)極其應(yīng)用
- 比例風(fēng)險(xiǎn)模型-Cox回歸