MySQL數(shù)據(jù)庫課程設(shè)計

第1章 程序設(shè)計內(nèi)容及要求

1.1 程序設(shè)計題目

(1)創(chuàng)建student_dissertation數(shù)據(jù)庫酒觅,在該數(shù)據(jù)庫中創(chuàng)建4張數(shù)據(jù)表:t_student(學(xué)生表)翩瓜、t_department(專業(yè)表)、t_dissertation(課題表)、t_s_dissertation(選題表),它們表結(jié)構(gòu)設(shè)計如下:

(2)對各表輸入以下數(shù)據(jù):

在這里插入圖片描述

(2)對各表輸入以下數(shù)據(jù):


在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

1.2程序設(shè)計內(nèi)容及要求

(1)為各表設(shè)置主鍵
(2)查詢要求得到所有專業(yè)號為1的男生的學(xué)生信息
(3)查詢得到所有電子系男生的學(xué)生信息
(4)創(chuàng)建視圖,顯示學(xué)生所選課題還未通過審批的信息
(5)創(chuàng)建存儲過程烟勋,通過指定專業(yè),返回該專業(yè)所有學(xué)生的基本信息
(6)創(chuàng)建觸發(fā)器筐付,當(dāng)某課題被刪除時卵惦,選題表中相關(guān)記錄也同時被刪除
(7)建立數(shù)據(jù)庫相關(guān)表之間的參照完整性約束,均設(shè)置為級聯(lián)

1.3程序設(shè)計的目的

《數(shù)據(jù)庫原理及應(yīng)用》課程設(shè)計是非常重要的實踐環(huán)節(jié)之一瓦戚,是學(xué)完《數(shù)據(jù)庫原理及應(yīng)用》課程后的一次全面的綜合練習(xí)沮尿。本課程設(shè)計主要在于鞏固學(xué)生對數(shù)據(jù)庫基本原理和基礎(chǔ)理論得理解,掌握數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計開發(fā)的基本方法伤极,進一步提高學(xué)生綜合運用所學(xué)知識的能力蛹找。
(1)通過本次設(shè)計是了解學(xué)生對數(shù)據(jù)庫?表的創(chuàng)建姨伤,以及插入數(shù)據(jù)?存儲過程等的掌握情況。
(2)掌握對MySQL的基本操作和使用技能庸疾。
(3)復(fù)習(xí)?鞏固本學(xué)期所學(xué)內(nèi)容乍楚。
(4)通過一個實訓(xùn)提高學(xué)生的綜合能力,并讓學(xué)生從中發(fā)現(xiàn)自身存在的問題届慈。

第2章程序?qū)崿F(xiàn)思路

在數(shù)據(jù)庫領(lǐng)域中徒溪,通常情況下都會設(shè)計E-R圖,用來描述現(xiàn)實世界的事物金顿。使用E-R圖每一個實體對應(yīng)一張數(shù)據(jù)表臊泌。
在實體圖中,使用矩形表示實體揍拆,橢圓表示屬性渠概,并且使用無向邊將其與實體連接起來。這樣就可以很明確的看出實體所帶有屬性嫂拴。如下畫出四張表的實體圖:

(1)學(xué)生表E-R圖


在這里插入圖片描述

(2)專業(yè)表E-R圖


在這里插入圖片描述

(3)課題表E-R圖
在這里插入圖片描述

(4)選課表E-R圖


在這里插入圖片描述

同時播揪,一個數(shù)據(jù)庫里的表也不是相互獨立,它們之間存在著一定的聯(lián)系筒狠,如學(xué)生表和專業(yè)表中都存在專業(yè)號這個屬性猪狈。在E-R圖中,可以使用關(guān)系表示實體間的聯(lián)系辩恼。通常使用棱形來表示實體之間的聯(lián)系雇庙。
在這里插入圖片描述

通過表之間的聯(lián)系,我們可以實現(xiàn)多表連接查詢灶伊,通過表之間的關(guān)系疆前,可以由一表中的信息查詢得到另一表中的信息。理清各表之間的關(guān)系之后谁帕,再回顧所學(xué)知識數(shù)據(jù)庫創(chuàng)建語句create database 創(chuàng)建數(shù)據(jù)庫峡继,再通過create table 創(chuàng)建各個表冯袍,之后再完善表里的數(shù)據(jù)匈挖,用insert into values 將數(shù)據(jù)插入表中。這樣一個較完整的數(shù)據(jù)庫就被創(chuàng)建好了康愤。
然后儡循,在由創(chuàng)建好的數(shù)據(jù)表實現(xiàn)對數(shù)據(jù)的查詢,如提供學(xué)生的一個屬性信息征冷,可以查詢該學(xué)生的所有信息择膝。同時,根據(jù)題目要求检激,需要創(chuàng)建相應(yīng)的視圖?存儲過程?觸發(fā)器等肴捉。視圖作用類似于篩選腹侣;觸發(fā)器相當(dāng)于給事件發(fā)生的前或后裝一個觸發(fā)裝置;創(chuàng)建存儲過程可以減少數(shù)據(jù)端和服務(wù)端的數(shù)據(jù)傳輸齿穗。
根據(jù)所學(xué)知識傲隶,通過create view語句創(chuàng)建視圖,通過create procedure語句來完成存儲過程的創(chuàng)建窃页,通過create trigger來創(chuàng)建觸發(fā)器跺株。

第3章 程序清單或正文

1.創(chuàng)建數(shù)據(jù)庫
create database student_dissertation;
在這里插入圖片描述
2.創(chuàng)建t_student表
mysql> create table t_student(
    -> studentid char(20) not null,#學(xué)生學(xué)號
    -> studentname char(8) null,#姓名
    -> studentsex char(2) null,#性別
    -> departmentid int(8) null,#專業(yè)號
    -> studentphone char(30) null,#電話
    -> password char(20) null,#密碼
    -> primary key(studentid)
-> );
在這里插入圖片描述
3.創(chuàng)建t_department表
mysql> create table t_department(
    -> departmentid int(8) not null primary key,#專業(yè)號
    -> departmentname char(50) null,#專業(yè)名稱
    -> manager char(8) null #主任名
    -> );
在這里插入圖片描述
4.創(chuàng)建t_dissertation表
mysql> create table t_dissertation(
    -> dissertationid char(20) not null primary key,#課題號
    -> dissertationname char(30) null,#課題名稱
    -> attachment char(30) null,#附件說明
    -> teachername char(8) null #指導(dǎo)教師名
    -> );
在這里插入圖片描述
5.創(chuàng)建t_s_dissertation表
mysql> create table t_s_dissertation(
    -> studentid char(20) not null,
    -> dissertationid char(20) not null,
    -> introduction text null,
    -> sendtime datetime null,
    -> state char(10) null,
    -> primary key(studentid,dissertationid)
    -> );
在這里插入圖片描述
6.給表t_department輸入數(shù)據(jù)
mysql> insert into t_department values
(1,'電子系','楊明'),
(2,'計算機系','李長山'),
(3,'自動化系','顧林');
在這里插入圖片描述
7.給表t_student輸入數(shù)據(jù)
mysql> insert into t_student values
    -> ('1000','朱群','男',1,'13759778212','123456'),
    -> ('1001','王小川','男',1,'13576543233','778899'),
    -> ('1002','秦悅','女',2,'13767885731','456123'),
    -> ('1003','陳小飛','男',3,'13755897651','369874'),
    -> ('1004','胡小麗','女',3,'13567334622','147896'),
    -> ('1005','張維','女',1,'13854673392','458972'),
    -> ('1006','李勇','男',1,'13787416711','147896'),
    -> ('1007','羅青','女',1,'13887914751','146697');
在這里插入圖片描述

在這里插入圖片描述
8.給表t_dissertation 輸入數(shù)據(jù)
mysql> insert into t_dissertation values
    -> ('Z001','基于CRC技術(shù)的無線通信模塊','資助','沈方'),
    -> ('Z002','基于ARM的室內(nèi)環(huán)境無線監(jiān)測系統(tǒng)','資助','羅青'),
    -> ('D001','基于51單片機的GPS定位儀','資助','郭海'),
    -> ('J001','基于B/S構(gòu)架的數(shù)字圖書館','資助','趙萍'),
    -> ('J002','聽力訓(xùn)練播放器','非資助','王海');
在這里插入圖片描述
9.給表t_s_dissertation 輸入數(shù)據(jù)
mysql> insert into t_s_dissertation values
    -> ('1000','Z001','電子類','2009.10.20','待審批'),
    -> ('1001','Z002','電子類','2008.8.5','通過'),
    -> ('1002','J001','計算機類','2009.9.28','待審批'),
    -> ('1003','D001','電子,自動化類','2009.9.26','待審批'),
    -> ('1001','D001','電子脖卖,自動化類','2009.10.6','待審批'),
    -> ('1002','J002','計算機類','2008.7.24','通過');
在這里插入圖片描述

在這里插入圖片描述
10.查詢要求得到所有專業(yè)號為1的男生的學(xué)生信息
mysql> select *from t_student where departmentid=1;
在這里插入圖片描述
11.查詢得到所有電子系男生的學(xué)生信息
select * from t_student where departmentid=1 and studentsex='男';
在這里插入圖片描述
12.創(chuàng)建視圖乒省,顯示學(xué)生所選課題還未通過審批的信息
mysql> create view v_nopass(studentid,dissertation,introduction,sendtime,state) as select * from t_s_dissertation where state='待審批
在這里插入圖片描述
13.創(chuàng)建存儲過程,通過指定專業(yè)畦木,返回該專業(yè)所有學(xué)生的基本信息
mysql> delimiter //
mysql> create procedure p_department (in name char(50))
    -> begin
    -> select studentid,studentname,studentsex,studentphone,password from t_student where
    -> departmentid in(select departmentid from t_department where departmentname=name);
    ->  end 
 ->//
在這里插入圖片描述
14.創(chuàng)建觸發(fā)器袖扛,當(dāng)某課題被刪除時,選題表中相關(guān)記錄也同時被刪除
mysql> delimiter //
mysql> create trigger tr_drop after delete
    -> on t_dissertation for each row
    -> begin
    -> delete from t_s_dissertation where t_s_dissertation.dissertationid=old.dissertationid;
    -> end
-> //
在這里插入圖片描述
15.建立數(shù)據(jù)庫相關(guān)表之間的參照完整性約束十籍,均設(shè)置為級聯(lián)
AFTER TABLE t_student ADD FOREIGN KEY(departmentid) REFERENCES t_department(departmentid) on delete cascade on update cascade;
在這里插入圖片描述
alter table t_s_dissertation add foreign key(studentid) references t_student(studentid) on delete cascade on update cascade;
在這里插入圖片描述
alter table t_s_dissertation add foreign key(dissertationid) references t_dissertation(dissertationid) on delete cascade on update cascade;
在這里插入圖片描述

第3章 課程設(shè)計心得

回顧起此課程設(shè)計攻锰,至今我仍感慨頗多,從理論到實踐妓雾,在這段日子里娶吞,可以說得是苦多于甜,但是可以學(xué)到很多很多的東西械姻,同時不僅可以鞏固了以前所學(xué)過的知識妒蛇,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的楷拳。主要收獲由以下幾點:
(1)回顧了這個學(xué)期以來所學(xué)的知識绣夺,發(fā)現(xiàn)了自身的不足和存在的問題。
(2)這是第一次完整的完成整個數(shù)據(jù)庫的創(chuàng)建欢揖,懂得我們不僅要掌握理論知識陶耍,還更加應(yīng)該鍛煉自己的操作能力,才能更好的學(xué)以致用她混。
(3)在這次難得的課程設(shè)計過程中我鍛煉了自己的思考能力和動手能力烈钞。通過題目選擇和設(shè)計電路的過程中,加強了我思考問題的完整性和實際生活聯(lián)系的可行性坤按。
(4)同時毯欣,培養(yǎng)了在實踐過程中遇到問題后,應(yīng)該尋找解決的辦法的習(xí)慣臭脓,如借助網(wǎng)絡(luò)或與同學(xué)交流等酗钞。
(5)通過這次實訓(xùn),讓我更能體會到數(shù)據(jù)庫的強大與奇妙,以及功能的多樣性砚作。
在這次實訓(xùn)中窘奏,不僅收獲了很多,同時也發(fā)現(xiàn)了自身存在的不足葫录,需要改進的地方:
(1)對知識掌握的還不夠牢固蔼夜,上機操作能力還有待于提高。
(2)對數(shù)據(jù)庫的認(rèn)識僅局限于書本压昼,而沒有通過實際生活中去理解求冷。
(3)對于一些查詢語句不夠熟悉,導(dǎo)致花費的時間較長
(4)對數(shù)據(jù)庫得存儲過程理解還不夠深入
(5)今后應(yīng)該多查詢資料窍霞,把所存在得問題尋找原因并改正匠题,學(xué)會學(xué)以致用。
(6)平時對遇到的問題沒及時解決但金,導(dǎo)致問題一直存在韭山。

第5章 參考文獻

[1] 陳林琳,蔣麗麗冷溃,解二虎主編.SQL Server 2008數(shù)據(jù)庫設(shè)計教程. 江蘇大學(xué)出版社钱磅,2016年8月
[2]任進軍,林海霞 主編 MySQL 數(shù)據(jù)庫管理與開發(fā) 人民郵電出版社 2017年6月
[3]百度知道:https://www.unjs.com/fanwenwang/ziliao/590237.html
[4]百度百科:
http://www.360doc.com/content/16/1011/21/15549660_597691151.shtml
[5]百度知道:https://bbs.csdn.net/topics/390822588

致謝

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末似枕,一起剝皮案震驚了整個濱河市盖淡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凿歼,老刑警劉巖褪迟,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異答憔,居然都是意外死亡味赃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門虐拓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來心俗,“玉大人,你說我怎么就攤上這事蓉驹〕情唬” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵戒幔,是天一觀的道長吠谢。 經(jīng)常有香客問我土童,道長诗茎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮敢订,結(jié)果婚禮上王污,老公的妹妹穿的比我還像新娘。我一直安慰自己楚午,他們只是感情好昭齐,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著矾柜,像睡著了一般阱驾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怪蔑,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天里覆,我揣著相機與錄音,去河邊找鬼缆瓣。 笑死喧枷,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的弓坞。 我是一名探鬼主播隧甚,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼渡冻!你這毒婦竟也來了戚扳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤族吻,失蹤者是張志新(化名)和其女友劉穎咖城,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呼奢,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡宜雀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了握础。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辐董。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖禀综,靈堂內(nèi)的尸體忽然破棺而出简烘,到底是詐尸還是另有隱情,我是刑警寧澤定枷,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布孤澎,位于F島的核電站,受9級特大地震影響欠窒,放射性物質(zhì)發(fā)生泄漏覆旭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望型将。 院中可真熱鬧寂祥,春花似錦、人聲如沸七兜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腕铸。三九已至惜犀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間狠裹,已是汗流浹背向拆。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留酪耳,地道東北人浓恳。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像碗暗,于是被迫代替她去往敵國和親颈将。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容