數(shù)據(jù)庫(kù)上機(jī)習(xí)題及答案_第1頁(yè)
數(shù)據(jù)庫(kù)上機(jī)習(xí)題及答案_第2頁(yè)
數(shù)據(jù)庫(kù)上機(jī)習(xí)題及答案_第3頁(yè)
數(shù)據(jù)庫(kù)上機(jī)習(xí)題及答案_第4頁(yè)
數(shù)據(jù)庫(kù)上機(jī)習(xí)題及答案_第5頁(yè)
已閱讀5頁(yè),還剩3頁(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)介

本文格式為Word版,下載可任意編輯——數(shù)據(jù)庫(kù)上機(jī)習(xí)題及答案數(shù)據(jù)庫(kù)及應(yīng)用復(fù)習(xí)題

一、設(shè)計(jì)題

有一個(gè)[學(xué)生課程]數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中包括三個(gè)表:

學(xué)生表Student由學(xué)號(hào)(Sno)、姓名(Sname)、性別(Ssex)、年齡(Sage)、所在系(Sdept)五個(gè)屬性組成,記為:Student(Sno,Sname,Ssex,Sage,Sdept),Sno為關(guān)鍵字。

課程表Course由課程號(hào)(Cno)、課程名(Cname)、先修課號(hào)(Cpno)、學(xué)分(Ccredit)四個(gè)屬性組成,記為:Course(Cno,Cname,Cpno,Ccredit)Cno為關(guān)鍵字。

成績(jī)表SG由學(xué)號(hào)(Sno)、課程號(hào)(Cno)、成績(jī)(Grade)三個(gè)屬性組成,記為:SG(Sno,Cno,Grade)(SNO,CNO)為關(guān)鍵字。

用SQL語(yǔ)言實(shí)現(xiàn)以下功能:

1.建立學(xué)生表Student,其中學(xué)號(hào)屬性不能為空,并且其值是唯一的。2.向Student表增加“入學(xué)時(shí)間(Scome)〞列,其數(shù)據(jù)類(lèi)型為日期型。

3.查詢(xún)選修了3號(hào)課程的學(xué)生的學(xué)號(hào)及其成績(jī),查詢(xún)結(jié)果按分?jǐn)?shù)的降序排列。4.查詢(xún)學(xué)習(xí)1號(hào)課程的學(xué)生最高分?jǐn)?shù)、平均成績(jī)。5.查詢(xún)與“李洋〞在同一個(gè)系學(xué)習(xí)的學(xué)生。6.將計(jì)算機(jī)系全體學(xué)生的成績(jī)置零。7.刪除學(xué)號(hào)為05019的學(xué)生記錄。

8.刪除計(jì)算機(jī)系所有學(xué)生的成績(jī)記錄。

1.

CREATETABLEStudent

(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20),SsexCHAR(2),SageINT,

SdeptCHAR(15))2.

ALTERTABLEStudentADDScomeDATETIME3.

SELECTSno,GradeFROMSG

WHERECno='3'

ORDERBYGradeDESC4.

SELECTMAX(Grade),AVG(Grade)FROMSC

WHERECno='1'5.

SELECTSno,Sname,SdeptFROMStudentWHERESdeptIN

(SELECTSdeptFROMStudentWHERESname='李洋')

6.UPDATESG

SETGrade=0WHERESnoin

(SELECTSnoFROMStudentWHERESdept='計(jì)算機(jī)系')

7.DELETEFROMStudent

WHERESno='05019'

8.DELETEFROMSG

WHERESnoin

(SELECTSnoFROMStudentWHERESdept='計(jì)算機(jī)系')

二、設(shè)計(jì)題

現(xiàn)有關(guān)系數(shù)據(jù)庫(kù)如下:

數(shù)據(jù)庫(kù)名:教師數(shù)據(jù)庫(kù)

教師表(編號(hào)char(6),姓名,性別,民族,職稱(chēng),身份證號(hào))課程表(課號(hào)char(6),名稱(chēng))

任課表(ID,教師編號(hào),課號(hào),課時(shí)數(shù))

用SQL語(yǔ)言實(shí)現(xiàn)以下功能的sql語(yǔ)句代碼:1.創(chuàng)立上述三表的建庫(kù)、建表代碼(14分);

要求使用:主鍵(教師表.編號(hào),課程表.課號(hào))、外鍵(任課表.教師編號(hào),任課表.課號(hào))、默認(rèn)(民族)、非空(民族,姓名)、唯一(身份證號(hào))、檢查(性別、課時(shí)數(shù)),自動(dòng)編號(hào)(ID)

2.將以下課程信息添加到課程表的代碼(6分)課號(hào)課程名稱(chēng)

100001SQLServer數(shù)據(jù)庫(kù)100002數(shù)據(jù)結(jié)構(gòu)100003VB程序設(shè)計(jì)

修改課號(hào)為100003的課程名稱(chēng):VisualBasic程序設(shè)計(jì)刪除課號(hào)為100003的課程信息

3.寫(xiě)出創(chuàng)立[任課表視圖](教師編號(hào),姓名,課號(hào),課程名稱(chēng),課時(shí)數(shù))的代碼;(4分)

4.寫(xiě)出創(chuàng)立[某門(mén)課任課教師]內(nèi)嵌表值函數(shù)以及檢索的代碼;(6分)檢索:所有代'SQLServer數(shù)據(jù)庫(kù)'這門(mén)課程的老師姓名;

5.寫(xiě)出創(chuàng)立[統(tǒng)計(jì)課時(shí)數(shù)]:輸出最大課時(shí)數(shù)、最低課時(shí)數(shù)、平均課時(shí)的存儲(chǔ)過(guò)程以及執(zhí)行代碼;(6分)6.寫(xiě)出創(chuàng)立:計(jì)算某教師代課總課時(shí),并將值返回的存儲(chǔ)過(guò)程以及執(zhí)行代碼。(6分)執(zhí)行:計(jì)算“郭老師〞的總課時(shí)。(6分)

7.檢索有一門(mén)或一門(mén)以上課程課時(shí)數(shù)大于90的所有教師的信息,包括編號(hào)、姓名。(4分)

8.建一個(gè)規(guī)則,并將其綁定到教師表的職稱(chēng)列上,規(guī)定取值為('教授','副教授','講師','助教')之一。(4分)1.

createdatabase[教師數(shù)據(jù)庫(kù)]--(2分)use[教師數(shù)據(jù)庫(kù)]go

createtable教師表--(6分)([編號(hào)]char(6)primarykey,[姓名]nchar(4)notnull,

[性別]nchar(1)check([性別]in('男','女')),[民族]nchar(8)default'漢族'notnull,[職稱(chēng)]nchar(12),

[身份證號(hào)]char(18)unique)

createtable課程表--(2分)([課號(hào)]char(6)primarykey,[名稱(chēng)]char(40)notnull)

createtable任課表--(4分)(IDIDENTITY(1,1),

[教師編號(hào)]char(6)references學(xué)生表(學(xué)號(hào)),[課號(hào)]char(6)references課程表(課號(hào)),

[課時(shí)數(shù)]integercheck([課時(shí)數(shù)]between0and200))2.

insert課程表values('100001','SQLServer數(shù)據(jù)庫(kù)')insert課程表values('100002','數(shù)據(jù)結(jié)構(gòu)')insert課程表values('100003','VB程序設(shè)計(jì)')

update課程表set名稱(chēng)='VisualBasic程序設(shè)計(jì)'where課號(hào)='100003'

delete課程表where課號(hào)='100003'3.

createview[任課表視圖]as

select教師編號(hào),姓名,課號(hào),課程名稱(chēng),課時(shí)數(shù)from教師表,任課表where教師表.編號(hào)=任課表.教師編號(hào)4.

createfunction[某門(mén)課任課教師](@課程名varchar(15))returnstableas

return(select課程名稱(chēng),課時(shí)數(shù),教師姓名=姓名from任課表視圖where課程名=@課程名)go

select*from[某門(mén)課任課教師]('SQLServer數(shù)據(jù)庫(kù)')5.

createprocedure[統(tǒng)計(jì)課時(shí)數(shù)]

as

select最大課時(shí)數(shù)=max(課時(shí)),最小課時(shí)數(shù)=min(課時(shí)),平均課時(shí)數(shù)=avg(課時(shí))from任課表go

execute[統(tǒng)計(jì)課時(shí)]6.

createprocedure[統(tǒng)計(jì)課時(shí)]@教師名nchar(16),asbegin

declare@總課時(shí)int

select@總課時(shí)=sum(課時(shí))from任課表視圖where姓名=@教師名endgo

execute[統(tǒng)計(jì)課時(shí)]'郭老師'7.

select編號(hào),姓名from教師表

where編號(hào)in(selectdistinct教師編號(hào)from任課表where課時(shí)數(shù)>=90)8.

createrulezhicheng_rule

as@zhichengin('教授','副教授','講師','助教')go

sp_bindrulezhicheng_rule,'教師表.職稱(chēng)'三、設(shè)計(jì)題(共50分)

現(xiàn)有關(guān)系數(shù)據(jù)庫(kù)如下:

數(shù)據(jù)庫(kù)名:醫(yī)院數(shù)據(jù)庫(kù)

醫(yī)生表(編號(hào),姓名,性別,出生日期,職稱(chēng))病人表(編號(hào),姓名,性別,民族,身份證號(hào))病歷表(ID,病人編號(hào),醫(yī)生編號(hào),病歷描述)用SQL語(yǔ)言實(shí)現(xiàn)以下功能的sql語(yǔ)句代碼:1.創(chuàng)立上述三表的建庫(kù)、建表代碼;

要求使用:主鍵(師醫(yī)生表.編號(hào),病人表.課號(hào))、外鍵(病歷表.醫(yī)生編號(hào),病歷表.病人課號(hào))、非空(職稱(chēng),姓名)、檢查(性別),自動(dòng)編號(hào)(ID)(16分)

2.將以下醫(yī)生信息添加到醫(yī)生表的代碼

編號(hào)姓名性別出生日期職稱(chēng)

100001杜醫(yī)生男1963-5-18副主任醫(yī)師100002郭醫(yī)生女1950-7-26副主任醫(yī)師100003劉醫(yī)生男1973-9-18醫(yī)師

修改編號(hào)為100002的醫(yī)生職稱(chēng)為‘主任醫(yī)師’刪除編號(hào)為100003的醫(yī)生信息(8分)

3.寫(xiě)出創(chuàng)立:醫(yī)療表視圖(醫(yī)生編號(hào),姓名,病人姓名,病歷)的代碼;(4分)4.寫(xiě)出所有病人編號(hào)、姓名、病歷、以及病人所對(duì)應(yīng)的醫(yī)生編號(hào)的查詢(xún)語(yǔ)句;(4分)

7.寫(xiě)出創(chuàng)立:輸出某醫(yī)生(根據(jù)醫(yī)生編號(hào)即可)看病人數(shù)存儲(chǔ)過(guò)程以及執(zhí)行過(guò)程(要求輸入醫(yī)生姓名的參數(shù),輸出病人數(shù))(6分)。8.寫(xiě)出查詢(xún)1970年以前出生的醫(yī)生(4分)。

7.檢索有病人的醫(yī)生信息。(4分)

8.創(chuàng)立一個(gè)默認(rèn),并將其綁定到醫(yī)生表的成績(jī)職稱(chēng)列上,默認(rèn)值為“醫(yī)師〞。(4分)1.

createdatabase[醫(yī)院數(shù)據(jù)庫(kù)]use[醫(yī)院數(shù)據(jù)庫(kù)]go

createtable醫(yī)生表

([編號(hào)]char(6)primarykey,[姓名]nchar(4)notnull,

[性別]nchar(1)check([性別]in('男','女')),[出生日期]datetime,[職稱(chēng)]char(18)notnull)

createtable病人表

([課號(hào)]char(6)primarykey,[姓名]nchar(4)notnull,

[性別]nchar(1)check([性別]in('男','女')),[民族]nchar(10),

[身份證號(hào)]char(18)notnull)

createtable病歷表(IDIDENTITY(1,1),

[病人編號(hào)]char(6)references病人表(學(xué)號(hào)),[醫(yī)生編號(hào)]char(6)references醫(yī)生表(編號(hào)),[病歷描述]varchar(1000))2.

insert醫(yī)生表values('

溫馨提示

  • 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)論