2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

最新文檔

評(píng)論

0/150

提交評(píng)論