版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《數(shù)據(jù)庫(kù)類課程設(shè)計(jì)》</p><p><b> 系統(tǒng)開(kāi)發(fā)報(bào)告</b></p><p> 學(xué) 號(hào): </p><p> 姓 名: </p><p> 題 目: 圖書(shū)借閱管理
2、 </p><p> 指導(dǎo)教師: </p><p> 提交時(shí)間: 2013年6月1日 </p><p><b> 計(jì)算機(jī)科學(xué)與應(yīng)用系</b></p><p><b> 目 錄</b></p><p&g
3、t; 第一章 需求分析1</p><p> 第二章 系統(tǒng)功能設(shè)計(jì)2</p><p> 2.1系統(tǒng)功能模塊圖</p><p> 第三章 數(shù)據(jù)庫(kù)設(shè)計(jì)3</p><p> 3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)3</p><p> 3.2數(shù)據(jù)表設(shè)計(jì)5</p><p> 3.3 數(shù)據(jù)庫(kù)編程7&l
4、t;/p><p> 第四章 功能模塊的創(chuàng)建8</p><p> 4.1創(chuàng)建向讀者表插入數(shù)據(jù)的存儲(chǔ)過(guò)程8</p><p> 4.2創(chuàng)建向圖書(shū)表中插入數(shù)據(jù)的存儲(chǔ)過(guò)程9</p><p> 4.3創(chuàng)建實(shí)現(xiàn)還書(shū)的存儲(chǔ)過(guò)程10</p><p> 4.4創(chuàng)建實(shí)現(xiàn)借書(shū)的存儲(chǔ)過(guò)程11</p><p&
5、gt; 4.5建立是否超期表值函數(shù)13</p><p> 4.6查詢模塊14</p><p><b> 結(jié)束語(yǔ)18</b></p><p><b> 參考文獻(xiàn)19</b></p><p><b> 第一章 需求分析</b></p><p&g
6、t; 系統(tǒng)功能分析階段的任務(wù)就是確定該系統(tǒng)要解決的問(wèn)題及其具體要求。需要通過(guò)與用戶的交流和溝通明確對(duì)系統(tǒng)的功能要求,最終列出系統(tǒng)可以實(shí)現(xiàn)的功能由用戶確認(rèn)。</p><p><b> 1.總體方案</b></p><p> (1) 圖書(shū)資料的管理</p><p> 圖書(shū)管理員將采購(gòu)的圖書(shū)入庫(kù)分類處理,同時(shí)建立相關(guān)的圖書(shū)資料信息,如果該書(shū)已
7、有,則修改現(xiàn)有書(shū)本等于原有書(shū)本數(shù)加上新增書(shū)本數(shù)。如果圖書(shū)損壞也修改圖書(shū)資料信息。如果圖書(shū)出館,則刪除相關(guān)的圖書(shū)資料信息。</p><p> (2) 讀者資料管理</p><p> 系統(tǒng)管理員要為讀者辦理相應(yīng)的圖書(shū)證,讀者填寫(xiě)登記表包括學(xué)號(hào)、姓名、性別基本信息。讀者申請(qǐng)退證時(shí),可以刪除改讀者的基本信息。</p><p><b> (3) 借書(shū)操作<
8、;/b></p><p> 讀者把借閱證和想借閱的圖書(shū)交給圖書(shū)管理員,管理員進(jìn)行審核。如該讀者是否有過(guò)期未還的圖書(shū),是否借閱圖書(shū)已經(jīng)超過(guò)五本,有上述情況之一則借閱不成功。否則借閱成功。讀者只可在該本書(shū)尚未超期的情況下才可以進(jìn)行續(xù)借,否則借閱不成功。</p><p><b> (4) 還書(shū)操作</b></p><p> 讀者把借閱證及
9、要還的圖書(shū)交給圖書(shū)管理員,由他進(jìn)行審核,如該圖書(shū)有逾期則通知該讀者交罰款。否則,圖書(shū)交由圖書(shū)管理員放回書(shū)庫(kù),并修改圖書(shū),讀者借書(shū)信息表。</p><p> 第二章 系統(tǒng)功能設(shè)計(jì)</p><p> 通過(guò)通過(guò)對(duì)上述各項(xiàng)功能的分析、分類、綜合,按照模塊化程序設(shè)計(jì)的要求,得到如下圖所示的功能模塊圖。</p><p> 圖 2-1系統(tǒng)功能模塊圖</p>&
10、lt;p><b> 第三章 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 數(shù)據(jù)庫(kù)在一個(gè)管理信息系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫(kù)結(jié)構(gòu)的好壞將直接影響到應(yīng)用系統(tǒng)操作效率已經(jīng)能否保證數(shù)據(jù)的一致性、完成性和安全性。</p><p><b> 3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 根據(jù)圖書(shū)管理系統(tǒng)的功能要求,通過(guò)分析系
11、統(tǒng)要設(shè)計(jì)的相關(guān)實(shí)體一集要收集、存儲(chǔ)和操縱數(shù)據(jù)信息,得到如下圖1234所示的系統(tǒng)E-R圖。</p><p> 根據(jù)系統(tǒng)E-R圖得到以下關(guān)系模式。</p><p> ·讀者基本信息(讀者號(hào),姓名,性別,借書(shū)數(shù)量)</p><p> ·圖書(shū)基本信息(圖書(shū)號(hào),書(shū)名,類型,作者,譯者,出版社,內(nèi)容,館藏?cái)?shù),已借數(shù))</p><p&
12、gt; ·還書(shū)基本信息(讀者號(hào),書(shū)號(hào),還書(shū)數(shù)量,還書(shū)日期)</p><p> ·借書(shū)基本信息(讀者號(hào),書(shū)號(hào),書(shū)名,借書(shū)數(shù)量,借書(shū)時(shí)間,應(yīng)還時(shí)間)</p><p> 圖1 3-1 讀者E-R圖</p><p> 圖2 3-1圖書(shū) E-R圖</p><p> 圖3 3-1 還書(shū)E-R圖</p><
13、p> 圖4 3-1 借書(shū)E-R圖</p><p><b> 3.2數(shù)據(jù)表設(shè)計(jì)</b></p><p> 根據(jù)關(guān)系模式,確定要建立的數(shù)據(jù)庫(kù)和表。給表中添加說(shuō)明,并建立主鍵和外鍵如下圖5678所示:</p><p><b> “讀者”表</b></p><p><b> 圖5
14、“讀者”表</b></p><p><b> “圖書(shū)”表:</b></p><p><b> 圖 6“圖書(shū)”表</b></p><p><b> “還書(shū)”表</b></p><p><b> 圖 7“還書(shū)”表</b></p>
15、<p><b> “借書(shū)”表:</b></p><p><b> 圖 8“借書(shū)”表</b></p><p> 然后給圖書(shū)表中添加數(shù)據(jù):</p><p> /*向圖書(shū)表中插入數(shù)據(jù)*/</p><p> USE bookmg</p><p><b&g
16、t; GO</b></p><p><b> INSERT 圖書(shū)</b></p><p> VALUES ('540541903','子不語(yǔ)壹','漫畫(huà)','夏達(dá)','NULL','新世紀(jì)出版社','NULL','18.00'
17、;,'6',’0’)</p><p><b> GO</b></p><p><b> INSERT 圖書(shū)</b></p><p> VALUES ('540541904','子不語(yǔ)貳','漫畫(huà)','夏達(dá)','NULL',
18、'新世紀(jì)出版社','NULL','18.00','6',’0’)</p><p><b> GO</b></p><p><b> INSERT 圖書(shū)</b></p><p> VALUES ('540541905','子不語(yǔ)叁&
19、#39;,'漫畫(huà)','夏達(dá)','NULL','新世紀(jì)出版社','NULL','18.00','6',’0’)</p><p><b> GO</b></p><p><b> INSERT 圖書(shū)</b></p><
20、;p> VALUES ('540541906','子不語(yǔ)肆','漫畫(huà)','夏達(dá)','NULL','新世紀(jì)出版社','NULL','18.00','6',’0’)</p><p><b> GO</b></p><p>
21、;<b> INSERT 圖書(shū)</b></p><p> VALUES ('540541907','子不語(yǔ)伍','漫畫(huà)','夏達(dá)','NULL','新世紀(jì)出版社','NULL','18.00','6',’0’)</p><p&
22、gt;<b> GO</b></p><p><b> INSERT 圖書(shū)</b></p><p> VALUES ('540541908','子不語(yǔ)陸','漫畫(huà)','夏達(dá)','NULL','新世紀(jì)出版社','NULL','
23、;18.00','6',’0’)</p><p> 3.3 數(shù)據(jù)庫(kù)編程 </p><p> 以下是各個(gè)表的創(chuàng)建代碼:</p><p> /************創(chuàng)建各個(gè)表*************************/</p><p> CREATE TABLE 讀者</p><p&g
24、t;<b> (</b></p><p> readerid varchar(9) NOT NULL PRIMARY KEY,</p><p> readername varchar(20) NOT NULL,</p><p> readersex varchar(10) NOT NULL,</p><p>
25、booknum SMALLINT CHECK(borrownum>=0 AND borrownum<=5)</p><p><b> )</b></p><p> CREATE TABLE 圖書(shū)</p><p><b> (</b></p><p> bookid varchar
26、(9) NOT NULL PRIMARY KEY,</p><p> bookname varchar(40)NOT NULL,</p><p> booktype varchar(20)NOT NULL,</p><p> bookauther varchar(20) NOT NULL,</p><p> booktrslator
27、varchar(20) NULL,</p><p> bookpress varchar(20)NOT NULL,</p><p> bookcontent varchar(50)NULL,</p><p> bookprice varchar(10)NOT NULL,</p><p> noborrow SMALLINT CHECK
28、(noborrow>=0),</p><p> haveborrow SMALLINT CHECK(haveborrow>=0)</p><p><b> )</b></p><p> CREATE TABLE 還書(shū)</p><p><b> (</b></p>&
29、lt;p> readerid varchar(9) NOT NULL,</p><p> bookid varchar(9) NOT NULL,</p><p> booknum SMALLINT CHECK(booknum>=0 AND booknum<=5),</p><p> inputdate datetime ,</p>
30、;<p> FOREIGN KEY (readerid) REFERENCES 讀者(readerid),</p><p> FOREIGN KEY (bookid) REFERENCES 圖書(shū)(bookid)</p><p><b> )</b></p><p> CREATE TABLE 借書(shū)</p>&
31、lt;p><b> (</b></p><p> readerid varchar(9) NOT NULL,</p><p> bookid varchar(9) NOT NULL,</p><p> bookname varchar(40) NOT NULL,</p><p> booknum SMAL
32、LINT CHECK(booknum>=0 AND booknum<=5),</p><p> outputdate datetime NULL,</p><p> shoulddate datetime NULL,</p><p> FOREIGN KEY(readerid) REFERENCES 讀者(readerid),</p>
33、<p> FOREIGN KEY(bookid) REFERENCES 圖書(shū)(bookid)</p><p><b> )</b></p><p> 第四章 功能模塊的創(chuàng)建</p><p> 4.1 創(chuàng)建向讀者表插入數(shù)據(jù)的存儲(chǔ)過(guò)程</p><p> /*******創(chuàng)建存儲(chǔ)過(guò)程向讀者表中插入數(shù)據(jù)
34、************/</p><p> USE bookmg</p><p><b> GO </b></p><p> CREATE PROCEDURE reader_insert</p><p> @elem1 varchar(9),</p><p> @elem2 varch
35、ar(20),</p><p> @elem3 varchar(10),</p><p> @elem4 smallint</p><p><b> AS</b></p><p><b> BEGIN </b></p><p> insert into 讀者(rea
36、derid,readername,readersex,borrownum)</p><p><b> values </b></p><p><b> (</b></p><p> @elem1,@elem2,@elem3,@elem4</p><p><b> )</b&g
37、t;</p><p><b> END</b></p><p> /********讀者表中插入實(shí)例**********/</p><p> USE bookmg</p><p><b> GO</b></p><p> EXEC reader_insert
38、9;111007131','吳書(shū)敏','男','0'</p><p> 圖9讀者表中插入實(shí)例</p><p> 4.2 創(chuàng)建向圖書(shū)表中插入數(shù)據(jù)的存儲(chǔ)過(guò)程</p><p> /***************通過(guò)存儲(chǔ)過(guò)程向圖書(shū)表中插入數(shù)據(jù)******************/</p><p
39、> USE bookmg</p><p><b> GO </b></p><p> CREATE PROCEDURE book_insert</p><p> @elem1 varchar(9),</p><p> @elem2 varchar(40),</p><p> @e
40、lem3 varchar(20),</p><p> @elem4 varchar(20),</p><p> @elem5 varchar(20),</p><p> @elem6 varchar(20),</p><p> @elem7 varchar(50),</p><p> @elem8 varch
41、ar(10),</p><p> @elem9 smallint,</p><p> @elem10 smallint</p><p><b> AS</b></p><p><b> BEGIN </b></p><p> insert into 圖書(shū)(booki
42、d,bookname,booktype,bookauther,booktrslator,bookpress,</p><p> bookcontent,bookprice,noborrow,haveborrow)</p><p><b> values </b></p><p><b> (</b></p>
43、;<p> @elem1,@elem2,@elem3,@elem4,@elem5,@elem6,@elem7,@elem8,@elem9,@elem10</p><p><b> )</b></p><p><b> END</b></p><p> 4.3 創(chuàng)建實(shí)現(xiàn)還書(shū)的存儲(chǔ)過(guò)程</p>
44、<p> /********************************創(chuàng)建還書(shū)存儲(chǔ)*******************************/</p><p> USE bookmg</p><p><b> GO</b></p><p> CREATE PROCEDURE return_insert</p
45、><p> @elem1 varchar(9),</p><p> @elem2 varchar(9),</p><p> @elem3 smallint</p><p><b> AS</b></p><p> INSERT INTO 還書(shū)(readerid,bookid,booknum)
46、</p><p><b> values </b></p><p><b> (</b></p><p><b> @elem1,</b></p><p><b> @elem2,</b></p><p><b>
47、 @elem3</b></p><p><b> )</b></p><p><b> BEGIN</b></p><p><b> UPDATE 還書(shū)</b></p><p> SET inputdate=GETDATE()</p><
48、;p> WHERE readerid=@elem1;</p><p><b> UPDATE 圖書(shū)</b></p><p> SET noborrow=noborrow+@elem3</p><p> WHERE bookid=@elem2;</p><p><b> UPDATE 圖書(shū)<
49、/b></p><p> SET haveborrow=haveborrow-@elem3</p><p> WHERE bookid=@elem2;</p><p><b> UPDATE 讀者</b></p><p> SET borrownum=borrownum-@elem3</p>
50、<p> SELECT '還書(shū)成功'</p><p><b> END</b></p><p><b> GO</b></p><p> /***********還書(shū)實(shí)例*************/</p><p> USE bookmg</p>&
51、lt;p><b> GO</b></p><p> EXEC return_insert '111007131','540541903',1</p><p><b> GO</b></p><p><b> 圖 10還書(shū)實(shí)例</b></p>
52、<p> 4.4 創(chuàng)建實(shí)現(xiàn)借書(shū)的存儲(chǔ)過(guò)程</p><p> /**************************創(chuàng)建借書(shū)存儲(chǔ)*****************/</p><p> USE bookmg</p><p><b> GO</b></p><p> CREATE PROCEDURE bo
53、rrow_insert</p><p> @elem1 varchar(9),</p><p> @elem2 varchar(9),</p><p> @elem3 smallint</p><p><b> AS</b></p><p> insert into 借書(shū)</p&g
54、t;<p><b> (</b></p><p> readerid,bookid,booknum</p><p><b> )</b></p><p><b> values</b></p><p><b> (</b></
55、p><p><b> @elem1,</b></p><p><b> @elem2,</b></p><p><b> @elem3</b></p><p><b> )</b></p><p><b> BEGI
56、N</b></p><p> /*這里用了判定是否超期函數(shù)judgedate,將返回值賦予判斷變量judgement*/</p><p> DECLARE @judgement int</p><p> SET @judgement=</p><p> (SELECT max(overdays)</p>&l
57、t;p> FROM judgedate(@elem1)) </p><p> /*判定該讀者是否有圖書(shū)超期*/</p><p> IF (@judgement<=0)</p><p><b> BEGIN</b></p><p> SELECT '借書(shū)成功'</p>&
58、lt;p><b> UPDATE 借書(shū)</b></p><p> SET outputdate=GETDATE()</p><p> WHERE readerid=@elem1 AND bookid=@elem2;</p><p><b> UPDATE 借書(shū)</b></p><p>
59、 SET shoulddate=DATEADD(day,30,getdate())</p><p> WHERE readerid=@elem1 AND bookid=@elem2;</p><p> /*聲明一個(gè)變量bookname從圖書(shū)表里讀取圖書(shū)名到借書(shū)表里*/</p><p> DECLARE @bookname varchar(40)</p&
60、gt;<p> SET @bookname=(SELECT bookname FROM 圖書(shū)</p><p> WHERE bookid=@elem2</p><p><b> )</b></p><p><b> UPDATE 借書(shū)</b></p><p> SET boo
61、kname=@bookname</p><p> WHERE readerid=@elem1 AND bookid=@elem2;</p><p><b> UPDATE 圖書(shū)</b></p><p> SET noborrow=noborrow-@elem3</p><p> WHERE bookid=@ele
62、m2;</p><p><b> UPDATE 圖書(shū)</b></p><p> SET haveborrow=haveborrow+@elem3</p><p> WHERE bookid=@elem2;</p><p><b> UPDATE 讀者</b></p><p
63、> SET borrownum=borrownum+@elem3</p><p> WHERE readerid=@elem1;</p><p><b> END</b></p><p><b> ELSE</b></p><p><b> BEGIN</b>&
64、lt;/p><p> SELECT '借書(shū)失敗,有超期未還圖書(shū)'</p><p><b> END</b></p><p><b> END</b></p><p><b> /*借書(shū)實(shí)例*/</b></p><p> USE bo
65、okmg</p><p><b> GO</b></p><p> EXEC borrow_insert '111007131','540541903',2</p><p><b> GO</b></p><p><b> 圖11借書(shū)實(shí)例</
66、b></p><p> 4.5 建立是否超期表值函數(shù)</p><p> USE bookmg</p><p><b> GO</b></p><p> CREATE FUNCTION judgedate(@elem1 as varchar(9))</p><p> RETURNS
67、@overdate TABLE</p><p><b> (</b></p><p> overdays int</p><p><b> )</b></p><p><b> AS</b></p><p><b> BEGIN<
68、;/b></p><p> INSERT @overdate</p><p> SELECT day(GETDATE()-ISNULL(shoulddate,0))</p><p><b> FROM 借書(shū)</b></p><p> WHERE readerid=@elem1</p><
69、p><b> RETURN</b></p><p><b> END</b></p><p><b> 4.6查詢模塊</b></p><p> /*****************圖書(shū)分類查詢和分類統(tǒng)計(jì)**************/</p><p> USE
70、bookmg</p><p><b> GO</b></p><p> CREATE PROCEDURE type_select</p><p> @booktype varchar(20)</p><p><b> AS</b></p><p><b>
71、 BEGIN</b></p><p> SELECT booktype</p><p><b> FROM 圖書(shū)</b></p><p> WHERE booktype=@booktype;</p><p> DECLARE @booknum int</p><p> SET
72、 @booknum=(</p><p> select sum(noborrow+haveborrow)</p><p><b> FROM 圖書(shū)</b></p><p> WHERE booktype=@booktype</p><p><b> )</b></p><
73、p> SELECT @booktype AS '類型' ,@booknum AS '本' </p><p><b> END</b></p><p> /****圖書(shū)分類查詢實(shí)例*********/</p><p> USE bookmg</p><p><b>
74、 GO</b></p><p> EXEC type_select '漫畫(huà)' </p><p><b> GO</b></p><p> 圖12圖書(shū)分類查詢實(shí)例</p><p> /*******************圖書(shū)按書(shū)名查詢和統(tǒng)計(jì)******************/<
75、;/p><p> USE bookmg</p><p><b> GO</b></p><p> CREATE PROCEDURE bookname_select</p><p> @bookname varchar(40)</p><p><b> AS</b><
76、;/p><p><b> BEGIN</b></p><p><b> SELECT *</b></p><p><b> FROM 圖書(shū)</b></p><p> WHERE bookname=@bookname;</p><p> DECLAR
77、E @booknum int</p><p> SET @booknum=(</p><p> select sum(noborrow+haveborrow)</p><p><b> FROM 圖書(shū)</b></p><p> WHERE bookname=@bookname</p><p&g
78、t;<b> )</b></p><p> SELECT @bookname AS '書(shū)名' ,@booknum AS '本' </p><p><b> END</b></p><p> /****圖書(shū)書(shū)名查詢實(shí)例*********/</p><p> U
79、SE bookmg</p><p><b> GO</b></p><p> EXEC bookname_select '子不語(yǔ)壹' </p><p><b> GO</b></p><p> 圖13圖書(shū)書(shū)名查詢實(shí)例</p><p> /*****
80、*****************按作者查詢和統(tǒng)計(jì)**************************/</p><p> USE bookmg</p><p><b> GO</b></p><p> CREATE PROCEDURE bookauthor_select</p><p> @bookauthor
81、 varchar(20)</p><p><b> AS</b></p><p><b> BEGIN</b></p><p><b> SELECT *</b></p><p><b> FROM 圖書(shū)</b></p><p&
82、gt; WHERE bookauthor=@bookauthor;</p><p> DECLARE @booknum int</p><p> SET @booknum=(</p><p> select sum(noborrow+haveborrow)</p><p><b> FROM 圖書(shū)</b><
83、;/p><p> WHERE bookauthor=@bookauthor</p><p><b> )</b></p><p> SELECT @bookauthor AS '作者' ,@booknum AS '本' </p><p><b> END</b>&
84、lt;/p><p> /***圖書(shū)作者查詢實(shí)例******/</p><p> USE bookmg</p><p><b> GO</b></p><p> EXEC bookauthor_select '夏達(dá)'</p><p><b> GO</b&g
85、t;</p><p> 圖 14圖書(shū)作者查詢實(shí)例</p><p><b> 結(jié)束語(yǔ) </b></p><p> 當(dāng)初選課的時(shí)候選圖書(shū)管理,目的就是更好的理解、學(xué)習(xí)和使用好SQL 語(yǔ)言,所以我決定只做后臺(tái),這樣能更好得理解和應(yīng)用。通過(guò)一個(gè)月的努力,我自主完成了課題要求的所有功能。覺(jué)得收獲很大。很多知識(shí),老師并沒(méi)有講過(guò),甚至使用的教材里也沒(méi)有
86、提到。但是在實(shí)踐操作中,必須要用到的時(shí)候,自己就會(huì)去查去學(xué),這就是所謂的實(shí)戰(zhàn)吧。通過(guò),本次課程設(shè)計(jì)我收獲很大,認(rèn)識(shí)到當(dāng)遇到困難的時(shí)候要多和人溝通,并且要冷靜得去思考去分析問(wèn)題出在哪了,怎樣才能解決??傊?,我會(huì)吸取此次的經(jīng)驗(yàn)并且在以后不滿足所學(xué)的局限知識(shí)還要推陳創(chuàng)新,一步一步獲得更大的收獲。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 數(shù)據(jù)
87、庫(kù)原理和技術(shù)(SQL Server 2005)申事凱 戴祖誠(chéng) 余玉梅 主編</p><p> [2] 王珊,薩師煊 數(shù)據(jù)庫(kù)系統(tǒng)概論[第四版] 高等教育出版社</p><p><b> 附錄:</b></p><p> ?。ǜ缴详P(guān)鍵的源程序,5-10頁(yè))</p><p> /************創(chuàng)建各個(gè)表****
88、*********************/</p><p> CREATE TABLE 讀者</p><p><b> (</b></p><p> readerid varchar(9) NOT NULL PRIMARY KEY,</p><p> readername varchar(20) NOT NUL
89、L,</p><p> readersex varchar(10) NOT NULL,</p><p> booknum SMALLINT CHECK(borrownum>=0 AND borrownum<=5)</p><p><b> )</b></p><p> CREATE TABLE 圖書(shū)&
90、lt;/p><p><b> (</b></p><p> bookid varchar(9) NOT NULL PRIMARY KEY,</p><p> bookname varchar(40)NOT NULL,</p><p> booktype varchar(20)NOT NULL,</p>
91、<p> bookauther varchar(20) NOT NULL,</p><p> booktrslator varchar(20) NULL,</p><p> bookpress varchar(20)NOT NULL,</p><p> bookcontent varchar(50)NULL,</p><p>
92、; bookprice varchar(10)NOT NULL,</p><p> noborrow SMALLINT CHECK(noborrow>=0),</p><p> haveborrow SMALLINT CHECK(haveborrow>=0)</p><p><b> )</b></p><
93、;p> CREATE TABLE 還書(shū)</p><p><b> (</b></p><p> readerid varchar(9) NOT NULL,</p><p> bookid varchar(9) NOT NULL,</p><p> booknum SMALLINT CHECK(booknu
94、m>=0 AND booknum<=5),</p><p> inputdate datetime ,</p><p> FOREIGN KEY (readerid) REFERENCES 讀者(readerid),</p><p> FOREIGN KEY (bookid) REFERENCES 圖書(shū)(bookid)</p><
95、;p><b> )</b></p><p> CREATE TABLE 借書(shū)</p><p><b> (</b></p><p> readerid varchar(9) NOT NULL,</p><p> bookid varchar(9) NOT NULL,</p>
96、;<p> bookname varchar(40) NOT NULL,</p><p> booknum SMALLINT CHECK(booknum>=0 AND booknum<=5),</p><p> outputdate datetime NULL,</p><p> shoulddate datetime NULL,
97、</p><p> FOREIGN KEY(readerid) REFERENCES 讀者(readerid),</p><p> FOREIGN KEY(bookid) REFERENCES 圖書(shū)(bookid)</p><p><b> )</b></p><p> /*******通過(guò)存儲(chǔ)過(guò)程向讀者表中插入
98、數(shù)據(jù)************/</p><p> USE bookmg</p><p><b> GO </b></p><p> CREATE PROCEDURE reader_insert</p><p> @elem1 varchar(9),</p><p> @elem2 var
99、char(20),</p><p> @elem3 varchar(10),</p><p> @elem4 smallint</p><p><b> AS</b></p><p><b> BEGIN </b></p><p> insert into 讀者(r
100、eaderid,readername,readersex,borrownum)</p><p><b> values </b></p><p><b> (</b></p><p> @elem1,@elem2,@elem3,@elem4</p><p><b> )</b
101、></p><p><b> END</b></p><p> /********讀者表中插入實(shí)例**********/</p><p> USE bookmg</p><p><b> GO</b></p><p> EXEC reader_insert &
102、#39;111007131','吳書(shū)敏','男','0'</p><p> /*向圖書(shū)表中插入數(shù)據(jù)*/</p><p> USE bookmg</p><p><b> GO</b></p><p><b> INSERT 圖書(shū)</b>
103、</p><p> VALUES ('540541903','子不語(yǔ)壹','漫畫(huà)','夏達(dá)','NULL','新世紀(jì)出版社','NULL','18.00','6',’0’)</p><p><b> GO</b></
104、p><p><b> INSERT 圖書(shū)</b></p><p> VALUES ('540541904','子不語(yǔ)貳','漫畫(huà)','夏達(dá)','NULL','新世紀(jì)出版社','NULL','18.00','6',’0’)<
105、;/p><p><b> GO</b></p><p><b> INSERT 圖書(shū)</b></p><p> VALUES ('540541905','子不語(yǔ)叁','漫畫(huà)','夏達(dá)','NULL','新世紀(jì)出版社','
106、;NULL','18.00','6',’0’)</p><p><b> GO</b></p><p><b> INSERT 圖書(shū)</b></p><p> VALUES ('540541906','子不語(yǔ)肆','漫畫(huà)',
107、9;夏達(dá)','NULL','新世紀(jì)出版社','NULL','18.00','6',’0’)</p><p><b> GO</b></p><p><b> INSERT 圖書(shū)</b></p><p> VALUES ('
108、540541907','子不語(yǔ)伍','漫畫(huà)','夏達(dá)','NULL','新世紀(jì)出版社','NULL','18.00','6',’0’)</p><p><b> GO</b></p><p><b> INSERT 圖書(shū)
109、</b></p><p> VALUES ('540541908','子不語(yǔ)陸','漫畫(huà)','夏達(dá)','NULL','新世紀(jì)出版社','NULL','18.00','6',’0’)</p><p> /*通過(guò)存儲(chǔ)過(guò)程向圖書(shū)表中插入數(shù)
110、據(jù)*/</p><p> USE bookmg</p><p><b> GO </b></p><p> CREATE PROCEDURE book_insert</p><p> @elem1 varchar(9),</p><p> @elem2 varchar(40),</
111、p><p> @elem3 varchar(20),</p><p> @elem4 varchar(20),</p><p> @elem5 varchar(20),</p><p> @elem6 varchar(20),</p><p> @elem7 varchar(50),</p><
112、;p> @elem8 varchar(10),</p><p> @elem9 smallint,</p><p> @elem10 smallint</p><p><b> AS</b></p><p><b> BEGIN </b></p><p>
113、insert into 圖書(shū)(bookid,bookname,booktype,bookauther,booktrslator,bookpress,</p><p> bookcontent,bookprice,noborrow,haveborrow)</p><p><b> values </b></p><p><b>
114、(</b></p><p> @elem1,@elem2,@elem3,@elem4,@elem5,@elem6,@elem7,@elem8,@elem9,@elem10</p><p><b> )</b></p><p><b> END</b></p><p> /****
115、****************************創(chuàng)建還書(shū)存儲(chǔ)*******************************/</p><p> USE bookmg</p><p><b> GO</b></p><p> CREATE PROCEDURE return_insert</p><p> @
116、elem1 varchar(9),</p><p> @elem2 varchar(9),</p><p> @elem3 smallint</p><p><b> AS</b></p><p> INSERT INTO 還書(shū)(readerid,bookid,booknum)</p><p&
117、gt;<b> values </b></p><p><b> (</b></p><p><b> @elem1,</b></p><p><b> @elem2,</b></p><p><b> @elem3</b>
118、</p><p><b> )</b></p><p><b> BEGIN</b></p><p><b> UPDATE 還書(shū)</b></p><p> SET inputdate=GETDATE()</p><p> WHERE read
119、erid=@elem1;</p><p><b> UPDATE 圖書(shū)</b></p><p> SET noborrow=noborrow+@elem3</p><p> WHERE bookid=@elem2;</p><p><b> UPDATE 圖書(shū)</b></p>
120、<p> SET haveborrow=haveborrow-@elem3</p><p> WHERE bookid=@elem2;</p><p><b> UPDATE 讀者</b></p><p> SET borrownum=borrownum-@elem3</p><p> SELECT
121、'還書(shū)成功'</p><p><b> END</b></p><p><b> GO</b></p><p> /***********還書(shū)實(shí)例*************/</p><p> USE bookmg</p><p><b>
122、 GO</b></p><p> EXEC return_insert '111007131','540541903',1</p><p><b> GO</b></p><p> /**************************創(chuàng)建借書(shū)存儲(chǔ)*****************/</
123、p><p> USE bookmg</p><p><b> GO</b></p><p> CREATE PROCEDURE borrow_insert</p><p> @elem1 varchar(9),</p><p> @elem2 varchar(9),</p>&
124、lt;p> @elem3 smallint</p><p><b> AS</b></p><p> insert into 借書(shū)</p><p><b> (</b></p><p> readerid,bookid,booknum</p><p><
125、b> )</b></p><p><b> values</b></p><p><b> (</b></p><p><b> @elem1,</b></p><p><b> @elem2,</b></p>&
126、lt;p><b> @elem3</b></p><p><b> )</b></p><p><b> BEGIN</b></p><p> /*這里用了判定是否超期函數(shù)judgedate,將返回值賦予判斷變量judgement*/</p><p> DECL
127、ARE @judgement int</p><p> SET @judgement=</p><p> (SELECT max(overdays)</p><p> FROM judgedate(@elem1)) </p><p> /*判定該讀者是否有圖書(shū)超期*/</p><p> IF (@judgem
128、ent<=0)</p><p><b> BEGIN</b></p><p> SELECT '借書(shū)成功'</p><p><b> UPDATE 借書(shū)</b></p><p> SET outputdate=GETDATE()</p><p>
129、 WHERE readerid=@elem1 AND bookid=@elem2;</p><p><b> UPDATE 借書(shū)</b></p><p> SET shoulddate=DATEADD(day,30,getdate())</p><p> WHERE readerid=@elem1 AND bookid=@elem2;&
130、lt;/p><p> /*聲明一個(gè)變量bookname從圖書(shū)表里讀取圖書(shū)名到借書(shū)表里*/</p><p> DECLARE @bookname varchar(40)</p><p> SET @bookname=(SELECT bookname FROM 圖書(shū)</p><p> WHERE bookid=@elem2</p>
131、<p><b> )</b></p><p><b> UPDATE 借書(shū)</b></p><p> SET bookname=@bookname</p><p> WHERE readerid=@elem1 AND bookid=@elem2;</p><p><b&g
132、t; UPDATE 圖書(shū)</b></p><p> SET noborrow=noborrow-@elem3</p><p> WHERE bookid=@elem2;</p><p><b> UPDATE 圖書(shū)</b></p><p> SET haveborrow=haveborrow+@el
133、em3</p><p> WHERE bookid=@elem2;</p><p><b> UPDATE 讀者</b></p><p> SET borrownum=borrownum+@elem3</p><p> WHERE readerid=@elem1;</p><p><
134、b> END</b></p><p><b> ELSE</b></p><p><b> BEGIN</b></p><p> SELECT '借書(shū)失敗,有超期未還圖書(shū)'</p><p><b> END</b></p>
135、<p><b> END</b></p><p> /************判斷是否超期表值函數(shù)********************/</p><p> USE bookmg</p><p><b> GO</b></p><p> CREATE FUNCTION ju
136、dgedate(@elem1 as varchar(9))</p><p> RETURNS @overdate TABLE</p><p><b> (</b></p><p> overdays int</p><p><b> )</b></p><p><
137、;b> AS</b></p><p><b> BEGIN</b></p><p> INSERT @overdate</p><p> SELECT day(GETDATE()-ISNULL(shoulddate,0))</p><p><b> FROM 借書(shū)</b>
138、</p><p> WHERE readerid=@elem1</p><p><b> RETURN</b></p><p><b> END</b></p><p><b> /*借書(shū)實(shí)例*/</b></p><p> USE bookmg
139、</p><p><b> GO</b></p><p> EXEC borrow_insert '111007131','540541903',2</p><p><b> GO</b></p><p> /*****************圖書(shū)分類查詢和
140、分類統(tǒng)計(jì)**************/</p><p> USE bookmg</p><p><b> GO</b></p><p> CREATE PROCEDURE type_select</p><p> @booktype varchar(20)</p><p><b>
141、; AS</b></p><p><b> BEGIN</b></p><p> SELECT booktype</p><p><b> FROM 圖書(shū)</b></p><p> WHERE booktype=@booktype;</p><p>
142、DECLARE @booknum int</p><p> SET @booknum=(</p><p> select sum(noborrow+haveborrow)</p><p><b> FROM 圖書(shū)</b></p><p> WHERE booktype=@booktype</p>&
143、lt;p><b> )</b></p><p> SELECT @booktype AS '類型' ,@booknum AS '本' </p><p><b> END</b></p><p> /****圖書(shū)分類查詢實(shí)例*********/</p><p&
144、gt; USE bookmg</p><p><b> GO</b></p><p> EXEC type_select '漫畫(huà)' </p><p><b> GO</b></p><p> /*******************圖書(shū)按書(shū)名查詢和統(tǒng)計(jì)**********
145、********/</p><p> USE bookmg</p><p><b> GO</b></p><p> CREATE PROCEDURE bookname_select</p><p> @bookname varchar(40)</p><p><b> AS&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--- 圖書(shū)管理系統(tǒng)
- 圖書(shū)管理系統(tǒng)—數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-圖書(shū)管理系統(tǒng)
- 圖書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)----圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)
- 圖書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)——圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)原理課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--圖書(shū)管理系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--圖書(shū)管理
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告---圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告----圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告---圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告---圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)原理課程設(shè)計(jì)--圖書(shū)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論