《數(shù)據(jù)庫原理及應用》實驗報告(1-21)_第1頁
《數(shù)據(jù)庫原理及應用》實驗報告(1-21)_第2頁
《數(shù)據(jù)庫原理及應用》實驗報告(1-21)_第3頁
《數(shù)據(jù)庫原理及應用》實驗報告(1-21)_第4頁
《數(shù)據(jù)庫原理及應用》實驗報告(1-21)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 .數(shù)據(jù)庫原理及應用實驗報告實驗課程: 數(shù)據(jù)庫原理及應用 學 號: 學生姓名: 班 級: 2014年 月 日實驗一 創(chuàng)建和維護數(shù)據(jù)庫一、實驗目的(1)掌握在Windows 平臺下安裝與配置MySQL 5.5 的方法。(2)掌握啟動服務并登錄MySQL 5.5 數(shù)據(jù)庫的方法和步驟。(3)了解手工配置MySQL 5.5 的方法。(4)掌握MySQL 數(shù)據(jù)庫的相關概念。(5)掌握使用Navicat 工具和SQL 語句創(chuàng)建數(shù)據(jù)庫的方法。(6)掌握使用Navicat 工具和SQL 語句刪除數(shù)據(jù)庫的方法。二、實驗要求(1)學生提前準備好實驗報告,預習并熟悉實驗步驟;(2)遵守實驗室紀律,在規(guī)定的時間內完成

2、要求的內容;(3)12人為1小組,實驗過程中獨立操作、相互學習。三、實驗內容及步驟(1)在Windows 平臺下安裝與配置MySQL 5.5.36 版。(2)在服務對話框中,手動啟動或者關閉MySQL 服務。(3)使用Net 命令啟動或關閉MySQL 服務。(4)分別用Navicat 工具和命令行方式登錄MySQL。(5)在my.ini 文件中將數(shù)據(jù)庫的存儲位置改為D:MYSQLDATA。(6)創(chuàng)建數(shù)據(jù)庫。 使用Navicat 創(chuàng)建學生信息管理數(shù)據(jù)庫gradem。 使用SQL 語句創(chuàng)建數(shù)據(jù)庫MyDB。(7)查看數(shù)據(jù)庫屬性。 在Navicat 中查看創(chuàng)建后的gradem 數(shù)據(jù)庫和MyDB 數(shù)據(jù)庫

3、的狀態(tài),查看數(shù)據(jù)庫所在的文件夾。 利用SHOW DATABASES 命令顯示當前的所有數(shù)據(jù)庫。(8)刪除數(shù)據(jù)庫。 使用Navicat 圖形工具刪除gradem 數(shù)據(jù)庫。 使用SQL 語句刪除MyDB 數(shù)據(jù)庫。 利用SHOW DATABASES 命令顯示當前的所有數(shù)據(jù)庫。(9)使用配置向導修改當前密碼,并使用新密碼重新登錄。(10)配置Path 變量,確保MySQL 的相關路徑包含在Path 變量中。四、思考題My SQL的數(shù)據(jù)庫文件有幾種?擴展名分別是什么?五、實驗總結1、收獲2、存在的問題實驗二 管理表一、實驗目的(1) 掌握表的基礎知識。(2) 掌握使用Navicat管理工具和SQL語句創(chuàng)

4、建表的方法。(3) 掌握表的修改、查看、刪除等基本操作方法。二、實驗要求(1)學生提前準備好實驗報告,預習并熟悉實驗步驟;(2)遵守實驗室紀律,在規(guī)定的時間內完成要求的內容;(3)12人為1小組,實驗過程中獨立操作、相互學習。三、實驗內容及步驟(1)在gradem數(shù)據(jù)庫中創(chuàng)建表4.18表4.22所示結構的表。表4.18 student表的表結構字段名稱數(shù)據(jù)類型長度小數(shù)位數(shù)是否允許NULL值說明snochar10否主碼snamevarchar8是ssexchar2是sbirthdaydatetime是saddressvarchar50是sdeptchar16是specialityvarchar2

5、0是表4.19 course表(課程名稱表)的表結構字段名稱數(shù)據(jù)類型長度小數(shù)位數(shù)是否允許NULL值說明cnochar5否主碼cnamevarchar20否表4.20 sc表(成績表)的表結構字段名稱數(shù)據(jù)類型長度小數(shù)位數(shù)是否允許NULL值說明snochar10否組合主碼、外碼cnochar5否組合主碼、外碼degreedecimal41是1100表4.21 teacher表(教師表)的表結構字段名稱數(shù)據(jù)類型長度小數(shù)位數(shù)是否允許NULL值說明tnochar3否主碼tnamevarchar8是tsexchar2是tbirthdaydate是tdeptchar16是表4.22 teaching表(授課

6、表)的表結構字段名稱數(shù)據(jù)類型長度小數(shù)位數(shù)是否允許NULL值說明cnochar5否組合主碼、外碼tnochar3否組合主碼、外碼ctermtinyint10是110(2) 向表4.18至表4.22輸入數(shù)據(jù)記錄,見表4.23表4.27。表4.23 學生關系表studentsnosnamessexsbirthdaysaddresssdeptspeciality20050101李勇男1987-01-12山東濟南計算機工程系計算機應用20050201劉晨女1988-06-04山東青島信息工程系電子商務20050301王敏女1989-12-23江蘇蘇州數(shù)學系數(shù)學20050202張立男1988-08-25河

7、北唐山信息工程系電子商務表4.24 課程關系表coursecnocnamecnocnameC01數(shù)據(jù)庫C03信息系統(tǒng)C02數(shù)學C04操作系統(tǒng)表4.25 成績表scsnocnodegree20050101C019220050101C028520050101C038820050201C029020050201C0380表4.26 教師表teachertnotnametsextbirthdaytdept101李新男1977-01-12計算機工程系102錢軍女1968-06-04計算機工程系201王小花女1979-12-23信息工程系202張小青男1968-08-25信息工程系表4.27 授課表tea

8、chingcnotnoctermC011012C021021C032013C042024(3) 修改表結構。 向student表中增加“入學時間”列,其數(shù)據(jù)類型為日期時間型。 將student表中的sdept字段長度改為20。 將student表中的speciality字段刪除。 刪除student表。(4) 利用SQL命令(create table、alter table、drop table)完成對表的操作利用create talbe 命令完成student表和course表的定義。利用drop table命令實現(xiàn)(3)中的。四、思考題 (1) MySQL中的數(shù)據(jù)文件有幾種?擴展名分別是什

9、么?(2) 在定義基本表語句時,NOT NULL參數(shù)的作用是什么?(3) 主碼可以建立在“值可以為NULL”的列上嗎?五、實驗總結:1、收獲2、存在的問題實驗三 簡單查詢單表無條件和有條件查詢一、實驗目的(1) 掌握SELECT語句的基本用法。(2) 使用WHERE子句進行有條件的查詢。(3) 掌握使用IN和NOT IN,BETWEENAND和NOT BETWEENAND來縮小查詢范圍的方法。(4) 利用LIKE子句實現(xiàn)字符串匹配查詢。二、實驗要求1、學生提前準備好實驗報告,預習并熟悉實驗步驟;2、遵守實驗室紀律,在規(guī)定的時間內完成要求的內容;3、12人為1小組,實驗過程中獨立操作、相互學習。

10、三、實驗內容及步驟在上次實驗建立的Gradem或Gradem1數(shù)據(jù)庫中完成下面查詢:(1) 查詢所有學生的基本信息、所有課程的基本信息和所有學生的成績信息(用三條SQL語句)。(2) 查詢所有學生的學號、姓名、性別和出生日期。(3) 查詢所有課程的課程名稱。(4) 查詢前10門課程的課號及課程名稱。(5) 查詢所有學生的姓名及年齡。(6) 查詢所有年齡大于18歲的女生的學號和姓名。(7) 查詢所有男生的信息。(8) 查詢所有任課教師的姓名(Tname)和所在系別(Tdept)。(9) 查詢“電子商務”專業(yè)的學生姓名、性別和出生日期。(10) 查詢Student表中的所有系名。(11) 查詢“C

11、01”課程的開課學期。(12) 查詢成績在8090分之間的學生學號及課號。(13) 查詢在1970年1月1日之前出生的男教師信息。(14) 輸出有成績的學生學號。(15) 查詢所有姓“劉”的學生信息。(16) 查詢生源地不是山東省的學生信息。(17) 查詢成績?yōu)?9分、89分或99分的記錄。(18) 查詢名字中第二個字是“小”字的男生的學生姓名和地址。(19) 查詢名稱以“計算機_”開頭的課程名稱。(20) 查詢計算機工程系和軟件工程系的學生信息。四、思考題1、LIKE的通配符有哪些?分別代表什么含義?2、知道學生的出生日期,如何求出其年齡?3、IS能用“=”來代替嗎?4、關鍵字ALL和DIS

12、TINCT有什么不同的含義?四、實驗總結:1、收獲2、存在的問題實驗四 簡單查詢分組與排序一、實驗目的:(1) 利用GROUP BY子句對查詢結果分組。(2) 利用ORDER BY子句對查詢結果排序。(3) 掌握聚集函數(shù)的使用方法。二、實驗要求1、學生提前準備好實驗報告,預習并熟悉實驗步驟;2、遵守實驗室紀律,在規(guī)定的時間內完成要求的內容;3、12人為1小組,實驗過程中獨立操作、相互學習。三、實驗內容及步驟在Gradem或Gradem1數(shù)據(jù)庫中完成下面查詢:(1) 統(tǒng)計有學生選修的課程的門數(shù)。 (2) 計算“c01”課程的平均成績。(3) 查詢選修了“c03”課程的學生的學號及其成績,查詢結果

13、按分數(shù)降序排列。(4) 查詢各個課程號及相應的選課人數(shù)。(5) 統(tǒng)計每門課程的選課人數(shù)和最高分。(6) 統(tǒng)計每個學生的選課門數(shù)和考試總成績,并按選課門數(shù)降序排列。(7) 查詢選修了3門以上課程的學生學號。(8) 查詢成績不及格的學生學號及課號,并按成績降序排列。(9) 查詢至少選修一門課程的學生學號。(10) 統(tǒng)計輸出各系學生的人數(shù)(11) 統(tǒng)計各系學生人數(shù);各系的男、女生人數(shù)。(兩條命令)(12) 統(tǒng)計各班人數(shù);各班男、女生人數(shù)。(兩條命令)(13) 統(tǒng)計各系的老師人數(shù),并按人數(shù)升序排序。(14) 統(tǒng)計不及格人數(shù)超過10人的課程號。統(tǒng)計選修人數(shù)超過10人的課程號。(15) 查詢軟件系的男生信

14、息,查詢結果按出生日期升序排序,出生日期相同的按地址降序排序。三、思考題(1) 聚集函數(shù)能否直接使用在SELECT子句、HAVING子句、WHERE子句、GROUP BY子句中? (2) WHERE子句與HAVING子句有何不同?四、實驗總結:1、收獲2、存在的問題實驗五、六、七 多表查詢一、實驗目的(1) 掌握SELECT語句在多表查詢中的應用。(2) 掌握多表連接的幾種連接方式及應用。二、實驗要求1、學生提前準備好實驗報告,預習并熟悉實驗步驟;2、遵守實驗室紀律,在規(guī)定的時間內完成要求的內容;3、12人為1小組,實驗過程中獨立操作、相互學習。三、實驗內容及步驟在Gradem或Gradem1

15、數(shù)據(jù)庫中完成下面查詢:(1) 查詢計算機工程系女學生的學生學號、姓名及考試成績。(2) 查詢“李勇”同學所選課程的成績。(不考慮重名)(3) 查詢“李新”老師所授課程的課程名稱。(4) 查詢女教師所授課程的課程號及課程名稱。(5) 查詢至少選修一門課程的女學生姓名。(6) 查詢姓“王”的學生所學的課程名稱。(7) 查詢選修“數(shù)據(jù)庫”課程且成績在8090分之間的學生學號及成績。查詢姓名?(8) 查詢課程成績及格的男同學的學生信息及課程號與成績。(9) 查詢選修“c04”課程的學生的平均年齡。(10) 查詢學習課程名為“數(shù)學”的學生學號和姓名。(11) 查詢“錢軍”教師任課的課程號,選修其課程的學

16、生的學號和成績。姓名?(12) 查詢在第3學期所開課程的課程名稱及成績。(13) 查詢“c02”號課程不及格的學生信息。(14) 查詢軟件系成績在90分以上的學生姓名、性別和課程名稱。(15) 查詢同時選修了“c04”和“c02”課程的學生姓名和成績。三、思考題(1) 指定一個較短的別名有什么好處?(2) 內連接與外連接有什么區(qū)別?(3) “=”與IN在什么情況下作用相同?四、實驗總結:1、收獲2、存在的問題實驗八、九 嵌套查詢一、實驗目的(1) 掌握嵌套查詢的使用方法。(2) 掌握相關子查詢與嵌套子查詢的區(qū)別。(3) 掌握帶IN謂詞的子查詢的使用方法。(4) 掌握帶比較運算符的子查詢的使用方

17、法。二、實驗要求1、學生提前準備好實驗報告,預習并熟悉實驗步驟;2、遵守實驗室紀律,在規(guī)定的時間內完成要求的內容;3、12人為1小組,實驗過程中獨立操作、相互學習。三、實驗內容及步驟在Grademanager數(shù)據(jù)庫中完成下面查詢:(1) 查詢計算機系(CS)女學生的學生學號、姓名及考試成績。(2) 查詢“李勇”同學所選課程的成績。(3) 查詢“李新”老師所授課程的課程名稱。(4) 查詢女教師所授課程的課程號及課程名稱。(5) 查詢姓“王”的學生所學的課程名稱。(6) 查詢選修“數(shù)據(jù)庫”課程且成績在8090分之間的學生學號及成績。(7) 查詢選修“C04”課程的學生的平均年齡。(8) 查詢學習課

18、程名為“數(shù)學”的學生學號和姓名。(9) 查詢“錢軍”教師任課的課程號,選修其課程的學生的學號和成績。(10) 查詢在第3學期所開課程的課程名稱及成績。(11) 查詢與“李勇”同一個系的同學姓名。(12) 查詢學號比“劉晨”同學大,而出生日期比他小的學生姓名。(13) 查詢出生日期大于所有女同學出生日期的男同學的姓名及系別。(14) 查詢成績比該課程平均成績高的學生的學號及成績。(15) 查詢不講授“C01”課的教師姓名。(16) 查詢沒有選修“C02”課程的學生學號及姓名。(17) 查詢選修了“數(shù)據(jù)庫”課程的學生學號、姓名及系別。(18) 查詢“C02”號課程不及格的學生信息。三、思考題(1)

19、 子查詢一般分為幾種? (2) 相關子查詢的執(zhí)行過程是什么?四、實驗總結:1、收獲2、存在的問題實驗十 數(shù)據(jù)更新一、實驗目的:(1) 掌握利用INSERT命令實現(xiàn)對表數(shù)據(jù)的插入操作。(2) 掌握利用UPDATE命令實現(xiàn)對表數(shù)據(jù)的修改操作。(3) 掌握利用DELETE命令實現(xiàn)對表數(shù)據(jù)的刪除操作。二、實驗要求1、學生提前準備好實驗報告,預習并熟悉實驗步驟;2、遵守實驗室紀律,在規(guī)定的時間內完成要求的內容;3、12人為1小組,實驗過程中獨立操作、相互學習。三、實驗內容及步驟在Gradem或Gradem1數(shù)據(jù)庫中完成下面操作:注意:利用SELECT INTO命令備份Student、SC、Course這

20、3個表,備份表名自定。(1) 向Student表中插入記錄(20050203,張靜,1981-3-21,女,CS,電子商務)。(2) 插入學號為“20050302”、姓名為“李四”的學生信息。(3) 把計算機系的學生記錄保存到表TS中(TS表已存在,表結構與Student表相同)。(4) 將學號為“20050202”的學生姓名改為“張華”,系別改為“CS”,專業(yè)改為“多媒體技術”。(5) 將“李勇”同學的專業(yè)改為“計算機信息管理”。(6) 將“20050201”學生選修“C03”號課程的成績改為該課的平均成績。(7) 把成績低于總平均成績的女同學的成績提高5%。(8) 把選修了“數(shù)據(jù)庫”課程而

21、成績不及格的學生的成績全改為空值(NULL)。(9) 刪除學號為“20050302”的學生記錄。(10) 刪除“計算機系”所有學生的選課記錄。(11) 刪除SC表中尚無成績的選課記錄。(12) 把“張晨”同學的成績全部刪除。三、思考題(1) DROP命令和DELETE命令的本質區(qū)別是什么?(2) 利用INSERT、UPDATE和DELETE命令可以同時對多個表進行操作嗎?四、實驗總結:1、收獲2、存在的問題實驗十一、十二、十三 第四章綜合實驗一、實驗目的:(1) 進一步掌握SELECT語句的功能及使用方法。(2) 進一步掌握SELECT語句的基本語法和查詢條件表示方法;(3) 進一步掌握查詢條

22、件種類和表示方法;(4) 進一步掌握連接查詢的表示及使用;(5) 進一步掌握嵌套查詢的表示及使用;(6) 了解集合查詢的表示及使用(7) 進一步掌握利用INSERT命令實現(xiàn)對表數(shù)據(jù)的插入操作。(8) 進一步掌握利用UPDATE命令實現(xiàn)對表數(shù)據(jù)的修改操作。(9) 進一步掌握利用DELETE命令實現(xiàn)對表數(shù)據(jù)的刪除操作。二、實驗要求1、學生提前準備好實驗報告,預習并熟悉實驗步驟;2、遵守實驗室紀律,在規(guī)定的時間內完成要求的內容;3、12人為1小組,實驗過程中獨立操作、相互學習。三、實驗內容及步驟在Grademanager數(shù)據(jù)庫中完成下面操作:(1) 查詢以DB_開頭,且倒數(shù)第3個字符為s的課程的詳細

23、情況;Select * from course where cname like db_%s_ _(2) 查詢名字中第2個字為陽的學生姓名和學號及選修的課程號、課程名;思考能否用嵌套查詢?(3)列出選修了數(shù)學或者大學英語的學生學號、姓名、所在院系、選修課程號及成績; (4) 查詢缺少成績的所有學生的詳細情況;(5) 查詢與張力(假設姓名唯一)年齡不同的所有學生的信息; (6) 查詢所選課程的平均成績大于張力的平均成績的學生學號、姓名及平均成績;Select a.sno,sname,avg(degree) from student a,sc b where a.sno=b.sno group b

24、y a.sno having avg(degree)(select avg(degree) from student a,sc b where a.sno=b.sno and sname=張力)(7) 列出只選修一門課程的學生的學號、姓名、院系及成績;Select a.sno,sname,sdept,degree from student a,sc b where a.sno=b.sno group by a.sno having count(*)=1(8) 查找選修了至少一門和張力選修課程一樣的學生的學號、姓名及課程號;Select a.sno,sname,cno from student

25、a,sc b where a.sno=b.sno and cno in (select cno from student a,sc b where a.sno=b.sno and sname=張力)(9) 只選修“數(shù)據(jù)庫”和“數(shù)據(jù)結構”兩門課程的學生的基本信息;Select * from student a,sc b Where a.sno=b.sno and b.sno in(select sno from sc a,course b where o=o and cname=大學英語 and sno in (select sno from sc a,course b wher

26、e o=o and cname=高等數(shù)學) Group by b.sno having count(cno)=2(10) 至少選修“數(shù)據(jù)庫”或“數(shù)據(jù)結構”課程的學生的基本信息;(11) 列出所有課程被選修的詳細情況,包括課程號、課程名、學號及成績;(12) 查詢只被一名學生選修的課程的課程號、課程名;Select cno,cname from course where cno in(select cno from sc group by cno having count(*)=1)(13) 使用嵌套查詢列出選修了“數(shù)據(jù)結構”課程的學生學號和姓名;(14) 使用嵌套查詢查詢其它系

27、中年齡小于計算機系的某個學生的學生姓名、年齡和系別;(15) 使用ANY、ALL 查詢,列出其他院系中比CS系所有學生年齡小的學生;(16) 分別使用連接查詢和嵌套查詢,列出與張力在一個系的學生的信息;(17) 使用集合查詢列出CS系的學生以及性別為女的學生名單;四、實驗總結:1、收獲2、存在的問題實驗十四 索引一、實驗目的:(1) 理解索引的概念與類型。(2) 掌握創(chuàng)建、更改、刪除索引的方法。(3) 掌握維護索引的方法。二、實驗要求1、學生提前準備好實驗報告,預習并熟悉實驗步驟;2、遵守實驗室紀律,在規(guī)定的時間內完成要求的內容;3、12人為1小組,實驗過程中獨立操作、相互學習。三、實驗內容及

28、步驟1)使用Navicat圖形工具創(chuàng)建、管理索引(1) 在數(shù)據(jù)庫test下創(chuàng)建workinfo表。創(chuàng)建表的同時在id字段上創(chuàng)建名為index_id的唯一性索引,而且以降序的格式排列。workinfo表結構內容如下表所示:字段名字段描述數(shù)據(jù)類型主鍵外鍵非空唯一自增id編號INT(10)是否是是是sname職位名稱VARCHAR(20)否否是否否Type職位類別VARCHAR(10)否否否否否Address工作地址VARCHAR(50)否否否否否Wages工資INT否否否否否Contents工作內容INTYTEXT否否否否否extra附加信息TEXT否否否否否(2) 創(chuàng)建索引。為name字段創(chuàng)建長

29、度為10的索引index_name,在type和address字段上創(chuàng)建名為index_t的組合索引。(3)將workinfo表的存儲引擎更改為MyISAM類型。(4)刪除索引。刪除workinfo表的唯一性索引index_id。2) 使用SQL語句創(chuàng)建、管理索引(1) 利用create table語句在test數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表writers,其表結構內容如下表所示。在創(chuàng)建表的同時在w_id字段上添加名稱為uniquex的唯一索引。字段名字段描述數(shù)據(jù)類型主鍵外鍵非空唯一自增id編號INT(10)是否是是是w_name作者姓名VARCHAR(20)否否是否否w_address作者地址VARCH

30、AR(50)否否否否否w_age年齡INT否否是否否w_note說明TEXT否否否否否(2)使用alter table語句在w_name字段上建立名稱為nameidx的普通索引。(3)使用create index語句在w_address和w_age字段上建立名稱為multiidx的組合索引。(4) 刪除索引。利用alter table語句將全文索引ftidx刪除,利用drop index語句將nameidx索引刪除。四、思考題 (1) 數(shù)據(jù)庫中索引被破壞后會產生什么結果?(2) 視圖上能創(chuàng)建索引嗎?五、實驗總結:1、收獲2、存在的問題實驗十五 視圖一、實驗目的:(1) 理解視圖的概念。(2)

31、掌握創(chuàng)建、更改、刪除視圖的方法。(3) 掌握使用視圖來訪問數(shù)據(jù)的方法。二、實驗要求1、學生提前準備好實驗報告,預習并熟悉實驗步驟;2、遵守實驗室紀律,在規(guī)定的時間內完成要求的內容;3、12人為1小組,實驗過程中獨立操作、相互學習。三、實驗內容及步驟1) 使用SQL語句創(chuàng)建、管理視圖(1) 創(chuàng)建視圖。 創(chuàng)建一個名為sc_view1的視圖,從數(shù)據(jù)庫gradem的sc表中查詢出成績大于90分的所有學生選修成績的信息。 創(chuàng)建一個名為sc_view2的視圖,從數(shù)據(jù)庫gradem的sc表中查詢出成績小于80分的所有學生的學號、課程號、成績等信息。 創(chuàng)建一個名為sc_view3的視圖,由數(shù)據(jù)庫gradem的

32、student、course、sc表創(chuàng)建一個顯示“20070303”班學生選修課程(包括學生姓名、課程名稱、成績等信息)的視圖。 創(chuàng)建一個從視圖sc_view1中查詢出課程號“c01”的所有學生的視圖。 (2) 修改視圖的定義。修改視圖sc_view1,使其從數(shù)據(jù)庫gradem的sc表中查詢出成績大于90分且第3學期的所有學生選修成績的信息。(3) 視圖的刪除。 將視圖sc_view1刪除。(4) 管理視圖中的數(shù)據(jù)。 從視圖sc_view2中查詢出學號為“2007030125”、課程號為“a01”的學生選修成績的信息。 將視圖sc_view2中學號為“2007030122”、課程號為“c02”

33、的成績改為87。 從視圖sc_view2中將學號為“2007030123”、課程號為“a01”的學生信息刪除。2思考題(1) 向視圖中插入的數(shù)據(jù)能進入到基本表中去嗎?(2) 修改基本表的數(shù)據(jù)會自動反映到相應的視圖中去嗎?(3) 如何保證視圖使用的安全性?四、實驗總結:1、收獲2、存在的問題實驗十六 SQL編程一、實驗目的:(1) 理解常量與變量的概念;(2) 掌握常量與變量的使用方法;(3) 掌握表達式的使用方法; (4) 理解Transact-SQL流程控制語句的使用;(5) 掌握常用函數(shù)的功能及使用方法;二、實驗要求1、學生提前準備好實驗報告,預習并熟悉實驗步驟;2、遵守實驗室紀律,在規(guī)定

34、的時間內完成要求的內容;3、12人為1小組,實驗過程中獨立操作、相互學習。三、實驗內容及步驟(1) 定義一個整型局部變量iAge和可變長字符型局部變量vAddress,并分別賦值20和“中國山東”,最后輸出變量的值,并要求通過注釋對批處理中語句的功能進行說明。(2) 通過全局變量獲得當前My SQL服務器的版本。(3) 求1100的偶數(shù)和。(4) 對于字符串“Welcome to My SQL”,進行以下操作。(查閱聯(lián)機叢書) 將字符串轉換為全部大寫。 將字符串轉換為全部小寫。 去掉字符串前后的空格。 截取從第12個字符開始的10個字符。(5) 使用日期型函數(shù),獲得輸出結果見表5-8。表5-8

35、 輸出結果年份月份日期星期幾20091116星期一(6) 根據(jù)sc表中的成績進行處理:成績大于等于60分的顯示“及格”,小于60分的顯示“不及格”,為NULL的顯示“無成績”。(7) 利用SQL條件語句,在student表中查找“李艷”同學的信息,若找到,則顯示該生的學號、姓名、班級名稱及班主任,否則顯示“查無此人”。3思考題(1) 全局變量與局部變量的區(qū)別是什么?(2) 使用變量的前提是什么?四、實驗總結:1、收獲2、存在的問題實驗十七 存儲過程一、實驗目的:(1) 理解存儲過程和函數(shù)的概念。(2) 掌握創(chuàng)建各種存儲過程和函數(shù)的方法。(3) 掌握執(zhí)行存儲過程和函數(shù)的方法。(4) 掌握查看、修

36、改、刪除存儲過程和函數(shù)的方法。二、實驗要求1、學生提前準備好實驗報告,預習并熟悉實驗步驟;2、遵守實驗室紀律,在規(guī)定的時間內完成要求的內容;3、12人為1小組,實驗過程中獨立操作、相互學習。三、實驗內容及步驟1) 使用Transact-SQL語句創(chuàng)建存儲過程(1) 創(chuàng)建不帶參數(shù)的存儲過程。 創(chuàng)建一個從student表查詢班級號為“20070301”班的學生資料的存儲過程proc_1,其中包括學號、姓名、性別、出生年月等。調用proc_1存儲過程,觀察執(zhí)行結果。 在gradem1數(shù)據(jù)庫中創(chuàng)建存儲過程proc_2,要求實現(xiàn)如下功能:存在不及格情況的學生選課情況列表,其中包括學號、姓名、性別、課程號

37、、課程名、成績、系別等。調用proc_2存儲過程,觀察執(zhí)行結果。(2) 創(chuàng)建帶輸入?yún)?shù)的存儲過程。創(chuàng)建一個從student表查詢學生資料的存儲過程 proc_3,其中包括學號、姓名、性別、出生年月、班級等。要查詢的班級號通過執(zhí)行語句中的輸入?yún)?shù)傳遞給存在過程。其中,“20070303”為要傳遞給存儲過程proc_3的輸入?yún)?shù),也即是要查詢的資料的班級號。(3) 創(chuàng)建帶輸出參數(shù)的存儲過程。創(chuàng)建一個從sc表查詢某一門課程考試成績總分的存儲過程proc_4。在以上存儲過程中,要查詢的課程號通過執(zhí)行語句中的輸入?yún)?shù)cno傳遞給存儲過程,sum_degree作為輸出參數(shù)用來存放查詢得到的總分。執(zhí)行此存儲

38、過程,觀察執(zhí)行結果。2) 使用Transcant-SQL語句查看、修改和刪除存儲過程(1) 查看存儲過程。用戶的存儲過程被創(chuàng)建以后,可以用系統(tǒng)存儲過程來查看其有關信息。 查看存儲過程的定義。使用系統(tǒng)存儲過程sp_helptext查看存儲過程proc_1、proc_3的定義。 使用系統(tǒng)存儲過程sp_help查看存儲過程proc_1的信息。(2) 修改存儲過程。使用ALTER PROCEDURE語句將存儲過程proc_1修改為查詢班級號為“20070302”班的學生資料。(3) 刪除存儲過程。將存儲過程 proc_1刪除。四、實驗總結:1、收獲2、存在的問題實驗十八、十九 觸發(fā)器一、實驗目的:(1

39、) 理解觸發(fā)器的概念與類型。(2) 理解觸發(fā)器的功能及工作原理。(3) 掌握創(chuàng)建、更改、刪除觸發(fā)器的方法。(4) 掌握利用觸發(fā)器維護數(shù)據(jù)完整性的方法。二、實驗要求1、學生提前準備好實驗報告,預習并熟悉實驗步驟;2、遵守實驗室紀律,在規(guī)定的時間內完成要求的內容;3、12人為1小組,實驗過程中獨立操作、相互學習。三、實驗內容及步驟1) 使用Transcat-SQL語句創(chuàng)建觸發(fā)器(1) 創(chuàng)建插入觸發(fā)器并進行觸發(fā)器的觸發(fā)執(zhí)行。為表sc創(chuàng)建一個插入觸發(fā)器 student_sc_insert,當向表sc插入數(shù)據(jù)時,必須保證插入的學號有效地存在于student表中,如果插入的學號在student表中不存在,

40、給出錯誤提示。向表sc中插入一行數(shù)據(jù):sno, cno,degree分別是(20070302,c01,78),該行數(shù)據(jù)插入后,觀察插入觸發(fā)器student_sc_insert是否觸發(fā)工作,再插入一行數(shù)據(jù),觀察插入觸發(fā)器是否觸發(fā)工作。(2) 創(chuàng)建刪除觸發(fā)器。為表student 創(chuàng)建一個刪除觸發(fā)器student_delete,當刪除表student中的一個學生的基本信息時,將表sc中該生相應的學習成績刪除。將學生“張小燕”的資料從表student中刪除,觀察刪除觸發(fā)器student_delete是否觸發(fā)工作,即sc表中該生相應的學習成績是否被刪除。(3) 創(chuàng)建更新觸發(fā)器。為student表創(chuàng)建一個

41、更新觸發(fā)器student_sno,當更改student表中某學號學生的學號時,同時將sc表中該學生的學號更新。將student表中“2007030112”的學號改為“2007030122”,觀察觸發(fā)器student_sno是否觸發(fā)工作,即sc表中是否也全部改為“2007030122”。2) 查看、刪除觸發(fā)器(1) 查看觸發(fā)器的定義、狀態(tài)和語法等相關信息。 利用SHOW TRIGGERS語句查看。 在triggers表中查看觸發(fā)器的相關信息。(2) 刪除觸發(fā)器。使用DROP TRIGGER刪除student_sno觸發(fā)器。3) 使用Navicat工具使用Navicat工具完成觸發(fā)器student

42、_sc_insert、觸發(fā)器student_delete和觸發(fā)器student_sno的創(chuàng)建、查看和刪除。3思考題(1) 能否在當前數(shù)據(jù)庫中為其他數(shù)據(jù)庫創(chuàng)建觸發(fā)器?(2) 觸發(fā)器何時被激發(fā)?四、實驗總結:1、收獲2、存在的問題實驗二十 數(shù)據(jù)庫的安全機制一、實驗目的:(1) 理解My SQL的權限系統(tǒng)的工作原理。(2) 理解My SQL賬戶及權限的概念。(3) 掌握管理My SQL賬戶和權限的方法。(4) 學會創(chuàng)建和刪除普通用戶的方法和密碼管理的方法。(5) 學會如何進行權限管理。二、實驗要求1、學生提前準備好實驗報告,預習并熟悉實驗步驟;2、遵守實驗室紀律,在規(guī)定的時間內完成要求的內容;3、1

43、2人為1小組,實驗過程中獨立操作、相互學習。三、實驗內容及步驟1)利用Navicat圖形工具實現(xiàn)下列操作: 使用root用戶創(chuàng)建aric用戶,初始密碼設置為abcdef。讓該用戶對gradem數(shù)據(jù)庫擁有SELECT、UPDATE、DROP權限。使用root用戶將aric用戶的密碼修改為123456查看aric用戶的權限。用aric用戶登錄,將其密碼修改為aaabbb,并查看自己的權限。利用aric用戶來驗證自己是否有GRANT權限和CREATE權限。用root用戶登錄,收回aric用戶的刪除權限。刪除root用戶。修改root用戶的密碼。2) 利用命令實現(xiàn)下列操作: 使用root用戶創(chuàng)建exam1用戶,初始密碼設置為123456。讓該用戶對所有數(shù)據(jù)庫擁有SELECT、CREATE、DROP、SUPER、GRANT權限。創(chuàng)建exam2用戶,該用戶沒有初始密碼。用exam2用戶登錄,將其密碼修改為000000。用exam1用戶登錄,為exam2用戶設置CREATE和DROP權限。用exam2用戶登錄,驗證其擁有的CREATE和DROP權限。用root用戶登錄,收回exam1用戶和exam2用戶的所有權限。刪除exam1用戶和exam2用戶。修改root用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論