




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
8/8數(shù)據(jù)庫(kù)實(shí)驗(yàn)報(bào)告冊(cè)合肥師范學(xué)院實(shí)驗(yàn)報(bào)告冊(cè)
2014/2015學(xué)年第1學(xué)期
系別計(jì)算機(jī)學(xué)院
實(shí)驗(yàn)課程數(shù)據(jù)庫(kù)原理
專業(yè)
班級(jí)
姓名
學(xué)號(hào)
指導(dǎo)教師李宜兵
實(shí)驗(yàn)一——數(shù)據(jù)庫(kù)基本操作
一、實(shí)驗(yàn)?zāi)康?/p>
1.熟悉MSSQLSERVER運(yùn)行界面,掌握服務(wù)器的基本操作。
2.掌握界面操作方法完成用戶數(shù)據(jù)庫(kù)建立、備份和還原。
3.建立兩個(gè)實(shí)驗(yàn)用的數(shù)據(jù)庫(kù),使用企業(yè)管理器和查詢分析器對(duì)數(shù)據(jù)庫(kù)和表進(jìn)行基本操作。
二、實(shí)驗(yàn)預(yù)習(xí)內(nèi)容
在認(rèn)真閱讀教材及實(shí)驗(yàn)指導(dǎo)書的基礎(chǔ)上,上機(jī)前請(qǐng)預(yù)習(xí)以下內(nèi)容,并在空白處填寫相應(yīng)的步驟或命令。
1.熟悉SQLSERVER2000的運(yùn)行環(huán)境,練習(xí)服務(wù)器基本操作:打開、停止、關(guān)閉。
2.使用SQLSERVER2000中的企業(yè)管理器完成以下任務(wù)。
數(shù)據(jù)庫(kù)名稱:STC
表:STU(snochar(9),snamevarchar(50),ssexchar(2),sageint,sdeptchar(2));
COURSE(cnochar(3),cnamevarchar(50),cpnochar(3),creditint);
SC(snochar(9),cnochar(3),gradeint);
說明:以上為表結(jié)構(gòu),以snochar(9)為例,說明sno屬性設(shè)置為字符類型,寬度為9,int指整型數(shù)據(jù)。
1)建立數(shù)據(jù)庫(kù)STC,分別建立以上三張表,并完成數(shù)據(jù)錄入。(表結(jié)構(gòu)及數(shù)據(jù)參見教材)2)分析并建立各表的主碼,用下劃線在上面表結(jié)構(gòu)中標(biāo)出主碼。
createtablestu
(snochar(9)primarykey,
snamevarchar(50),ssexchar(2),sageint,sdeptchar(2)
);
select*fromcourse
createtablecourse
(cnochar(3)primarykey,cnamevarchar(50),cpnochar(3),creditint,
foreignkey(cpno)referencescourse(cno)
);
createtablesc
(snochar(9),cnochar(3),gradeint,
primarykey(sno,cno),
foreignkey(sno)referencesstu(sno),
foreignkey(cno)referencescourse(cno)
);
insert
intostu
values('95001','李勇','男','20','cs');
Stu表:
Sc表:
3)建立各表之間的關(guān)聯(lián),請(qǐng)簡(jiǎn)述操作步驟。
建立關(guān)聯(lián):右擊SC表,設(shè)計(jì)表在任意一個(gè)空白處右擊關(guān)系表和列規(guī)范選擇主鍵表course對(duì)應(yīng)的主碼cno和外鍵表sc對(duì)應(yīng)的cno以及主鍵表stu對(duì)應(yīng)的主碼sno和外鍵表sc對(duì)應(yīng)的sno—確定即可
4)參考實(shí)驗(yàn)指導(dǎo)書的【第5章數(shù)據(jù)庫(kù)的備份和還原】,使用企業(yè)管理器對(duì)數(shù)據(jù)庫(kù)STC進(jìn)行備份,并嘗試在個(gè)人電腦與機(jī)房電腦上進(jìn)行還原,請(qǐng)簡(jiǎn)述備份、還原操作的步驟。
右擊STC數(shù)據(jù)庫(kù)任務(wù)—備份—備份到(添加到你要備份到的地方)確定。
右擊STC數(shù)據(jù)庫(kù)任務(wù)—還原數(shù)據(jù)庫(kù)(從原數(shù)據(jù)庫(kù)或源設(shè)備)選擇路徑--確定。
3.在SQLSERVER2000的查詢分析器中使用SQL語言完成以下任務(wù)。
參考實(shí)驗(yàn)指導(dǎo)書《數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)指導(dǎo)教程》【實(shí)驗(yàn)1.1數(shù)據(jù)定義】,建立數(shù)據(jù)庫(kù)SCHOOL,分別建立students、teachers、courses、choices四張表,表結(jié)構(gòu)見實(shí)驗(yàn)指導(dǎo)書P236【附錄A】。
1)用SQL語言創(chuàng)建數(shù)據(jù)庫(kù)、建表。建表時(shí)為各表建立關(guān)鍵字、設(shè)置外碼,數(shù)據(jù)暫不錄入,請(qǐng)寫出對(duì)應(yīng)的SQL命令。
createtablestudents
(sidchar(10)primarykey,
snamechar(30)notnull,
emailchar(30),
);
createtableteachers
(tidchar(10)primarykey,
tnamechar(30)notnull,
emailchar(30),
salaryint,
);
createtablecourses
(cidchar(10)primarykey,
cnamechar(30)notnull,
hourint,
);
createtablechoices
(nointprimarykey,
sidchar(10)notnull,
tidchar(10)notnull,
cidchar(10)notnull,
scoreint,
foreignkey(sid)referencesstudents(sid),
foreignkey(tid)referencesteachers(tid),
foreignkey(cid)referencescourses(cid),);
2)為students表、courses建立按主鍵増序排列的索引,請(qǐng)寫出相應(yīng)的SQL命令。createindexsonstudents(sidasc)
createindexconcourses(cidasc)
3)刪除course上的索引,請(qǐng)寫出相應(yīng)的SQL命令。
dropindexconcourses
4)在SCHOOL數(shù)據(jù)庫(kù)中的students表中增加一個(gè)“出生日期”字段,類型為日期時(shí)間型,請(qǐng)寫出對(duì)應(yīng)的SQL命令。
Altertablestudentsadd“出生日期”datetime
5)刪除students中的“出生日期”字段,請(qǐng)寫出對(duì)應(yīng)的SQL命令。
Altertablestudentsdropclumn出生日期
6)刪除SCHOOL數(shù)據(jù)庫(kù)中的students表,請(qǐng)寫出對(duì)應(yīng)的SQL命令。
droptablestudentscascade
4.使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫(kù)SCHOOL,實(shí)現(xiàn)內(nèi)容與實(shí)驗(yàn)預(yù)習(xí)內(nèi)容3完全相同。
5.使用企業(yè)管理器,將SCHOOL數(shù)據(jù)庫(kù)分離出MSSQLSERVER,請(qǐng)簡(jiǎn)述步驟。
點(diǎn)開數(shù)據(jù)庫(kù)找到school數(shù)據(jù)庫(kù)(右擊)所有任務(wù)分離數(shù)據(jù)庫(kù)確定。
6.使用企業(yè)管理器,使用【數(shù)據(jù)庫(kù)/所有任務(wù)/附加數(shù)據(jù)庫(kù)】將SCHOOL數(shù)據(jù)庫(kù)添加進(jìn)SQL
SERVER,并查看數(shù)據(jù)。
7.使用查詢分析器,刪除數(shù)據(jù)庫(kù)STC,請(qǐng)寫出對(duì)應(yīng)的SQL命令。
Dropdatabasestc
8.結(jié)束本次實(shí)驗(yàn)
三、實(shí)驗(yàn)課后訓(xùn)練
1.使用企業(yè)管理器練習(xí)數(shù)據(jù)的導(dǎo)入導(dǎo)出。
1)將SCHOOL數(shù)據(jù)庫(kù)students表中的數(shù)據(jù)導(dǎo)出到STC數(shù)據(jù)庫(kù)對(duì)應(yīng)的stu表中;
2)向STC數(shù)據(jù)庫(kù)courses表導(dǎo)入SCHOOL數(shù)據(jù)庫(kù)courses表中的數(shù)據(jù);
3)自行練習(xí)實(shí)驗(yàn)指導(dǎo)書【實(shí)驗(yàn)5.3SQLSERVER數(shù)據(jù)庫(kù)的導(dǎo)入與導(dǎo)出】部分;
2.自行練習(xí)實(shí)驗(yàn)指導(dǎo)書【實(shí)驗(yàn)1.1數(shù)據(jù)定義】部分。
四、實(shí)驗(yàn)報(bào)告
1.簡(jiǎn)述本次實(shí)驗(yàn)所用到的SQL命令及其功能。
命令:creatdatabase(
[add[完整性約束]]增加新列和新的完整性約束條件
[Drop]刪除指定的完整性約束條件
[altercolumn];修改原有的列定義,包括列名和數(shù)據(jù)類型。功能:修改基本表
2.在MSSQLSERVER中數(shù)據(jù)庫(kù)的“分離|添加”與“備份|還原”是相同的功能嗎?
答:在MSSQLSERVER中數(shù)據(jù)庫(kù)的“分離|添加”與“備份|還原”的功能是不相同的。
分離之后的數(shù)據(jù)庫(kù)在用戶不更改路徑的情況下會(huì)分離在系統(tǒng)默認(rèn)的路徑上,且分離之后在數(shù)據(jù)庫(kù)的下屬欄中找不到分離的數(shù)據(jù)庫(kù),除非重新按指定路徑添加。而備份的數(shù)據(jù)庫(kù)還會(huì)顯示在數(shù)據(jù)庫(kù)的下屬欄中。
3.實(shí)驗(yàn)總結(jié)(實(shí)驗(yàn)過程中出現(xiàn)的問題、解決方法、結(jié)果如何或其它)
本次試驗(yàn)過程中遇到了很多問題,因?yàn)槭堑谝淮问褂眠@個(gè)軟件,有好多東西都不知道在哪,比如,不知道如何建立關(guān)聯(lián),如何備份還原數(shù)據(jù)庫(kù)等,經(jīng)過詢問同學(xué)才知道。對(duì)書上的知識(shí)不是很了解,不知道如何建立索引和刪除索引,在看書之后才知道如何做。經(jīng)過這次實(shí)驗(yàn),以后做實(shí)驗(yàn)要好好預(yù)習(xí)。
實(shí)驗(yàn)二——SQL語句
一、實(shí)驗(yàn)?zāi)康?/p>
1.熟悉SQL的數(shù)據(jù)查詢語言,能使用SQL進(jìn)行單表查詢、連接查詢、嵌套查詢、集合查詢
和統(tǒng)計(jì)查詢,能理解空值的處理;
2.熟悉數(shù)據(jù)庫(kù)的數(shù)據(jù)更新操作,能使用SQL語句對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的插入、更新、刪除操
作;
3.熟悉SQL支持的有關(guān)視圖的操作,能創(chuàng)建、查詢及取消視圖;
4.了解NULL在數(shù)據(jù)庫(kù)中的特殊含義,掌握使用SQL進(jìn)行與空值相關(guān)的操作;
二、實(shí)驗(yàn)預(yù)習(xí)內(nèi)容
在認(rèn)真閱讀教材及實(shí)驗(yàn)指導(dǎo)書【實(shí)驗(yàn)1.2數(shù)據(jù)查詢】、【實(shí)驗(yàn)1.3數(shù)據(jù)更新】、【實(shí)驗(yàn)1.4視圖】和【實(shí)驗(yàn)1.6空值和空集的處理】的基礎(chǔ)上,上機(jī)前請(qǐng)預(yù)習(xí)以下內(nèi)容,并在空白處填寫相應(yīng)的步驟或命令。
1.使用SCHOOL數(shù)據(jù)庫(kù),在SQLSERVER2000的查詢分析器中使用SQL語言完成以下操
作。請(qǐng)?jiān)诳瞻滋幪顚懴鄳?yīng)的SQL命令。
1)查詢年級(jí)為2001的所有學(xué)生的名稱,按編號(hào)順序排列;
selectsnamefromstudentswheregrade='2001'orderbysid
2)查詢所有課程名稱中含有data的課程編號(hào);
selectcidfromcourseswherecnamelike'%data%'
3)統(tǒng)計(jì)所有老師的平均工資;
selectAVG(salary)平均工資
fromteachers
4)查詢至少選了3門課的學(xué)生編號(hào);
selectsid
fromchoices
groupbysidhavingcount(*)>=3
5)查詢學(xué)號(hào)為80009026的學(xué)生的姓名、所選課名及成績(jī);selectsname,cname,score
fromstudents,courses,choices
wherestudents.sid=80009026andchoices.sid=students.sid
andchoices.cid=courses.cid
6)查詢沒有學(xué)生選的課程編號(hào);
selectcid
fromcourses
wherecidnotin
(
selectcid
fromchoices)
7)查詢既選了C++又選了Java課程的學(xué)生編號(hào);
selectsid
fromchoices,courses
wherechoices.cid=courses.cidandcname='c++'
andsidin(
selectsid
fromchoices,courses
wherechoices.cid=courses.cidandcname='java')
)
8)查詢選了C++但沒選Java課程的學(xué)生編號(hào);
selectsid
fromchoices,courses
wherechoices.cid=courses.cidandcname='c++'
andsidnotin(
selectsid
fromchoices,courses
wherechoices.cid=courses.cidandcname='java')
9)向STUDENTS表中插入“LiMing”的個(gè)人信息(編號(hào):700045678,名字:LiMing,Email:LX@http://./doc/e8f3ce25e109581b6bd97f19227916888586b9d5.html,年級(jí):1992);
insertintostudents
values('700045678','liming','LX@http://./doc/e8f3ce25e109581b6bd97f19227916888586b9d5.html','1992')
10)將“LiMing”的年級(jí)改為2002;
updatestudents
setgrade='2002'
wheresname='liming'
11)刪除所有選了Java課程的學(xué)生選課記錄;
delete
fromchoices
wherecid=
(selectcid
fromcourses
wherecname='java')
12)求出每門課的課程號(hào)、選課人數(shù),結(jié)果存入數(shù)據(jù)庫(kù)表T1中。
createtableT1
(cidchar(10)primarykey,
renshuint
)
insert
intot1
selectcid,count(distinctsid)
fromchoices
groupbycid;
13)查詢所有選課記錄的成績(jī)并換算為五分制(注意NULL的情況);
selectdistinctscore,score/20五分制
fromchoices;
14)查詢成績(jī)小于0的選課記錄,統(tǒng)計(jì)總數(shù)、平均分、最大值和最小值(注意查詢結(jié)果中NULL的情況);
selectsid,cid
fromchoices
wherescore=0);
7)創(chuàng)建規(guī)則rule_sex,規(guī)定更新或插入的值只能是M或F,并綁定到Worker的sex字段;
Go
CreateRulerule_sexas@valuein('F','M')
Go
execsp_bindrulerule_sex,'Worker.[sex]';
8)插入2條記錄,一條滿足規(guī)則rule_sex,一條違反規(guī)則,觀察結(jié)果。
InsertintoWorker
values('00005','小李','m',15,'科技部')
InsertintoWorker
values('00005','小李','a',15,'科技部')
5.使用查詢分析器創(chuàng)建觸發(fā)器并測(cè)試,請(qǐng)寫出相應(yīng)的語句:
1)為Worker表創(chuàng)建觸發(fā)器T1,當(dāng)插入或更新表中數(shù)據(jù)時(shí),保證所操作記錄的sage大于0;
createtriggert1
onworker
forinsert,update
as
if(selectsagefrominserted)@b
set@c=@a
else
set@c=@b
return@c
end
4)在查詢分析器中,調(diào)用此函數(shù),輸出兩個(gè)數(shù)中的最大值;
printdbo.func(29,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育中的科技倫理問題探討
- 探討AI在在線國(guó)際教育中的應(yīng)用及前景
- 2025年中國(guó)小麥麩皮行業(yè)發(fā)展趨勢(shì)及投資前景預(yù)測(cè)報(bào)告
- 2025年中國(guó)高精度gnss行業(yè)市場(chǎng)調(diào)研分析及投資戰(zhàn)略咨詢報(bào)告
- 中國(guó)鋰電鋁箔行業(yè)市場(chǎng)全景分析及投資策略研究報(bào)告
- 中國(guó)紅燒排骨精粉行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告(2024-2030)
- 醫(yī)藥批發(fā)流通行業(yè)研究報(bào)告(2025年)
- 幼兒園教師如何引導(dǎo)特殊兒童參與集體進(jìn)餐活動(dòng)
- 高空觀景膠囊旅館企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力項(xiàng)目商業(yè)計(jì)劃書
- 草莓采摘園行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書
- 水泵檢修工(高級(jí))技能鑒定考試題庫(kù)(含答案)
- AQ/T 9009-2015 生產(chǎn)安全事故應(yīng)急演練評(píng)估規(guī)范(正式版)
- 酒店運(yùn)營(yíng)管理 智慧樹知到期末考試答案章節(jié)答案2024年山東青年政治學(xué)院
- 幼兒園課程故事開展培訓(xùn)
- 佐藤大用設(shè)計(jì)解決問題
- JJG 62-2017 塞尺行業(yè)標(biāo)準(zhǔn)
- 《新能源汽車構(gòu)造與維修》課件全套 朱小東 能力模塊1-5 新能源汽車概述-充電系統(tǒng)結(jié)構(gòu)認(rèn)識(shí)與檢測(cè)
- 建立產(chǎn)科快速反應(yīng)團(tuán)隊(duì)持續(xù)改進(jìn)產(chǎn)科質(zhì)量
- 數(shù)學(xué)與人工智能的模型與算法
- 2022-2023學(xué)年山東省濟(jì)南市高二下學(xué)期期末考試語文試題(解析版)
- 養(yǎng)老院護(hù)理員禮儀培訓(xùn)
評(píng)論
0/150
提交評(píng)論