實(shí)驗(yàn)七創(chuàng)建和操作數(shù)據(jù)庫(kù)對(duì)象_第1頁(yè)
實(shí)驗(yàn)七創(chuàng)建和操作數(shù)據(jù)庫(kù)對(duì)象_第2頁(yè)
實(shí)驗(yàn)七創(chuàng)建和操作數(shù)據(jù)庫(kù)對(duì)象_第3頁(yè)
實(shí)驗(yàn)七創(chuàng)建和操作數(shù)據(jù)庫(kù)對(duì)象_第4頁(yè)
實(shí)驗(yàn)七創(chuàng)建和操作數(shù)據(jù)庫(kù)對(duì)象_第5頁(yè)
已閱讀5頁(yè),還剩4頁(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)介

1、軟件學(xué)院實(shí) 驗(yàn) 報(bào) 告課程: 數(shù)據(jù)庫(kù)原理與實(shí)用技術(shù)實(shí)驗(yàn) 實(shí)驗(yàn)7 創(chuàng)建和操作數(shù)據(jù)庫(kù)對(duì)象實(shí)驗(yàn)7-1 存儲(chǔ)過(guò)程1、使用不帶參數(shù)的存儲(chǔ)過(guò)程(1)創(chuàng)建一個(gè)存儲(chǔ)過(guò)程my_proc,查詢(xún)“學(xué)生表”中所有計(jì)算機(jī)系女生的學(xué)號(hào)、姓名、性別、年齡和所在院系create proc my_proc as select 學(xué)號(hào),姓名,性別,年齡,所在院系 from 學(xué)生表where 所在院系='計(jì)算機(jī)' and 性別='女'(2)執(zhí)行存儲(chǔ)過(guò)程(3)修改存儲(chǔ)過(guò)程,使其能夠查詢(xún)計(jì)算機(jī)系女生的所有基本信息alter proc my_proc as select * from 學(xué)生表where 所在

2、院系='計(jì)算機(jī)' and 性別='女'2、帶輸入?yún)?shù)的存儲(chǔ)過(guò)程(1)創(chuàng)建一個(gè)存儲(chǔ)過(guò)程my_procsex,使其能夠查詢(xún)“學(xué)生表”中男學(xué)生或女學(xué)生的學(xué)號(hào)、姓名、性別、年齡和所在院系create proc my_procsex sex char(2) asselect 學(xué)號(hào),姓名,性別,年齡,所在院系 from 學(xué)生表 where 性別=sex(2)執(zhí)行存儲(chǔ)過(guò)程exec my_procsex sex='男'3、帶輸入/輸出參數(shù)的存儲(chǔ)過(guò)程(1)創(chuàng)建一個(gè)存儲(chǔ)過(guò)程my_procage,使其能夠根據(jù)學(xué)生姓名,查詢(xún)學(xué)生年齡。(考慮當(dāng)學(xué)生不存在時(shí)給出提示信息)c

3、reate proc my_procage name char(10),age int OUTPUT asif not exists(select * from 學(xué)生表where 姓名=name) return -155select 年齡from 學(xué)生表 where 姓名=name (2)執(zhí)行存儲(chǔ)過(guò)程declare once_age int, status intexec status=my_procage name='陳忠剛',age=once_age output if status=-155print '對(duì)不起,您輸入的名字查找失敗!'print '

4、;the output data is:'+convert(varchar(10),once_age)declare once_age int, status intexec status=my_procage name='李濤',age=once_age output if status=-155print '對(duì)不起,您輸入的名字查找失敗!'print 'the output data is:'+convert(varchar(10),once_age)4、返回狀態(tài)值的存儲(chǔ)過(guò)程(1)創(chuàng)建一個(gè)存儲(chǔ)過(guò)程my_procstatus,使其能夠根

5、據(jù)學(xué)生姓名,查詢(xún)學(xué)生的選課信息。(如果沒(méi)有輸入學(xué)生姓名,返回狀態(tài)碼55;如果輸入的學(xué)生姓名不存在,則返回狀態(tài)碼-155)alter proc my_procstatus name char(10) as if name =''return 55else if not exists(select * from 學(xué)生表where 姓名=name)return -155select 學(xué)號(hào),課程號(hào)from 成績(jī)表where 學(xué)號(hào)in (select 學(xué)號(hào)from 學(xué)生表where 姓名=name)(2)執(zhí)行存儲(chǔ)過(guò)程:接收存儲(chǔ)過(guò)程返回的狀態(tài)碼,如果返回的狀態(tài)碼為55則輸出提示信息“沒(méi)有輸

6、入名字!”;如果返回的狀態(tài)碼為-155,則輸出“沒(méi)找到!”。declare status intexec status=my_procstatus name=if status=55print=沒(méi)有輸入名字!else if status=-155print沒(méi)有找到!declare status intexec status=my_procstatus name=陳忠剛if status=55print=沒(méi)有輸入名字!else if status=-155print沒(méi)有找到!(3)刪除存儲(chǔ)過(guò)程5、在存儲(chǔ)過(guò)程中使用臨時(shí)表,不指定題目,請(qǐng)理解全局臨時(shí)表與局部臨時(shí)表的區(qū)別1、局部臨時(shí)表(#開(kāi)頭)只對(duì)當(dāng)

7、前連接有效,當(dāng)前連接斷開(kāi)時(shí)自動(dòng)刪除。 2、全局臨時(shí)表(#開(kāi)頭)對(duì)其它連接也有效,在當(dāng)前連接和其他訪問(wèn)過(guò)它的連接都斷開(kāi)時(shí)自動(dòng)刪除。 3、不管局部臨時(shí)表還是全局臨時(shí)表,只要連接有訪問(wèn)權(quán)限,都可以用drop table #Tmp(或者drop table #Tmp)來(lái)顯式刪除臨時(shí)表6、使用存儲(chǔ)過(guò)程對(duì)規(guī)則進(jìn)行綁定與解除綁定操作(1)修改“學(xué)生管理數(shù)據(jù)庫(kù)”中的“學(xué)生情況表”,添加屬性“入學(xué)日期”。將規(guī)則Enter_University_date_rule與入學(xué)日期進(jìn)行綁定(2)在該表中插入數(shù)據(jù)記錄學(xué)號(hào)姓名性別年齡專(zhuān)業(yè)家庭地址入學(xué)日期200803001王艷女19計(jì)算機(jī)昆明市正義路3號(hào)2008-8-27查看

8、執(zhí)行結(jié)果(3)解除綁定,再次插入該數(shù)據(jù),查看執(zhí)行結(jié)果。7、使用存儲(chǔ)過(guò)程對(duì)默認(rèn)進(jìn)行綁定與解除綁定操作(1)將默認(rèn)對(duì)象“Time_default”和“Age_default”與上表中的“入學(xué)日期”和“年齡”進(jìn)行綁定,并插入數(shù)據(jù)學(xué)號(hào)姓名性別年齡專(zhuān)業(yè)家庭地址入學(xué)日期200412056張浩男通信沈陽(yáng)市青年路2號(hào)查看執(zhí)行結(jié)果(2)解除綁定,再次插入該數(shù)據(jù),查看執(zhí)行結(jié)果。實(shí)驗(yàn)7-2 視圖的創(chuàng)建與使用1.創(chuàng)建一個(gè)名為stud_view1的視圖,從“學(xué)生管理數(shù)據(jù)庫(kù)”的學(xué)生表中查詢(xún)出性別為男的所有學(xué)生的學(xué)號(hào),姓名,性別,班級(jí),家庭住址,入學(xué)時(shí)間和出生年月。create view stud_view1 as sel

9、ect 學(xué)號(hào),姓名,性別,班級(jí),入學(xué)日期 from 學(xué)生 where 性別='男'2創(chuàng)建一個(gè)名為stud_view2的視圖,查詢(xún)出選修了高等數(shù)學(xué)的所有同學(xué)的選課信息,包括學(xué)號(hào),姓名,成績(jī)。create view stud_view2 as select 學(xué)生表.學(xué)號(hào),學(xué)生表.姓名,成績(jī)表.成績(jī)from 成績(jī)表 join 學(xué)生表 on 成績(jī)表.學(xué)號(hào)=學(xué)生表.學(xué)號(hào)where 課程號(hào) in(select 課程號(hào) from 課程表 where 課程名='高等數(shù)學(xué)')3從視圖stud_view1中查詢(xún)出軟件2班肖一竹的資料。4向視圖stud_view2中插入一行數(shù)據(jù):學(xué)號(hào)

10、為9940210,姓名為錢(qián)麗,成績(jī)?yōu)?1,結(jié)果是什么?5修改視圖stud_view1,將9940201號(hào)同學(xué)的性別更改為女。然后再次查詢(xún)學(xué)生表和視圖stud_view1,看結(jié)果有何改變,為什么?結(jié)果便是變?yōu)榱孙@示從“學(xué)生管理數(shù)據(jù)庫(kù)”的學(xué)生表中查詢(xún)出性別為女的所有學(xué)生的學(xué)號(hào),姓名,性別,班級(jí) 入學(xué)日期。應(yīng)為建立視圖的時(shí)候,from后面只跟了一張表,所以可以對(duì)視圖進(jìn)行更新。6. 完成教科書(shū)457頁(yè)如下習(xí)題:7.5a:三條SQL語(yǔ)句都不合法,因?yàn)樗鼈兊膭?chuàng)建視圖語(yǔ)句中的from后面都跟了多張表,所以創(chuàng)建的視圖不是可更新視圖。7.5b:create view agentview as select * from agentswhere percent<=10 and percent>=0 with check option7.5c:7.5d:create view vproducts as select pid,pname,city,quantity from products;7.9:違反了規(guī)則5,不能夠含有salary1+salary2這種列,這樣的話,如果我們對(duì)視圖進(jìn)行更新以后就無(wú)法使原始表進(jìn)行同步的更新,因?yàn)橹纒alary1+salary2的值,無(wú)法知道salary1與salary2人別的值。7.12: 7.15a:7.15b:update returns set

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論