中南大學數(shù)據(jù)庫實驗報告.doc
《中南大學數(shù)據(jù)庫實驗報告.doc》由會員分享,可在線閱讀,更多相關(guān)《中南大學數(shù)據(jù)庫實驗報告.doc(30頁珍藏版)》請在裝配圖網(wǎng)上搜索。
中南大學 數(shù)據(jù)庫實驗報告 學 號 0902130001 學生姓名 呂 小 布 指導教師 劉安豐 學 院 信息科學與工程 專業(yè)班級 計算機科學與技術(shù)1306班 完成時間 2015年6月19日 目 錄 數(shù)據(jù)庫實驗一 3 一、實驗內(nèi)容 3 二、實驗準備 6 三、實驗過程 6 1、創(chuàng)建表 7 2、 創(chuàng)建和修改約束 8 3、 創(chuàng)建索引和視圖 9 四、 源代碼 9 數(shù)據(jù)庫實驗二 14 一、實驗要求 14 二、 實驗過程及結(jié)果 16 1、創(chuàng)建表 16 2、查詢語句 17 數(shù)據(jù)庫實驗三 24 一、實驗內(nèi)容: 24 二、 實驗過程 25 1、 創(chuàng)建修改和刪除存儲過程 25 2、 觸發(fā)器操作 26 三、實驗結(jié)果 27 數(shù)據(jù)庫實驗四 29 數(shù)據(jù)庫實驗一 【實驗項目一】數(shù)據(jù)表, 索引, 視圖創(chuàng)建, 修改,刪除的設(shè)計與完整性約束 實驗室名稱 實驗室地點 學時 2 實驗類型 驗證性 每組人數(shù) 1 選做或必做 必做 實驗目的 (1)掌握數(shù)據(jù)表設(shè)計的具體細節(jié)操作。(2)掌握primary key 、check、default, references 等約束的應用。 內(nèi)容提要 實現(xiàn)數(shù)據(jù)表的創(chuàng)建,并使用primary key 、check、default, references 等約束。 重點難點 primary key 、check、default, references 等約束。 主要儀器及耗材 計算機 一、實驗內(nèi)容 (一)創(chuàng)建以下六張表,有如下要求: 本次實驗100分 1)創(chuàng)建這6個表(20分)。 1)用不同的方法創(chuàng)建約束;2)查看和刪除約束;(3)創(chuàng)建、刪除默認和規(guī)則 (3*5分) 1)掌握主鍵約束的特點和用法;2)掌握惟一性約束的用法;3)掌握默認約束和默認對象的用法;4)掌握CHECK約束和規(guī)則對象的用法;5)掌握利用主鍵與外鍵約束實現(xiàn)參照完整性的方法(5*5分)。 1)增加一個字段;2)刪除一個字段; 3)增加一個約束; 4)修改字段的數(shù)據(jù)類型(4*5分); 1)創(chuàng)建索引;2)重建索引(2*5分)。 1) 創(chuàng)建視圖; 2)刪除視圖(2*5分)。 表結(jié)構(gòu)按照顯示的數(shù)據(jù)由讀者自行設(shè)定,并按下表顯示的數(shù)據(jù)錄入至相關(guān)表中。 讀者信息表 借書證號 姓名 性別 出生日期 借書量 工作單位 電話 E-mail 29307142 張曉露 女 1989-02-1 2 管理信息系 85860126 zxl@163.com 36405216 李陽 男 1988-12-26 1 航海系 85860729 ly@sina.com.cn 28308208 王新全 男 1988-04-25 1 人文藝術(shù)系 85860618 wxq@yahoo.cn 16406236 張繼剛 男 1989-08-18 1 輪機工程系 85860913 zjg@163.com 16406247 顧一帆 男 1981-12-30 輪機工程系 85860916 gyf@yahoo.cn 借還明細表 借書證號 圖書編號 借/還 借書日期 還書日期 數(shù)量 工號 29307142 07108667 還 2008-03-28 2008-04-14 1 002016 29307142 99011818 借 2008-04-27 1 002016 36405216 07410802 借 2008-04-27 1 002018 29307142 07410298 借 2008-04-28 1 002018 36405216 00000746 還 2008-04-29 2008-05-09 1 002016 28308208 07410139 借 2008-05-10 1 002019 16406236 07410139 借 2008-05-11 1 002017 圖書類別 類別號 圖書類別 H31 英語 I267 當代作品 TP312 程序語言 TP393 計算機網(wǎng)絡(luò) U66 船舶工程 圖書借閱明細表 圖書編號 圖書名稱 借書證號 借出日期 歸還日期 庫存數(shù) 99011818 文化苦旅 29307142 2008-04-27 14 07410802 航海英語 36405216 2008-04-27 24 07410298 C++程序設(shè)計語言 29307142 2008-04-28 14 07410139 藝海潮音 28308208 2008-05-10 18 07410139 藝海潮音 16406236 2008-05-11 17 工作人員 工號 姓名 性別 出生日期 聯(lián)系電話 E-mail 002016 周學飛 男 1971-05-03 85860715 zxf@163.com 002017 李曉靜 女 1979-09-15 85860716 lj@163.com 002018 顧彬 男 1972-04-25 85860717 gb@yahoo.cn 002019 陳欣 女 1968-11-03 85860718 cx@sina.com.cn 圖書明細表 類別號 圖書編號 圖書名稱 作者 出版社 定價 購進日期 購入數(shù) 復本數(shù) 庫存數(shù) I267 99011818 文化苦旅 余秋雨 知識出版社 16 2000-03-19 8 15 14 TP312 00000476 Delphi高級開發(fā)指南 坎圖 電子工業(yè)出版社 80 2000-03-19 15 15 15 U66 01058589 船舶制造基礎(chǔ) 楊敏 國防工業(yè)出版社 19 2001-07-15 20 20 20 I267 07410139 藝海潮音 李叔 江蘇文藝出版社 19 2007-04-12 15 20 18 TP312 07410298 C++程序設(shè)計 成穎 東南大學出版社 38 2007-05-08 10 15 14 H31 07410802 航海英語 陳宏權(quán) 武漢工業(yè)大學出版社 42 2007-10-20 25 25 24 H31 07108667 大學英語學習輔導 姜麗蓉 北京理工大學出版社 23.5 2008-02-06 25 25 25 TP393 07410810 網(wǎng)絡(luò)工程實用教程 汪新民 北京大學出版社 34.8 2008-08-21 10 15 15 二、實驗準備 數(shù)據(jù)庫管理軟件選擇Microsoft SQL server 2008. 安裝完成后,軟件界面如下。 圖1.1、Microsoft SQL server 2008 三、實驗過程 編寫SQL語句并調(diào)試運行。 1、創(chuàng)建表 首先創(chuàng)建讀者信息表。 create table 讀者信息表 ( 借書證號 int, 姓名 char(10), 性別 char(2), 出生日期 date, 借書量 smallint, 工作單位 char(20), 電話 char(10), Email char(20) ) Go 然后運行 select * from 讀者信息表 語句。結(jié)果如下: 圖2.創(chuàng)建表1 其他表的創(chuàng)建過程與之類似。 創(chuàng)建結(jié)果如下圖: 圖1.3.創(chuàng)建表2 2、 創(chuàng)建和修改約束 為第一個表創(chuàng)建約束: create table 讀者信息表 ( 借書證號 int primary key, --主碼 姓名 char(10) not null, 性別 char(2) default 男, 出生日期 date, 借書量 smallint CHECK (借書量 between 0 and 100), 工作單位 char(20), 電話 char(10), Email char(20) ) 3、 創(chuàng)建索引和視圖 create unique index 圖書索引 on 圖書明細表(圖書編號) drop index 圖書索引 on 圖書明細表; create view 圖書館 as select 工號,姓名,聯(lián)系電話 from 工作人員; 4、 源代碼 drop table 讀者信息表 drop table 借還明細表 drop table 圖書類別 drop table 圖書借閱明細表 drop table 工作人員 drop table 圖書明細表 create table 讀者信息表 ( 借書證號 int primary key, --主碼 姓名 char(10) not null, 性別 char(2) default 男, 出生日期 date, 借書量 smallint CHECK (借書量 between 0 and 100), 工作單位 char(20), 電話 char(10), Email char(20) ) go create table 借還明細表 ( 借書證號 int not null, 圖書編號 char(10), 借還 char(2), 借書日期 date, 還書日期 date, 數(shù)量 smallint, 工號 char(10), ) go create table 圖書類別 ( 類別號 char(8), 圖書類別 char(10), ) go create table 圖書借閱明細表 ( 圖書編號 char(8), 圖書名稱 char(20), 借書證號 int, 借出日期 date, 歸還日期 date, 庫存數(shù) int, --foreign key(借書證號) references 讀者信息表(借書證號), ) go create table 工作人員 ( 工號 int primary key, --主碼 姓名 char(10) not null, 性別 char(2), 出生日期 date, 聯(lián)系電話 char(10), Email char(20) ) go create table 圖書明細表 ( 類別號 char(8), 圖書編號 char(8) primary key, 圖書名稱 char(20), 作者 char(10), 出版社 char(20), 定價 decimal(5,2), 購進日期 date, 購入數(shù) smallint, 復本數(shù) smallint, 庫存數(shù) smallint, ) insert into 讀者信息表 values(29307142,張曉露,女,1989-02-01,2,管理信息系,85860126,zxl@163.com); insert into 讀者信息表 values(36405216,李陽,男 ,1988-12-26, 1, 航海系, 85860729, ly@sina.com.cn); insert into 讀者信息表 values(28308208, 王新全, 男, 1988-04-25, 1, 人文藝術(shù)系, 85860618, wxq@yahoo.cn); insert into 讀者信息表 values(16406236, 張繼剛, 男 ,1989-08-18, 1, 輪機工程系, 85860913, zjg@163.com); insert into 讀者信息表 values(16406247, 顧一帆, 男, 1981-12-30,,輪機工程系, 85860916, gyf@yahoo.cn); go --空的數(shù)據(jù)怎樣插入?? insert into 借還明細表 values(29307142, 07108667, 還, 2008-03-28, 2008-04-14, 1, 002016); insert into 借還明細表 values(29307142, 99011818, 借, 2008-04-27, NULL,1, 002016); insert into 借還明細表 values(36405216, 07410802, 借, 2008-04-27, NULL,1, 002018); insert into 借還明細表 values(29307142, 07410298, 借, 2008-04-28, NULL,1, 002018); insert into 借還明細表 values(36405216, 00000746, 還, 2008-04-29,2008-05-09,1,002016); insert into 借還明細表 values(28308208, 07410139, 借, 2008-05-10, NULL, 1, 002019); insert into 借還明細表 values(16406236, 07410139, 借, 2008-05-11, NULL, 1, 002017); insert into 圖書類別 values(H31,英語); insert into 圖書類別 values(I267,當代作品); insert into 圖書類別 values(TP312,程序語言); insert into 圖書類別 values(TP393,計算機網(wǎng)絡(luò)); insert into 圖書類別 values(U66,船舶工程); insert into 圖書借閱明細表 values(99011818,文化苦旅,29307142,2008-04-27,NULL,14); insert into 圖書借閱明細表 values(07410802, 航海英語, 36405216, 2008-04-27,NULL, 24); insert into 圖書借閱明細表 values(07410298,C++程序設(shè)計語言,29307142, 2008-04-28,NULL, 14); insert into 圖書借閱明細表 values(07410139, 藝海潮音, 28308208, 2008-05-10,NULL, 18); insert into 圖書借閱明細表 values(07410139, 藝海潮音, 16406236, 2008-05-11,NULL, 17); insert into 工作人員 values(002016, 周學飛, 男, 1971-05-03, 85860715, zxf@163.com); insert into 工作人員 values(002017, 李曉靜, 女, 1979-09-15, 85860716, lj@163.com); insert into 工作人員 values(002018, 顧彬, 男, 1972-04-25, 85860717, gb@yahoo.cn); insert into 工作人員 values(002019, 陳欣, 女, 1968-11-03, 85860718, cx@sina.com.cn); insert into 圖書明細表 values(I267, 99011818, 文化苦旅, 余秋雨, 知識出版社, 16, 2000-03-19, 8, 15, 14); insert into 圖書明細表 values(TP312, 00000476, Delphi高級開發(fā)指南,坎圖, 電子工業(yè)出版社,80,2000-03-19,15,15, 15); insert into 圖書明細表 values(U66, 01058589, 船舶制造基礎(chǔ), 楊敏, 國防工業(yè)出版社, 19, 2001-07-15, 20, 20, 20); insert into 圖書明細表 values(I267, 07410139, 藝海潮音, 李叔, 江蘇文藝出版社, 19, 2007-04-12, 15, 20, 18); insert into 圖書明細表 values(TP312, 07410298, C++程序設(shè)計, 成穎, 東南大學出版社, 38, 2007-05-08, 10, 15, 14); insert into 圖書明細表 values(H31, 07410802, 航海英語,陳宏權(quán), 武漢工業(yè)大學出版社, 42, 2007-10-20, 25, 25,24); insert into 圖書明細表 values(H31, 07108667, 大學英語學習輔導, 姜麗蓉,北京理工大學出版社, 23.5,2008-02-06,25,25,25); insert into 圖書明細表 values(TP393, 07410810, 網(wǎng)絡(luò)工程實用教程,汪新民, 北京大學出版社, 34.8,2008-08-21,10,15,15); select * from 讀者信息表 select * from 借還明細表 select * from 圖書類別 select * from 圖書借閱明細表 select * from 工作人員 select * from 圖書明細表 create unique index 圖書索引 on 圖書明細表(圖書編號) drop index 圖書索引 on 圖書明細表; create view 圖書館 as select 工號,姓名,聯(lián)系電話 from 工作人員; 數(shù)據(jù)庫實驗二 【實驗項目二】SQL 語言與視圖 實驗室名稱 實驗室地點 學時 2 實驗類型 驗證性 每組人數(shù) 1 選做或必做 必做 實驗目的 (1)掌握SQL 語言的編寫。(2)掌握視圖的創(chuàng)建。 內(nèi)容提要 使用SQL 語言完成所要求的數(shù)據(jù)查詢與更新,并使用SQL 語言完成視圖的創(chuàng)建。 重點難點 使用SQL 語言完成數(shù)據(jù)的查詢與更新。 主要儀器及耗材 計算機 一、實驗要求 本次實驗共100分,做對一個給4分。以隨機抽查現(xiàn)場做為準 設(shè)如下四個表,先創(chuàng)建表, 插入數(shù)據(jù), 然后做后面的查詢: student (學生信息表) sno sname sex birthday class 108 曾華男09/01/77 95033 105 匡明男10/02/75 95031 107 王麗女01/23/76 95033 101 李軍男02/20/76 95033 109 王芳女02/10/75 95031 103 陸軍男06/03/74 95031 teacher(老師信息表) tno tname sex birthday prof depart 804 李誠男12/02/58 副教授計算機系 856 李旭男03/12/69 講師電子工程系 825 王萍女05/05/72 助教計算機系 831 劉冰女08/14/77 助教電子工程系 course(課程表) cno cname tno 3-105 計算機導論825 3-245 操作系統(tǒng)804 6-166 數(shù)字電路856 9-888 高等數(shù)學825 score(成績表) sno cno degree 103 3-245 86 105 3-245 75 109 3-245 68 103 3-105 92 105 3-105 88 109 3-105 76 101 3-105 64 107 3-105 91 108 3-105 78 101 6-166 85 107 6-166 79 108 6-166 81 請寫出下列查詢語句并給出結(jié)果 1、列出student表中所有記錄的sname、sex和class列。答案 2、顯示教師所有的單位即不重復的depart列。 3、顯示學生表的所有記錄。 4、顯示score表中成績在60到80之間的所有記錄。 5、顯示score表中成績?yōu)?5,86或88的記錄。 6、顯示student表中“95031”班或性別為“女”的同學記錄。 7、以class降序顯示student表的所有記錄。 8、以cno升序、degree降序顯示score表的所有記錄。 9、顯示“98031”班的學生人數(shù)。 10、顯示score表中的最高分的學生學號和課程號。 11、顯示“3-105”號課程的平均分。 12、顯示score表中至少有5名學生選修的并以3開頭的課程號的平均分數(shù)。 13、顯示最低分大于70,最高分小于90 的sno列。 14、顯示所有學生的 sname、 cno和degree列。 15、顯示所有學生的 sname、 cname和degree列。 16、列出“95033”班所選課程的平均分。 17、顯示選修“3-105”課程的成績高于“109”號同學成績的所有同學的記錄。 18、顯示score中選修多門課程的同學中分數(shù)為非最高分成績的記錄。 19、顯示成績高于學號為“109”、課程號為“3-105”的成績的所有記錄。 20、顯示出和學號為“108”的同學同年出生的所有學生的sno、sname和 birthday列。 21、顯示“張旭”老師任課的學生成績。 22、顯示選修某課程的同學人數(shù)多于5人的老師姓名。 23、顯示“95033”班和“95031”班全體學生的記錄。 24、顯示存在有85分以上成績的課程cno。 25、顯示“計算機系”老師所教課程的成績表。 26、顯示“計算機系”和“電子工程系”不同職稱的老師的tname和prof。 27、顯示選修編號為“3-105”課程且成績至少高于“3-245”課程的同學的cno、sno和degree,并按degree從高到低次序排列。 28、顯示選修編號為“3-105”課程且成績高于“3-245”課程的同學的cno、sno和degree。 29、列出所有任課老師的tname和depart。 30、列出所有未講課老師的tname和depart。 31、列出所有老師和同學的 姓名、性別和生日。 *32、檢索所學課程包含學生“103”所學課程的學生學號。 *33、檢索選修所有課程的學生姓名。 2、 實驗過程及結(jié)果 1、創(chuàng)建表 創(chuàng)建過程同實驗一。 創(chuàng)建結(jié)果顯示如下: 圖2.1 創(chuàng)建表 2、查詢語句 1、列出student表中所有記錄的sname、sex和class列。答案 2、顯示教師所有的單位即不重復的depart列。 3、顯示學生表的所有記錄。 4、顯示score表中成績在60到80之間的所有記錄。 1. Select sname, sex, class from student; 2. Select distinct depart from teacher; 3. Select * from student 4. Select * from score where degree between 60 and 80; 圖2.2 查詢4 5、顯示score表中成績?yōu)?5,86或88的記錄。 6、顯示student表中“95031”班或性別為“女”的同學記錄。 7、以class降序顯示student表的所有記錄。 8、以cno升序、degree降序顯示score表的所有記錄。 5. Select * from score where degree in (85, 86, 88); 6. Select * from student where class=95031 or sex=女; 7. Select * from student order by class desc; 8. Select * from score order by cno ASC, degree desc; 圖2.3 查詢8 9、顯示“98031”班的學生人數(shù)。 10、顯示score表中的最高分的學生學號和課程號。 9. Select count(*) from student where class=98031; 10.select sno,cno from score where degree=(select max(degree) from score) 11、顯示“3-105”號課程的平均分。 12、顯示score表中至少有5名學生選修的并以3開頭的課程號的平均分數(shù)。 13、顯示最低分大于70,最高分小于90 的sno列。 11. Select avg(degree) as 平均分 from score where cno=3-105 12. Select cno,avg(degree) from score where cno like 3% Group by cno having count(*) >=5; 13. Select sno from score group by sno Having min(degree)>70 and max(degree)<90; 圖2.4 查詢13 14、顯示所有學生的 sname、 cno和degree列。 15、顯示所有學生的 sname、 cname和degree列。 16、列出“95033”班所選課程的平均分。 17、顯示選修“3-105”課程的成績高于“109”號同學成績的所有同學的記錄。 --連接查詢 14. select sname,cno,degree from score,student where student.sno=score.sno; 15. select sname,cname,degree from score,student,course where student.sno=score.sno and course.cno=score.cno; 16. Select cno,avg(degree) from student , score where student.sno=score.sno and student.class=95033 group by cno; 17.select x.cno, x.sno, x.degree from score x, score y where x.cno=3-105 and x.degree>y.degree and y.sno=109 and y.cno=3-105; 18、顯示score中選修多門課程的同學中分數(shù)為非最高分成績的記錄。 19、顯示成績高于學號為“109”、課程號為“3-105”的成績的所有記錄。 20、顯示出和學號為“108”的同學同年出生的所有學生的sno、sname和 birthday列。 18. Select a.sno, a.degree, a.cno from score a, score b Where a.sno=b.sno and a.degree- 1.請仔細閱讀文檔,確保文檔完整性,對于不預覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 中南 大學 數(shù)據(jù)庫 實驗 報告
鏈接地址:http://m.zhongcaozhi.com.cn/p-6481262.html