數(shù)據(jù)庫(kù)應(yīng)用實(shí)驗(yàn)_第1頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用實(shí)驗(yàn)_第2頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用實(shí)驗(yàn)_第3頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用實(shí)驗(yàn)_第4頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)應(yīng)用實(shí)驗(yàn)報(bào)告(總四次)目錄實(shí)驗(yàn)一3第二章 T-SQL語(yǔ)言基礎(chǔ)31 實(shí)驗(yàn)?zāi)康?2 實(shí)驗(yàn)內(nèi)容和步驟33 實(shí)驗(yàn)小結(jié)4第三章 數(shù)據(jù)庫(kù)及其管理41 實(shí)驗(yàn)?zāi)康?2 實(shí)驗(yàn)內(nèi)容和步驟43 實(shí)驗(yàn)小結(jié)5實(shí)驗(yàn)二5第四章 數(shù)據(jù)表與表數(shù)據(jù)51 實(shí)驗(yàn)?zāi)康?2 實(shí)驗(yàn)內(nèi)容和步驟6第五章 數(shù)據(jù)查詢71 實(shí)驗(yàn)?zāi)康?2 實(shí)驗(yàn)內(nèi)容和步驟73 實(shí)驗(yàn)小結(jié)9實(shí)驗(yàn)三10第六章 試圖及其應(yīng)用101 實(shí)驗(yàn)?zāi)康?02 實(shí)驗(yàn)內(nèi)容103 實(shí)驗(yàn)小結(jié)11第七章 索引及其應(yīng)用111 實(shí)驗(yàn)?zāi)康?12 實(shí)驗(yàn)內(nèi)容11實(shí)驗(yàn)四12第八章 存儲(chǔ)過程與觸發(fā)器121 實(shí)驗(yàn)?zāi)康?22 實(shí)驗(yàn)內(nèi)容123 實(shí)驗(yàn)小結(jié)14第九章 事務(wù)與游標(biāo)141 實(shí)驗(yàn)?zāi)康?42 實(shí)驗(yàn)內(nèi)容143

2、 實(shí)驗(yàn)小結(jié)15實(shí)驗(yàn)一第二章 T-SQL語(yǔ)言基礎(chǔ)1 實(shí)驗(yàn)?zāi)康?)學(xué)會(huì)定義數(shù)據(jù)類型,聲明局部變量的方法;2) 學(xué)會(huì)批處理和流程控制語(yǔ)句的使用方法。2 實(shí)驗(yàn)內(nèi)容和步驟(1)使用系統(tǒng)存儲(chǔ)過程,用戶自定義數(shù)據(jù)類型自定義一個(gè)地址(address)數(shù)據(jù)類型。EXEC sp_addtype address, varchar(80), not null創(chuàng)建兩個(gè)自定義類型stud_name 和 postalcode.Use studentGo Exec sp_addtype stud_name , varchar(8) , nullExec sp_addtype postalcode , char(6) , no

3、t null Go (2)使用DECLARE語(yǔ)句聲明局部變量,并使用SELECT或SER語(yǔ)句給變量賦值定義一個(gè)整型局部變量和一個(gè)可變長(zhǎng)字符型局部變量并賦值。(略)(3)使用流程控制語(yǔ)句編寫程序編寫計(jì)算n!(20)的T-SQL語(yǔ)句,并顯示計(jì)算結(jié)果。輸出字符串“School”中每一個(gè)字符的ASCII值和字符。設(shè)置在五分鐘后進(jìn)行一次查詢操作。使用CASE語(yǔ)句,輸出教師基本信息表(teacher_info)中的所有教師所在的年齡段(每6年劃分一個(gè)段),并說明對(duì)應(yīng)教師的職稱。use studentgoselect tech_title '職稱', areaofage=(case when

4、 age>18 and age<=24 then '18-24' when age>24 and age<=30 then '24-30' when age>30 and age<=36 then '30-36' when age>36 and age<=42 then '30-36' when age>42 and age<=48 then '42-48' end) from teacher_infogo3 實(shí)驗(yàn)小結(jié)本次實(shí)驗(yàn)我學(xué)習(xí)了定義數(shù)據(jù)類型、聲明局部

5、變量的方法,熟悉了批處理和流程控制語(yǔ)句的使用方法。第三章 數(shù)據(jù)庫(kù)及其管理1 實(shí)驗(yàn)?zāi)康?) 了解系統(tǒng)數(shù)據(jù)庫(kù)的作用; 2) 學(xué)會(huì)使用對(duì)象資源管理器創(chuàng)建用戶數(shù)據(jù)庫(kù);3) 學(xué)會(huì)使用SQL編輯器創(chuàng)建數(shù)據(jù)庫(kù);4) 學(xué)會(huì)壓縮和擴(kuò)充數(shù)據(jù)庫(kù);5) 學(xué)會(huì)查看和修改數(shù)據(jù)庫(kù)選項(xiàng);6) 學(xué)會(huì)給數(shù)據(jù)庫(kù)改名和刪除數(shù)據(jù)庫(kù)。2 實(shí)驗(yàn)內(nèi)容和步驟1) 分別對(duì)象資源管理器、SQL編輯器和模板資源管理器創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。(略)使用T-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù):2) 分別使用對(duì)象資源管理器和T-SQL編輯器將數(shù)據(jù)庫(kù)student的初始分配空間大小擴(kuò)充到40MB。3) 分別使用對(duì)象資源管理器和T-SQL編輯器將數(shù)據(jù)庫(kù)student數(shù)據(jù)庫(kù)的空間壓

6、縮至最小空間量。4) 分別使用對(duì)象資源管理器和T-SQL編輯器將student數(shù)據(jù)庫(kù)重新設(shè)置為只讀狀態(tài)。5) 分別使用對(duì)象資源管理器和T-SQL編輯器將student數(shù)據(jù)庫(kù)改名為scholastic。6) 分別使用對(duì)象資源管理器和T-SQL編輯器刪除scholastic數(shù)據(jù)庫(kù)。drop database scholastic7) 采用系統(tǒng)存儲(chǔ)過程分離和附加數(shù)據(jù)庫(kù)。 分離數(shù)據(jù)庫(kù)scholastic附加數(shù)據(jù)庫(kù)3 實(shí)驗(yàn)小結(jié)通過本次實(shí)驗(yàn),我了解系統(tǒng)數(shù)據(jù)庫(kù)的作用,學(xué)會(huì)了使用對(duì)象資源管理器創(chuàng)建用戶數(shù)據(jù)庫(kù)和使用SQL編輯器創(chuàng)建數(shù)據(jù)庫(kù),學(xué)會(huì)了壓縮和擴(kuò)充數(shù)據(jù)庫(kù),并且學(xué)會(huì)查看和修改數(shù)據(jù)庫(kù)選項(xiàng)以及數(shù)據(jù)庫(kù)改名和刪除數(shù)

7、據(jù)庫(kù)。實(shí)驗(yàn)二第四章 數(shù)據(jù)表與表數(shù)據(jù)1 實(shí)驗(yàn)?zāi)康?) 了解SQL Server的數(shù)據(jù)類型;2) 了解數(shù)據(jù)表的結(jié)構(gòu)特征;3) 學(xué)會(huì)使用對(duì)象資源管理器和T-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)表;4) 學(xué)會(huì)在對(duì)象資源管理器中對(duì)數(shù)據(jù)表進(jìn)行插入、修改和刪除數(shù)據(jù)的操作;5) 學(xué)會(huì)使用T-SQL語(yǔ)句對(duì)數(shù)據(jù)表進(jìn)行插入、修改和刪除數(shù)據(jù)的操作;6) 學(xué)會(huì)定義約束、使用默認(rèn)和規(guī)則。2 實(shí)驗(yàn)內(nèi)容和步驟(1) 使用對(duì)象資源管理器創(chuàng)建表在對(duì)象資源管理器中分別創(chuàng)建學(xué)生信息表( stud_info)、教師基本信息表(teacher_info)、學(xué)生成績(jī)表(stud_grade)、課程信息表(lesson_info)、課程安排表(teach_s

8、chedule)、院系代碼表(dept_code)、專業(yè)代碼表(specialty_code)、教研室信息表(staffroom_info)和教師信息表(classroom_info)。(2) 刪除表和創(chuàng)建表(3) 分別使用對(duì)象資源管理器和T-SQL語(yǔ)句修改表結(jié)構(gòu)1) 假設(shè)在創(chuàng)建數(shù)據(jù)表lesson_info時(shí)錯(cuò)將課程學(xué)分course_mark設(shè)計(jì)為char(2),現(xiàn)欲修改為decimal(3,1)。2) 向stud_info 表增加“入學(xué)時(shí)間”列,其數(shù)據(jù)為日期型(4) 建立約束1) 為student 數(shù)據(jù)庫(kù)的stud_info表中的mark列建立check約束2) 使用T-SQL語(yǔ)句創(chuàng)建表 s

9、tud_info,設(shè)置stud_id為PRIMARY KEY 約束。(略)3) 為表stud_info的telcode列建立UNIQUE約束。4) 為stud_grade表中的stud_id列建立FOREIGN KEY約束。獨(dú)立實(shí)踐:為表 stud_info的zipcode列建立DEFAULT約束。(5) 向數(shù)據(jù)庫(kù)student的表中插入數(shù)據(jù)(略)(6) 修改數(shù)據(jù)庫(kù)student 的表數(shù)據(jù)1) 在學(xué)生成績(jī)表中,將課程號(hào)“0401010101”的成績(jī)?cè)谠瓉砘A(chǔ)上增加10%。結(jié)果:2) 將所有低于60分的成績(jī)置空。3) 將趙明同學(xué)的入學(xué)成績(jī)更新成與學(xué)號(hào)為“0401040123”的孔榮同學(xué)的入學(xué)成績(jī)

10、相同。(7) 刪除數(shù)據(jù)庫(kù)student的表數(shù)據(jù)1) 刪除學(xué)號(hào)為“0401020201”的學(xué)生記錄。第五章 數(shù)據(jù)查詢1 實(shí)驗(yàn)?zāi)康?) 掌握SELECT語(yǔ)句的基本語(yǔ)句;2) 學(xué)會(huì)使用ORDER BY 子句進(jìn)行排序,使用GROUP BY子句進(jìn)行統(tǒng)計(jì);3) 學(xué)會(huì)數(shù)據(jù)匯總、連接查詢、嵌套查詢的方法。2 實(shí)驗(yàn)內(nèi)容和步驟(1) SELECT語(yǔ)句的基本使用1) 查詢stud_info為“0401010634”的學(xué)生的地址和電話。結(jié)果:2) 查詢stud_info表中性別為“女”的學(xué)生地址和電話。使用AS子句將結(jié)果中指定目標(biāo)列的名稱分別指定為漢字標(biāo)榜。3) 查詢所有電話號(hào)碼好友“3460”的教師所擔(dān)任課程的編碼

11、。4) 在學(xué)生基本信息表(stud_info)中查詢出生日期從“01-01-1987”到“12-31-1987”的學(xué)生的學(xué)號(hào)、姓名、家庭住址和郵政編碼。(2) 子查詢的使用1) 查找計(jì)算機(jī)工程系中所有擔(dān)任“計(jì)算機(jī)專業(yè)英語(yǔ)”的教師編號(hào)名和姓名。結(jié)果:2) 查詢計(jì)算機(jī)工程系計(jì)算機(jī)應(yīng)用教研室的教師編號(hào)、姓名和其課程號(hào)。(略)3) 查詢計(jì)算機(jī)工程系參與了“多媒體技術(shù)”課程考試的學(xué)生學(xué)號(hào)、姓名和考試成績(jī)。(3) 連接查詢的使用1) 寫出課程安排表(teach_schedule)與課程信息表(lesson_info)等值內(nèi)連接的SQL語(yǔ)句。2) 寫出教師信息表(teacher_info)與課程安排表( t

12、each_schedule)右外連接的SQL 語(yǔ)句。(4) 數(shù)據(jù)匯總1) 查詢計(jì)算機(jī)工程系全體教師的平均工資。結(jié)果:2) 查詢計(jì)算機(jī)工程系學(xué)生的入學(xué)成績(jī)的最高分和最低分。3) 統(tǒng)計(jì)計(jì)算機(jī)工程系擔(dān)任“多媒體技術(shù)”課程教學(xué)的教師的工資總和。結(jié)果:(5) GROUP BY、ORDER BY子句的使用1) 按職稱統(tǒng)計(jì)各個(gè)教研室的教師人數(shù)。結(jié)果:2) 將計(jì)算機(jī)工程系的學(xué)生情況按出生日期的先后排列。3 實(shí)驗(yàn)小結(jié)本次實(shí)驗(yàn)我掌握了SELECT語(yǔ)句的基本語(yǔ)句;學(xué)會(huì)了使用ORDER BY 子句進(jìn)行排序,使用GROUP BY子句進(jìn)行統(tǒng)計(jì);并練習(xí)了數(shù)據(jù)匯總、連接查詢、嵌套查詢的方式。實(shí)驗(yàn)三第六章 試圖及其應(yīng)用 1 實(shí)

13、驗(yàn)?zāi)康?) 理解視圖的概念2) 學(xué)會(huì)利用對(duì)象資源管理器和SQL編輯器創(chuàng)建視圖的方法3) 學(xué)會(huì)查詢、更新、刪除視圖的方法2 實(shí)驗(yàn)內(nèi)容(1) 創(chuàng)建視圖1) 將表 stud_info中所有女生記錄定義為一個(gè)視圖(stud_info_female),在SQL編輯器窗口中輸入和執(zhí)行語(yǔ)句,并通過對(duì)象資源管理器來顯示其結(jié)果。2) 對(duì)表stud_info定義反映學(xué)生出生日期的視圖(stud_info_birthday)。3) 將表stud_grade中學(xué)生的學(xué)號(hào)及其平均成績(jī)定義一個(gè)視圖(stud_grade_average)。(2) 使用視圖1) 通過視圖stud_info_female查詢所有女生的記錄信息

14、。select * from stud_info_female2) 通過查詢視圖stud_info_birthday查看學(xué)生的年齡。Select stud_id,name,2011-year(birthday) as stud_age from stud_info_birthday3) 向視圖stud_info_female中插入一條記錄。insert into stud_info_femalevalues('0402010634',N'張燕','12/06/1986',N'女',N'北京海淀區(qū)','010

15、-66571908','100081',565)4) 將張燕從管理工程系轉(zhuǎn)到計(jì)算機(jī)工程系。update stud_info_femaleset stud_id=SUBSTRING(stud_id,1,2)+'01'+SUBSTRING(stud_id,5,6)where name=N'張燕'5) 把張燕從表 stud_info中刪除。delete from stud_info_female where name=N'張燕'3 實(shí)驗(yàn)小結(jié)本次實(shí)驗(yàn)中我理解了視圖的概念,也學(xué)會(huì)了利用對(duì)象資源管理器和SQL編輯器創(chuàng)建視圖的方法,并熟

16、悉了查詢、更新、刪除視圖的方法第七章 索引及其應(yīng)用1 實(shí)驗(yàn)?zāi)康?) 學(xué)會(huì)使用對(duì)象資源管理器或SQL編輯器創(chuàng)建索引2) 學(xué)會(huì)創(chuàng)建唯一、聚集、非聚集索引以及復(fù)合索引3) 學(xué)會(huì)查看和修改索引選項(xiàng),以及給索引改名和刪除索引2 實(shí)驗(yàn)內(nèi)容(1) 建立索引對(duì)student數(shù)據(jù)庫(kù)的stud_info學(xué)生信息表中的學(xué)號(hào)stud_id列建立一個(gè)名為xh_index的索引。create index xh_index on stud_info(stud_id)(2) 創(chuàng)建一個(gè)復(fù)合索引為stud_info學(xué)生信息表創(chuàng)建一個(gè)基于“入學(xué)成績(jī),學(xué)號(hào)”組合列的非聚集、復(fù)合索引cj_xh_index。create index c

17、j_xh_index on stud_info(stud_id,mark)(3) 創(chuàng)建一個(gè)聚集、復(fù)合索引為學(xué)生成績(jī)表(stud_grade)創(chuàng)建一個(gè)基于“學(xué)號(hào),課程號(hào)”組合列的聚集復(fù)合索引。use studentgocreate clustered index xhkc_index on stud_grade(stud_id,course_id)(4) 創(chuàng)建一個(gè)唯一聚集、復(fù)合索引為課程表(lesson_info)創(chuàng)建一個(gè)基于“課程號(hào),課程類型”組合的唯一、聚集、復(fù)合索引kc_lx_index。use studentgocreate unique clustered index kc_lx_in

18、dex on lesson_info(course_id,course_type)with pad_index,fillfactor=80,ignore_dup_key(5) 在teacher_info表上創(chuàng)建基于telephone列的非聚集索引,其填充因子為60.use studentgocreate index ch_index on teacher_info(telephone)with fillfactor=60實(shí)驗(yàn)四第八章 存儲(chǔ)過程與觸發(fā)器1 實(shí)驗(yàn)?zāi)康?) 理解存儲(chǔ)過程和觸發(fā)器的作用2) 學(xué)會(huì)使用對(duì)象資源管理器和SQL編輯器創(chuàng)建存儲(chǔ)過程3) 學(xué)會(huì)使用對(duì)象資源管理器和SQL編輯器創(chuàng)建觸

19、發(fā)器4) 學(xué)會(huì)存儲(chǔ)過程和觸發(fā)器的管理方法2 實(shí)驗(yàn)內(nèi)容(1) 創(chuàng)建和執(zhí)行存儲(chǔ)過程1) 針對(duì)教師基本信息表teacher_info,創(chuàng)建一個(gè)名稱為teacher_select的存儲(chǔ)過程,執(zhí)行存儲(chǔ)過程將從數(shù)據(jù)表teacher_info中根據(jù)編號(hào)檢索某一教師的姓名和職稱。use student gocreate procedure teacher_select(no char(6),nam nvarchar(4) output,title nchar(5) output)asselect nam=name,title=tech_title from teacher_info where teacher

20、_id=nogo執(zhí)行:declare nam varchar(6)declare title char(10)execute teacher_select '010104',nam output,title outputselect '姓名:',nam,'職稱:',title2) 建立一個(gè)插入教師記錄的存儲(chǔ)過程teacher_insert。(略)3) 建立一個(gè)修改教師記錄的存儲(chǔ)過程teacher_update,并執(zhí)行。(略)4) 建立一個(gè)刪除教師信息表中記錄的存儲(chǔ)過程teacher_delete,并執(zhí)行之。use student gocreate

21、 procedure teacher_delete(no char(6)asdelete from teacher_info where teacher_id=nogo執(zhí)行:exec teacher_delete '010119'(2) 創(chuàng)建觸發(fā)器1) 使用CREATE TRIGGER 語(yǔ)句創(chuàng)建一個(gè)觸發(fā)器teacher_tri1,當(dāng)表teacher_info中插入一條記錄時(shí),自動(dòng)顯示表teacher_info的記錄。use studentgo create trigger teacher_tri1on teacher_infofor insertasselect * from

22、teacher_info執(zhí)行:insert into teacher_infovalues('010119',N'聶曉基',N'男',40,N'講師','02034360338',250.0,'0401010108')2) 使用系統(tǒng)存儲(chǔ)過程sp_helptext查看觸發(fā)器teacher_tri1的定義文本信息。exec sp_helptext teacher_tri13) 在數(shù)據(jù)庫(kù)student中的teacher_info 表上建立delete觸發(fā)器teacher_tri2。use studentg

23、ocreate trigger teacher_tri2on teacher_infofor deleteasif(select count(*) from teach_schedule inner join deleted on teach_schedule.teacher_id=deleted.teacher_id)>0)begin raiserror('you can not delete the teacher_info with the order record. the transaction will be cancelled',10,1) rollback

24、 transactionend執(zhí)行:delete from teacher_info where teacher_id='010101'獨(dú)立實(shí)踐:編寫一個(gè)觸發(fā)器,在對(duì)student數(shù)據(jù)庫(kù)中的數(shù)據(jù)表stud_info執(zhí)行插入、更新和刪除三種操作后作出相應(yīng)提示。use studentgocreate trigger teacher_tri3on stud_infofor insert,update,deleteasif(select count(*) from inserted inner join deleted on inserted.stud_id=deleted.stud_

25、id)>0) print'update successfully'if(select count(*) from deleted)>0) print'delete successfully'if(select count(*)from inserted)>0) print'insert successfully'3 實(shí)驗(yàn)小結(jié)本次試驗(yàn)我理解了存儲(chǔ)過程和觸發(fā)器的作用,并熟悉了使用對(duì)象資源管理器和SQL編輯器創(chuàng)建存儲(chǔ)過程和使用對(duì)象資源管理器和SQL編輯器創(chuàng)建觸發(fā)器,與此同時(shí),我還練習(xí)了存儲(chǔ)過程和觸發(fā)器的管理方法。第九章 事務(wù)與游標(biāo)1

26、實(shí)驗(yàn)?zāi)康?) 了解SQL Server 程序設(shè)計(jì)的方法。2) 學(xué)會(huì)批處理、流程控制、事務(wù)處理、鎖、游標(biāo)的使用方法。2 實(shí)驗(yàn)內(nèi)容(1) 事務(wù)處理運(yùn)用事務(wù)處理將student數(shù)據(jù)庫(kù)中課程信息表lesson_info中的多媒體技術(shù)課程編號(hào)course_id由0401010106修改為0401010116.use studentgobegin transaction student_tranupdate lesson_info set course_id='0401010116'where course_id='0401010106'save tran stud_sav

27、epointupdate teach_schedule set course_id='0401010116'where course_id='0401010106'update stud_grade set course_id='0401010116'where course_id='0401010106'update teacher_info set course_id='0401010116'where course_id='0401010106'if(ERROR=1) rollback tran stud_savepointelsecommit tran student_tran(2) 油表的使用1) 定義一個(gè)游標(biāo)stud_cursor,逐行讀取stud_info表中的數(shù)據(jù)(略)2) 定義一個(gè)游標(biāo)stud_cursor,刪除stud_info中第一行數(shù)據(jù)(略)3) 定義一個(gè)游標(biāo)stud_curso

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論