數(shù)據(jù)庫(kù)上機(jī)試驗(yàn)指導(dǎo)_第1頁(yè)
數(shù)據(jù)庫(kù)上機(jī)試驗(yàn)指導(dǎo)_第2頁(yè)
數(shù)據(jù)庫(kù)上機(jī)試驗(yàn)指導(dǎo)_第3頁(yè)
數(shù)據(jù)庫(kù)上機(jī)試驗(yàn)指導(dǎo)_第4頁(yè)
數(shù)據(jù)庫(kù)上機(jī)試驗(yàn)指導(dǎo)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——數(shù)據(jù)庫(kù)上機(jī)試驗(yàn)指導(dǎo)數(shù)據(jù)庫(kù)原理試驗(yàn)指導(dǎo)書

試驗(yàn)1數(shù)據(jù)庫(kù)模式設(shè)計(jì)及建立

一、試驗(yàn)?zāi)康模?/p>

(1)把握數(shù)據(jù)庫(kù)模式設(shè)計(jì),依據(jù)實(shí)際要求設(shè)計(jì)表結(jié)構(gòu),建立表的關(guān)系;比較SQL命

令方式和可視化環(huán)境管理器方式設(shè)計(jì)的異同點(diǎn)。

(2)把握SQLServer查詢分析器的使用方法,加深對(duì)SQL和SQL語(yǔ)言的查詢語(yǔ)句

的理解。熟練把握簡(jiǎn)單表的數(shù)據(jù)查詢、數(shù)據(jù)排序和數(shù)據(jù)連接查詢的操作方法。

二、試驗(yàn)內(nèi)容:

1、分別用sql查詢分析器和企業(yè)管理器創(chuàng)立表,并設(shè)定相應(yīng)的約束。要求:在學(xué)生管理數(shù)據(jù)庫(kù)XSGL中創(chuàng)立如下三個(gè)表。創(chuàng)立名為student(學(xué)生信息)的表,表中的各列要求如下:字段名稱SnoSnameSexSageSdept字段類型CharCharCharIntChar大小108220說(shuō)明主鍵默認(rèn)值為男,只能輸入男和女創(chuàng)立名為course(課程信息)的表,表中的各列要求如下:字段名稱CnoCnameCcredit字段類型CharCharReal大小1030說(shuō)明主鍵唯一性創(chuàng)立名為score(學(xué)生成績(jī))的表,表中的各列要求如下:字段名稱SnoCnoGrade

2、創(chuàng)立score–>student表,以及score–>course表的外部鍵。

字段類型CharCharReal大小1010取值范圍數(shù)據(jù)來(lái)自學(xué)生信息表數(shù)據(jù)來(lái)自課程信息表0--100說(shuō)明主鍵主鍵3、增加、修改和刪除字段,要求:

1)給student表增加一個(gè)memo(備注)字段,類型為varchar(200)。2)將memo字段的類型修改為varchar(300)。

3)刪除memo字段。

4、簡(jiǎn)單查詢操作。該試驗(yàn)包括投影、選擇條件表達(dá),數(shù)據(jù)排序,使用臨時(shí)表等。

具體完成以下題目,將它們轉(zhuǎn)換為SQL語(yǔ)句表示,在學(xué)生選課數(shù)據(jù)庫(kù)中實(shí)現(xiàn)其數(shù)據(jù)查詢操作。

1)求數(shù)學(xué)系學(xué)生的學(xué)號(hào)和姓名2)求選修了課程的學(xué)生學(xué)號(hào)

3)求選修課程號(hào)為‘C1’的學(xué)生號(hào)和成績(jī),并要求對(duì)查詢結(jié)果按成績(jī)的降序排列,

假使成績(jī)一致按學(xué)號(hào)的升序排列。usestudent;

selectStudent.Sno,GradefromSC,Student

whereCno='3'andSC.Sno=Student.SnoorderbyGradeasc,student.Snodesc

4)求選修課程號(hào)為‘3’且成績(jī)?cè)?0~90之間的學(xué)生學(xué)號(hào)和成績(jī),并成績(jī)乘以0.8

輸出。

usestudent;

selectdistinctStudent.Sno,Grade*0.8fromSC,Student

whereCno='3'andstudent.Sno=SC.Snoandgrade>80andgrade80

4)查詢每一門課程的間接先行課(即先行課的先行課)

usestudent;

selecta.Cnoas'課程號(hào)',a.Cnameas'課程',b.Cnameas'先行課'fromCoursea,Coursebwherea.Cpno=b.Cno

注意:假使要是修改為NULL可按Ctrl+0

三、試驗(yàn)方法

將查詢需求用SQL語(yǔ)言表示;在SQLServer查詢分析器的輸入?yún)^(qū)中輸入SQL查詢語(yǔ)句;設(shè)置查詢分析器的結(jié)果區(qū)為StandardExecute(標(biāo)準(zhǔn)執(zhí)行)或ExecutetoGrid(網(wǎng)格執(zhí)行)方式;發(fā)布執(zhí)行命令,并在結(jié)果區(qū)中查看查詢結(jié)果;假使結(jié)果不正確,要進(jìn)行修改,直到正確為止。

試驗(yàn)2數(shù)據(jù)庫(kù)的繁雜查詢?cè)囼?yàn)

一.試驗(yàn)?zāi)康?/p>

本試驗(yàn)的目的是使學(xué)生進(jìn)一步把握SQLServer查詢分析器的使用方法,加深SQL語(yǔ)言的嵌套查詢語(yǔ)句的理解,熟練把握數(shù)據(jù)查詢中的分組、統(tǒng)計(jì)、計(jì)算和集合的操作方法。

二.試驗(yàn)內(nèi)容

1、在SQLServer查詢分析器中使用IN、比較符、ANY或ALL和EXISTS操作符進(jìn)行嵌套查詢操作。

具體完成以下例題。將它們用SQL語(yǔ)句表示,在學(xué)生選課中實(shí)現(xiàn)其數(shù)據(jù)嵌套查詢操作。1)求選修了數(shù)據(jù)庫(kù)的學(xué)號(hào)和姓名

usestudent;

selectSname,CnamefromSC,Student,Course

whereSC.Cno=Course.CnoandStudent.Sno=SC.SnoandCname='信息系統(tǒng)'

2)求3課程的成績(jī)高于劉晨的學(xué)生學(xué)號(hào)和成績(jī)usestudent;

selectSname,Student.Sno,GradefromSC,Student

whereStudent.Sno=SC.Sno

andCno='3'andGrade>(selectGradefromSC,Student

whereStudent.Sno=SC.sno

andSnamelike'劉晨'andCno='3')

3)求其他系中比計(jì)算機(jī)系某一學(xué)生年齡小的學(xué)生(即年齡小于計(jì)算機(jī)系年齡最大者

的學(xué)生)

usestudent;

selectdistinctSname,Sno,Sdept,SagefromStudent

whereSdept'CS'andSageany(selectSagefromStudentwhereSdept='CS')andSdept'CS'

5)求選修了C2課程的學(xué)生姓名usestudent;

selectdistinctStudent.SnofromStudent,SCwhereexists(select*fromSC

whereStudent.Sno=SC.SnoandCno='3')

6)求沒(méi)有選修3課程的學(xué)生姓名usestudent;

selectdistinctStudent.SnofromStudent,SCwherenotexists(select*fromSC

whereStudent.Sno=SC.SnoandCno='3')

7)查詢選修了全部課程的學(xué)生姓名usestudent;selectSnofromSC

groupbySnohavingcount(*)>=3

8)求至少選修了學(xué)號(hào)為“95002〞的學(xué)生所選修全部課程的學(xué)生學(xué)號(hào)和姓名usestudent;

selectSname,SnofromStudentwherenotexists(select*fromSCSCYwhereSCY.Sno='95002'andnotexists(

select*

fromSCSCZ

whereSCZ.Sno=Student.SnoandSCZ.Cno=SCY.Cno))

2、進(jìn)行分組查詢,包括分組條件表達(dá)、選擇組條件表達(dá)的方法;進(jìn)行函數(shù)查詢,包括統(tǒng)計(jì)函數(shù)和分組統(tǒng)計(jì)函數(shù)的使用方法;進(jìn)行集合查詢,包括并操作UNION、交操作INTERSECT和差操作MINUS的使用方法。

具體完成以下例題,將它們用SQL語(yǔ)句表示,在學(xué)生選課中實(shí)現(xiàn)其數(shù)據(jù)查詢操作。1)求學(xué)生的總?cè)藬?shù)usestudent;

selectcount(distinctSno)fromStudent

2)求選修了課程的學(xué)生人數(shù)usestudent;

selectcount(distinctSno)fromSC

3)求課程和選修了該課程的學(xué)生人數(shù)usestudent;

selectCno,count(*)fromSC

groupbyCno

4)求選修超過(guò)2門課的學(xué)生學(xué)號(hào)usestudent;

selectCno,count(*)fromSC

groupbyCnohavingcount(*)>2

90withcheckoption

5)定義一個(gè)反映學(xué)生出生年份的視圖createviewBIR_stu(Sno,Sname,Sbir)as

selectSno,Sname,2023-Sagefromstudent

三、試驗(yàn)步驟

將查詢需求用SQL語(yǔ)言表示;在SQL查詢分析器的輸入?yún)^(qū)中輸入SQL查詢語(yǔ)句;設(shè)置查詢分析器的結(jié)果區(qū)為StandardExecute(標(biāo)準(zhǔn)執(zhí)行)或ExecutetoGrid(網(wǎng)格執(zhí)行)方式;發(fā)布執(zhí)行命令,并在結(jié)果區(qū)中查看查詢結(jié)果;假使結(jié)果不正確,要進(jìn)行修改,直到正確為止。

試驗(yàn)四存儲(chǔ)過(guò)程和觸發(fā)器的使用

一、試驗(yàn)?zāi)康模?/p>

本試驗(yàn)要求學(xué)生應(yīng)了解存儲(chǔ)過(guò)程和事務(wù)的作用,基本把握存儲(chǔ)過(guò)程和事務(wù)的創(chuàng)立和使用方法,要求學(xué)生了解觸發(fā)器的知識(shí)與作用,基本把握觸發(fā)器的創(chuàng)立方法。要求學(xué)生在已建好的學(xué)生管理數(shù)據(jù)庫(kù)中創(chuàng)立3個(gè)分別用于插入、刪除和更新的觸發(fā)器。二、試驗(yàn)內(nèi)容:1、存儲(chǔ)過(guò)程例題

(1)創(chuàng)立一個(gè)名為“proc_1〞的存儲(chǔ)過(guò)程,用于查看學(xué)生表的所有信息。然后調(diào)用該存儲(chǔ)過(guò)程。createprocedureproc_1asbegin

select*fromstudentend

execproc_1

(2)創(chuàng)立一個(gè)名為“proc_2〞的存儲(chǔ)過(guò)程,用于向?qū)W生表的所有字段添加一條記錄,記錄內(nèi)容由調(diào)用時(shí)決定。然后調(diào)用該存儲(chǔ)過(guò)程。

createprocedureproc_2(@numint,@namevarchar(20),@sexvarchar(20),@ageint,@deptvarchar(20))asbegin

insertintostudent

values(@num,@name,@sex,@age,@dept)end

execproc_295008,李冰,男,19,CS

(3)創(chuàng)立一個(gè)名為“proc_3〞的存儲(chǔ)過(guò)程,用于刪除學(xué)生表中指定學(xué)號(hào)的記錄,具體學(xué)號(hào)由調(diào)用時(shí)決定。然后調(diào)用該存儲(chǔ)過(guò)程。createprocedureproc_3(@numvarchar)asbegindelete

fromstudent

whereSno=@numend

execproc_395008

(4)修改存儲(chǔ)過(guò)程“proc_4〞,用于查詢不小于指定成績(jī)的學(xué)生的基本信息,具體成績(jī)由調(diào)用時(shí)決定。\\

createprocedureproc_5(@gradevarchar)asbegin

selectsnamefromstudent,SC

whereSC.Sno=student.SnoandGrade>@gradeend

execproc_6502、觸發(fā)器例題

(1)創(chuàng)立一個(gè)名為“trig_1〞的觸發(fā)器,當(dāng)向?qū)W生表添加記錄時(shí),該觸發(fā)器自

動(dòng)顯示學(xué)生表的所有信息。

createtriggertrig_1onstudentforinsertasbegin

select*fromstudentend

insertintostudent

values(95008,'李冰','男','18','CS')

(2)創(chuàng)立一個(gè)名為“trig_2〞的觸發(fā)器,當(dāng)試圖向?qū)W生表添加、修改或刪除記

錄時(shí),該觸發(fā)器自動(dòng)顯示如下信息:“對(duì)不起,你無(wú)權(quán)進(jìn)行更新操作!〞。createtriggertrig_2onstudentforinsert,update,deleteas

begin

print'對(duì)不起,你無(wú)權(quán)進(jìn)行更新操作!'rollbackend

(3)創(chuàng)立一個(gè)名為“trig_3〞的觸發(fā)器,當(dāng)向?qū)W生表刪除記錄時(shí),該觸發(fā)器自

動(dòng)刪除成績(jī)表中與之相關(guān)的所有記錄。createtriggertrig_3onstudentfordeleteasbegindeletefromSC

whereSnoin(selectSnofromdeleted)end

(4)創(chuàng)立一個(gè)名為“trig_4〞的觸發(fā)器,當(dāng)向成績(jī)表添加記錄時(shí),該觸發(fā)器自動(dòng)顯示與該記錄相關(guān)的學(xué)生的學(xué)號(hào)、姓名和班級(jí)。

試驗(yàn)五安全管理

一、試驗(yàn)?zāi)康?/p>

本試驗(yàn)要求學(xué)生把握SQLServer2000三級(jí)安全體系及驗(yàn)證模式的設(shè)置,把握SQLServer2000服務(wù)器登錄帳號(hào)及數(shù)據(jù)庫(kù)用戶帳號(hào)的管理,把握創(chuàng)立用戶自定義數(shù)據(jù)庫(kù)角色并為其授權(quán),把握為數(shù)據(jù)庫(kù)用戶授權(quán)的方法二、試驗(yàn)內(nèi)容

1、創(chuàng)立SQLServer服務(wù)器登錄賬號(hào)

操作步驟:展開(kāi)SQLServer服務(wù)器,右擊安全性節(jié)點(diǎn)下的“登錄〞,選擇“新建登錄“,在彈出的“登錄屬性〞對(duì)話框中

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論