數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告附存儲(chǔ)過程和觸發(fā)器模版+數(shù)據(jù)庫腳本文檔模版+分析及er圖_第1頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告附存儲(chǔ)過程和觸發(fā)器模版+數(shù)據(jù)庫腳本文檔模版+分析及er圖_第2頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告附存儲(chǔ)過程和觸發(fā)器模版+數(shù)據(jù)庫腳本文檔模版+分析及er圖_第3頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告附存儲(chǔ)過程和觸發(fā)器模版+數(shù)據(jù)庫腳本文檔模版+分析及er圖_第4頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告附存儲(chǔ)過程和觸發(fā)器模版+數(shù)據(jù)庫腳本文檔模版+分析及er圖_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1.概述1.1項(xiàng)目背景傳統(tǒng)的商品銷售管理在商品的統(tǒng)計(jì)和管理上不但麻煩,而且還十分的耗 費(fèi)人力和時(shí)間。而商品銷售管理系統(tǒng)對商品的進(jìn)貨、退貨、存貨和銷售情況 等進(jìn)行了綜合統(tǒng)計(jì)和管理,使管理人員能夠更快的得到自己想要的信息。1.2意義及目標(biāo)一個(gè)好的商品銷售管理系統(tǒng)首先應(yīng)具備的是基本的信息管理,而商品銷 售管理系統(tǒng)不但對商品信息信息、倉庫信息、銷售信息等都進(jìn)行了系統(tǒng)的管 理,而且管理人員可以直接登陸系統(tǒng)查看所有的信息,也可以根據(jù)自己的需 要搜索相關(guān)的信息。本文對系統(tǒng)開發(fā)中面臨的問題及其解決方案進(jìn)行詳細(xì)的 設(shè)計(jì)及合理安排,根據(jù)所掌握的技術(shù)對系統(tǒng)的各部分功能進(jìn)行了實(shí)現(xiàn)。2數(shù)據(jù)庫需求分析2.1功能需求功能分

2、為以下四個(gè)方面:1. 基本信息管理: 對于銷售情況、商品信息、庫存等信息的錄入、瀏覽、修改、撤銷、冊0除和查詢等2. 商品銷售管理商品銷售 商品退回商品入庫3. 基礎(chǔ)信息管理商品類別管理倉庫及系統(tǒng)操作人員管理4. 信息查詢商品信息查詢 庫存查詢銷售統(tǒng)計(jì)信息查詢庫存情況查詢2.2數(shù)據(jù)需求商品(商品編號(hào),商品名稱,商品類型,商品產(chǎn)地)倉庫(倉庫編號(hào),倉庫編號(hào),倉庫地址)入庫(順序號(hào),商品編號(hào),倉庫編號(hào),入庫數(shù)量,入庫時(shí)間,入庫原因)庫存(順序號(hào),倉庫編號(hào),商品編號(hào),庫存數(shù)量)倉庫管理員(員工編號(hào),員工姓名,員工職稱,倉庫編號(hào))銷售日志(順序號(hào),商品編號(hào),銷售數(shù)量,銷售時(shí)間,銷售金額)用戶(用戶賬號(hào)

3、,用戶密碼)2.3 er圖分析銷害日志商品銷售總量 銷售金額 銷售時(shí)間舲心1商品綢號(hào) 商品名稱 商呂類別 商品產(chǎn)地圖1.er圖3. 物理設(shè)計(jì)2.1數(shù)據(jù)表設(shè)計(jì)銷售日志順序號(hào)int商品編號(hào)char(20)銷售數(shù)ftint銷售金額float(20)銷售時(shí)間date商品編號(hào)二一商品商品編號(hào)char(20)商品名稱char(20)商品須號(hào)商品類型char(20)複品產(chǎn)地char(20)商品編號(hào)二商品編號(hào)int商品繽號(hào)char(20)倉庫編號(hào)char(20)入庫數(shù)量int入庫時(shí)間date入庫原因char(20)入庫用戶冃戶賬號(hào) cha(20)用戶密碼 char(20)倉庫編弓=倉庫編號(hào)1倉庫譽(yù)迄員庫存?zhèn)}庫

4、員工繽號(hào)char(20)順宇號(hào)int倉庫編號(hào) char(20)倉庫編號(hào)=倉庫編號(hào)員工姓名char(20)倉庫編號(hào)char(20)倉庫編號(hào)=倉庫編號(hào)a倉庫名稱char(20)員工職稱char(20)庫存總量int倉庫地址char(20)倉庫編號(hào)char(20)圖2表結(jié)構(gòu)圖2.2創(chuàng)建表腳本2.2.1【用戶表】(1)創(chuàng)建表語句create table adminaccountchar(20)not null,cipherchar(20)rprimarykey (account);(2)插入測試數(shù)據(jù)語句insert into admin values('122015041, 112345 1

5、);2.2.2【商品表】(1)創(chuàng)建表語句create table spscodechar(20)notnull,snamechar(20)notnull,stapechar(20)rsplacechar(20)9primarykey (scode);(2)插入測試數(shù)據(jù)語句insertintospinsertintospinsertintospinsertintospinsertintospvalues ('1,樂事薯片一食物j,廣東t ; values (*2*,,牛肉干-食物;廣東冷;values (*3*, * 瓜子 *, 1 干果 1,,廣東 1); values (*4 1,,

6、可樂j,飲料-,廣東 values (* 5 雪碧j,飲料j,廣東2.2.3【倉庫表】(1)創(chuàng)建表語句create tableck(ccodechar(20)not null,cnamechar(20)fcaddresschar(20)fprimary key (ccode);(2)插入測試數(shù)據(jù)語句insert into ck values ( 111, 1 南昌倉庫 1,廠南昌 t ; insert into ck values ( ' 2 ','長沙倉庫','長沙'); insert into ck values ( 1 3 1, 1 武漢倉

7、庫 1, 1 武漢 1);224【入庫表】(1)創(chuàng)建表語句create table inputnintnotnull,scodechar(20)rccodechar(20)rinnumberint9intimed呂tetime9inreasonchar (20)fprimarykey (n),foreignkey (scode)referencessp (scode),foreignkey (ccode)referencesck(ccode);(2)插入測試數(shù)據(jù)語句insertintoinputinsertintoinputinsertintoinputinsertintoinputinser

8、tintoinputvalues ('l*, 'i*, 'i*, 'looo*, ,2014-6-10 '進(jìn)貨'); values ( *2* , *1*, *2* , *100*, ' 2014-6-10 ','進(jìn)貨'); values ('3' z *4 *100*, '2014-6-ll '退貨 t ;values ('4 ', '2'j2'j300 j *2014-6-111,-,進(jìn)貨r); values (*5*, *5*, *3*,

9、 *200*, f2014-6-12,退貨');225【倉庫管理員表】(1)創(chuàng)建表語句create table workerwcodechar (20)not null./wnamechar(20),wposition char (20)ccodechar(20),primarykey (wcode),foreign);key (ccode) references ck(ccode)(2)插入測試數(shù)據(jù)語句insertintoworkervalues (1111insertintoworkervalues(1121insertintoworkervalues (1131insertint

10、oworkervalues(1211insertintoworkervalues ( 1221insertintoworkervalues(1231insertintoworkervalues(1311insertintoworkervalues (1321insertintoworkervalues(1331懊巴馬-員工j t);'奧特曼一,倉庫經(jīng)理j t);,奧利奧,倉庫副經(jīng)理t);,湯姆克魯斯,廠員j?*小羅伯特唐尼*, *倉庫經(jīng)理*, *2*);,尼古拉斯凱奇一,倉庫副經(jīng)理j 2); 1大螺絲j,員工j f3f);,伊瑟拉,倉庫經(jīng)理-r3r);安東尼達(dá)斯1, 1倉庫副經(jīng)理* z

11、 *3*);2.2.6【銷售日志表】(1)創(chuàng)建表語句create table salenintnot null,scodechar(20)rsnumberintrsmoneyfloat (20)fstimedatetime9primarykey (n),foreignkey (scode)references sp (scode);insertintosaleinsertintosaleinsertintosaleinsertintosale(2)插入測試數(shù)據(jù)語句values (11 11 tooj 200 j ,2014-6-10,); values ( *2*,*100*, *250*,

12、'20丄4-6-丄0);values (, v 700 j 300', ,2014-6-10,);values ( m ,100, *500 ' 2014-6-10');227【庫存表】(1)創(chuàng)建表語句create table storenumnintnotnull,ccodechar(20)rscodechar(20)ftotalnumint9primarykey(n),foreignkey(ccode)referencesck(ccode)foreignkey(scode)referencessp(scode);(2)插入測試數(shù)據(jù)語句insert into

13、storenum values(111,111,111,150001); insert into storenum values(121,121,121,150001); insert into storenum values(131,131,131,150001);4. 功能實(shí)現(xiàn)4.1查詢及視圖設(shè)計(jì)4丄1商品信息查連(1)主要功能:根據(jù)商品編號(hào)查詢商品全部信息(2)查詢設(shè)計(jì):select * from sp where scode=flr ;4.1.2倉庫信息查詢(1) 主要功能:根據(jù)倉庫編號(hào)查詢倉庫全部信息(2) 查詢設(shè)計(jì):select * from ck where ccode=z 2r

14、 ;4丄3商品銷售情況查詢(1) 主要功能:根據(jù)商品編號(hào)查詢商品銷售情況全部信息(2) 查詢設(shè)計(jì):select * from sale where scode=rlz;4.1.4倉庫管理員信息查詢(1) 主要功能:根據(jù)管理員編號(hào)查詢倉庫管理員全部信息(2) 查詢設(shè)計(jì):select * from worker where wcode=z12z;4.1.5入庫信息根據(jù)編號(hào)查詢(1) 主要功能:根據(jù)入庫時(shí)的順序編號(hào)查詢?nèi)霂斓娜啃畔?2) 查詢設(shè)計(jì):select * from input where n=flr ;4.1.6入庫信息根據(jù)入庫時(shí)間及商品編號(hào)查詢(1) 主要功能:根據(jù)入庫時(shí)間及商品的編號(hào)

15、查詢?nèi)霂斓娜啃畔ⅲ?)查詢設(shè)計(jì):select * from input where intime=z 2014-6-llz,scode=z 2z;4.1.7倉庫全部商品庫存信息查詢(1)主要功能:根據(jù)倉庫編號(hào)查詢該倉庫的全部商品庫存信息(2)查詢設(shè)計(jì):select * from storenum where ccode=rlz;4.1.8查詢某地生產(chǎn)的商品在某地倉庫中的庫存信息(1) 主要功能:查詢南昌生產(chǎn)的商品在武漢倉庫中的庫存信息(2) 查詢設(shè)計(jì):select * from storenumwhere ccode in (select ccode from ck where caddre

16、ss='武漢')and scode in (select scode from sp where splace=11);4.1.9查詢庫存量超過制定數(shù)額的商品名稱及倉庫地址(1) 主要功能:查詢庫存量超過1000的商品名稱及倉庫地址(2) 查詢設(shè)計(jì):select sname,caddress from ck,sp,storenumwhere ck ccode=storenum.ccode and sp.scode=storenum.scodeand totalnum>1000;4.1.10查詢存儲(chǔ)某地生產(chǎn)的全部商品的倉庫信息(1)主要功能:查詢存儲(chǔ)南昌生產(chǎn)的全部商品的倉庫

17、信息(2) 查詢設(shè)計(jì):select * from ck wherenot exists (select * from sp where'南昌and not exists(select * from storenum where storenum.scode=sp.scode);4.1.11查詢某地倉庫中的員工總數(shù)(1) 主要功能:查詢南昌倉庫中的員工總數(shù)(2) 查詢設(shè)計(jì):select count(*) from workerwhere ccode in (select ccode from ck where caddress='南昌');4.1.12統(tǒng)計(jì)因進(jìn)貨而入庫的的

18、商品信息并按它們的進(jìn)貨數(shù)量升序排列(1)主要功能:統(tǒng)計(jì)因進(jìn)貨而入庫的的商品信息并按它們的進(jìn)貨數(shù)量升序排列(2)查詢設(shè)計(jì):select * from input where inreason='進(jìn)貨' order by innumber;4.2存儲(chǔ)過程設(shè)計(jì)421 input_input(1)主要功能:商品退回或進(jìn)貨時(shí),向入庫表中插入信息(2)參數(shù)說明:序號(hào)參數(shù)名稱及數(shù)據(jù)類型(英文 名稱)參數(shù)含義及說明1n int順序號(hào)(主鍵)2gscode char(20)商品號(hào)3ccode char(20)倉庫號(hào)4innumber int入庫數(shù)量5intime datetime入庫吋間6inr

19、eason char(20)入庫原因(3) 流程描述聲明變量接收數(shù)據(jù)并將全部數(shù)據(jù)插入入庫表中(4) 代碼及注釋create procedure input_input(n int,qscode char(20),decode char(20)qinnumber int,datetime,ginreason char(20)asinsert into input values(n,scode,qccode,innumber,intime,qinreason);4.2.2 drop_sale(1)主要功能:商品退貨時(shí),根據(jù)順序號(hào)可刪除銷售日志中的記錄(2)參數(shù)說明:序號(hào)參數(shù)名稱及數(shù)據(jù)類型(英文名稱

20、)參數(shù)含義及說明1n int銷售日志表中的順序號(hào)(主鍵)(3)流程描述輸入接收順序號(hào),并根據(jù)順序號(hào)刪除銷售日志中的該行信息(4) 代碼及注釋create procedure drop_sale (n int)asdelete from sale where4.2.3 cipher_admin(1) 主孌功能修改該系統(tǒng)用戶的密碼(2) 參數(shù)說明:序號(hào)參數(shù)名稱及數(shù)據(jù)類型(英文 名稱)參數(shù)含義及說明10account char(20)用戶賬號(hào)20cipher char(20)用戶新密碼(3) 流程描述根據(jù)輸入的用戶賬號(hào),使用新密碼更新該賬號(hào)的舊密碼(4) 代碼及注釋create procedure

21、change_admin(account char(20),cipher char(20)asupdate admin set cipher=cipher where account=0account;4.2.4 storenum_sp(1) 主要功能:查詢某地生產(chǎn)的商品在某地倉庫中的庫存信息(2) 參數(shù)說明:序號(hào)參數(shù)名稱及數(shù)據(jù)類型(英文名稱)參數(shù)含義及說明1qsplace char(20)商品產(chǎn)地2headdress char(20)倉庫地址(3) 流程描述1. 輸入并接收商品產(chǎn)地和倉庫地址2. 使用select語句根據(jù)商品產(chǎn)地和倉庫地址找出商品號(hào),倉庫號(hào)并輸出 與商品號(hào),庫存號(hào)相同的全部庫

22、存信息(4) 代碼及注釋create procedure storenum_sp(splace char(20). headdress char (20)asselect * from storenum where ccode in (select ccode from ck. where caddress= gcaddress)and scode in (select scode from sp where splace=splace);4.2.5 tot alnum_caddr e s s(1) 主要功能:查詢庫存量超過3000的商品名稱及倉庫地址(2) 參數(shù)說明:序號(hào)參數(shù)名稱及數(shù)據(jù)類型(

23、英文名稱)參數(shù)含義及說明1無無參數(shù)及返回值(3) 流程描述將三張表進(jìn)行連接,并篩選出庫存量大于3000的條目,輸出其全部信 息(4) 代碼及注釋create procedure totalnum_caddressasselect snamez caddress from ckf sp,storenumwhere ck.ccode=storenum ccode and sp scode=storenum.scodeand totalnum>30004.2.6 cksplace(1) 主要功能:查詢存儲(chǔ)某地生產(chǎn)的全部商品的倉庫信息(2)參數(shù)說明:序號(hào)參數(shù)名稱及數(shù)據(jù)類型(英文 名稱)參數(shù)含義及

24、說明1splace char(20)商品產(chǎn)地(3)流程描述使用seiect語句,根據(jù)輸入的商品產(chǎn)地,找出某一個(gè)倉庫,不存在一個(gè)商品的產(chǎn)地是該商品產(chǎn)地,這個(gè)商品沒有被這個(gè)倉庫儲(chǔ)存,并輸出這個(gè)倉庫 的全部信息(4)代碼及注釋create procedure ck_splace(splace char (20)asselect * from ck where not exists (select * from sp where splace=splace and not exists(se1ect * from storenum where storenum.scode=sp.scode);4.3觸

25、發(fā)器設(shè)計(jì)4.3.1觸發(fā)器1(i)簡介觸發(fā)器名稱:in_storenum監(jiān)聽的表名:storenum /庫存監(jiān)聽的操作類型:insert功能描述:商品入庫時(shí),更新該商品庫存量,若庫存中沒有該商品,則添加其商品信息入庫存表(2)詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】1. 聲明標(biāo)量接收inserted表中的商品號(hào),倉庫號(hào),入庫數(shù)量2. 找出庫存表中最大的順序號(hào)(主鍵),加一后用標(biāo)量餉接收3. 用select語句找出庫存表中是否存在需入庫的該商品信息4. 判斷若存在該商品,則庫存量加上入庫數(shù)量5. 若不存在,則插入該商品信息,庫存量存儲(chǔ)為入庫數(shù)量(3) 代碼及注釋

26、create trigger in_storenum on inputfor insert asdeclare scode char (20),decode char (20),innumber int,int,max_n intselect scode=scode,ccode=ccode,innumber=innumber from inserted select a=count(*) from storenum where scode=scode and ccode=0ccode if a>0update storenum set totalnum-tota丄num+innuinbe

27、匸 where scode=scode and ccode=ccode else beginselect max_n=max(n) from storenuminsert into storenum values(max_n+l,decode,scode,innumber) end;4.3.2觸發(fā)器2(1)簡介觸發(fā)器名稱:de_storenum監(jiān)聽的表名:sale 銷售日志監(jiān)聽的操作類型:insert功能描述:商品售出而在銷售日志中插入岀售記錄吋,更 新庫存,使庫存中的商品數(shù)量減少岀售的數(shù)量(2) 詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】1. 聲明變量從in

28、serted表中接收商品號(hào),出售數(shù)量2. 更新庫存表,使得該商品庫存量減少出售數(shù)量(3) 代碼及注釋create trigger de_storenum on salefor insert asdeclare scode char (20),snumber intselect scode=scode,snumber=snumber from insertedupdate storenum set totalnum=totalnum-snumber where scode=scode;4.3.3觸發(fā)器1(l) 簡介觸發(fā)器名稱:storenum_totalnum監(jiān)聽的表名:storenum /庫存

29、表監(jiān)聽的操作類型:update功能描述:當(dāng)更新庫存表時(shí),監(jiān)控商品的庫存總量,若庫存總量超過5000時(shí),提示,存入量超標(biāo),任意商品存儲(chǔ)量應(yīng)小于 5000! ! ! »并冋滾操作取消之前的更新操作(2)詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】1. 聲明變量從i nserted表中接收庫存總量2. 判斷該庫存總量是否大于50003. 若大于5000,則提示文字,并回滾操作(3) 代碼及注釋create trigger storenum_totalnum on storenum for update asdeclare totalnum intselect

30、 totalnum=totalnum from insertedif totalrmm>=5000beginprint ( *存入量超標(biāo),任意商品存儲(chǔ)量應(yīng)小于5000! ! ! ») rollback transactionend;4.3.4觸發(fā)器1(1)簡介觸發(fā)器名稱:change_sale_n監(jiān)聽的表名:sale /銷售日志(該觸發(fā)器也修改并使用在入庫表和庫存表 屮)監(jiān)聽的操作類型:insert功能描述:當(dāng)向銷售日志表插入數(shù)據(jù),順序號(hào)(主鍵)與 表中的末尾順序號(hào)不連接時(shí),自動(dòng)修改成連接 的數(shù)字(該觸發(fā)器也修改并使用在入庫表和庫存表中)(2)詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的

31、操作過程,可以用偽代碼、流程圖或自然語言】1. 聲明變量接收inserted表中的需要插入順序號(hào)2. 數(shù)出從銷售日志中的總行數(shù)并賦值給變量oid_n3. 將總行數(shù)oid_n賦值給剛插入那一行的順序號(hào)(3) 代碼及注釋create trigger change_sale_n on sale for insert asdeclare new_n int,old_n int select new_n=n from inserted select old_n=count(*) from sale update sale set n=old_n where n=new_n;4.4統(tǒng)計(jì)4.4.1統(tǒng)計(jì)功能1

32、(1)主要功能周平均h銷售額(2)腳本設(shè)計(jì)create procedure avg_sale(吐ime datetime)asselect avg (smoney) 該周平均日銷售額 from sale wheredatediff(day,stime,time)<7;4.4.2統(tǒng)計(jì)功能2(1) 主要功能月銷售總額(2) 腳本設(shè)計(jì)create procedure sum_month_sale(time datetime)asselect sum (smoney) 月 銷 售 總 額 from sale where month(stime)=month;5調(diào)試總結(jié)5.1問題調(diào)試1. 建表階段

33、時(shí),開始是以倉庫表為中心的表結(jié)構(gòu),發(fā)現(xiàn)建表后無法與 題目相符,改用以倉庫表,商品表為核心的結(jié)構(gòu)2. 無法順利完成統(tǒng)計(jì)的設(shè)計(jì),上網(wǎng)上查詢了時(shí)間函數(shù)的用法并詢問老 師,學(xué)會(huì)了 datediff, day, month等函數(shù)的用法并運(yùn)用到了統(tǒng)計(jì)功能中。5.2心得體會(huì)通過這次數(shù)據(jù)庫課設(shè),我收獲了很多課堂上學(xué)不到的東西。通過一步步 的數(shù)據(jù)庫課設(shè),使我了解到了項(xiàng)目設(shè)計(jì)的犬致流程,了解了項(xiàng)目所需的各項(xiàng) 文檔文件。在數(shù)據(jù)庫代碼設(shè)計(jì)時(shí),我學(xué)到了如select,存儲(chǔ)過程,觸發(fā)器等功能的正確使用地點(diǎn),還學(xué)到了時(shí)間函數(shù)等書本中沒有的函數(shù)的使用方法。6.參考文獻(xiàn)1 薩師煩等.數(shù)據(jù)庫系統(tǒng)概論.北京:高等教育出版社,200

34、02 孫家廣等軟件工程 北京:高等教育出版社,20103 軟件工程南昌航空大學(xué)軟件工程課程組存儲(chǔ)過程和觸發(fā)器存儲(chǔ)過程1.1 input_input (1)功能簡介【商品退回或進(jìn)貨時(shí),向入庫表中插入信息】(2)參數(shù)說明【詳細(xì)說明該存儲(chǔ)過程的輸入?yún)?shù)、輸岀參數(shù),最后如果有返回值則要 附上存儲(chǔ)的返回值,如果沒有則寫無返回類型】序號(hào)參數(shù)名稱及數(shù)據(jù)類型(英文 名稱)參數(shù)含義及說明1n int順序號(hào)(主鍵)2scode char(20)商品號(hào)3decode char(20)倉庫號(hào)4innumber int入庫數(shù)量5intime datetime入庫時(shí)間6inreason char(20)入庫原因(3)詳細(xì)

35、操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】聲明變量接收數(shù)據(jù)并將全部數(shù)據(jù)插入入庫表中(4) 代碼及注釋create procedure input_input(n int,scode char(20)decode char(20)qinnumber int,qintime datetime,inreason char(20)asinsert into input values(n,scode,decode,innumber,intime,inreason);1.2 【drop_sale 】(1)功能簡介【商品退貨時(shí),根據(jù)順序號(hào)可刪除銷售日志中的記錄】(2)參數(shù)說明【

36、詳細(xì)說明該存儲(chǔ)過程的輸入?yún)?shù)、輸出參數(shù),最后如果有返冋值則要 附上存儲(chǔ)的返回值,如果沒有則寫無返回類型】序號(hào)參數(shù)名稱及數(shù)據(jù)類型(英文 名稱)參數(shù)含義及說明1n int銷售日志表中的順序號(hào)(主鍵)(3)詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】 輸入接收順序號(hào),并根據(jù)順序號(hào)刪除銷售日志中的該行信息(4) 代碼及注釋create procedure drop_sale (n int)asdelete from sale where1.3 【cipher_admin 】(1)功能簡介【修改該系統(tǒng)用戶的密碼】(2)參數(shù)說明【詳細(xì)說明該存儲(chǔ)過程的輸入?yún)?shù)、輸出參數(shù),最后

37、如果有返回值則要附上存儲(chǔ)的返回值,如果沒有則寫無返回類型】序號(hào)參數(shù)名稱及數(shù)據(jù)類型(英文名稱)參數(shù)含義及說明1©account char(20)用戶賬號(hào)2cipher char(20)用戶新密碼(3)詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】 根據(jù)輸入的用戶賬號(hào),使用新密碼更新該賬號(hào)的舊密碼(4) 代碼及注釋create procedure change_admin(account char(20),cipher char(20)asupdate admin set cipher=qcipher where account=account;/*還有大量

38、與存儲(chǔ)過程11, 1.2, 13相似的簡單的的存 儲(chǔ)過程,就不寫入表中了*/1.4 storenum_sp 】(1)功能簡介【查詢某地生產(chǎn)的商品在某地倉庫中的庫存信息】(2)參數(shù)說明【詳細(xì)說明該存儲(chǔ)過程的輸入?yún)?shù)、輸出參數(shù),最后如果有返回值則要 附上存儲(chǔ)的返回值,如果沒有則寫無返回類型】序號(hào)參數(shù)名稱及數(shù)據(jù)類型(英文名稱)參數(shù)含義及說明1qsplace char(20)商品產(chǎn)地2headdress char(20)倉庫地址(3)詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】2. 輸入并接收商品產(chǎn)地和倉庫地址3. 使用select語句根據(jù)商品產(chǎn)地和倉庫地址找出商品號(hào),

39、倉庫號(hào)并輸出與商品號(hào),庫存號(hào)相同的全部庫存信息(4) 代碼及注釋create procedure storenum_sp(splace char(20). headdress char (20)asselect * from storenum where ccode in (select ccode from ck where caddress= gcaddress)and scode in (select scode from sp where splace=splace);1.5 it otalnum_caddre ss(1)功能簡介【查詢庫存量超過3000的商品名稱及倉庫地址】(2)參數(shù)

40、說明【詳細(xì)說明該存儲(chǔ)過程的輸入?yún)?shù)、輸出參數(shù),最后如果有返冋值則要附上存儲(chǔ)的返冋值,如果沒有則寫無返冋類型】序號(hào)參數(shù)名稱及數(shù)據(jù)類型(英文名稱)參數(shù)含義及說明1無無參數(shù)及返冋值(3)詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】將三張表進(jìn)行連接,并篩選出庫存量大于3000的條目,輸出其全部信息(4) 代碼及注釋create procedure totalnum_caddressasselect snamez caddress from ck,spz storenumwhere ck ccode=storenum ccode and sp scode=storenum

41、.scodeand totalnum>30001.6 i ck_splace 】(1)功能簡介【查詢存儲(chǔ)某地生產(chǎn)的全部商品的倉庫信息】(2)參數(shù)說明【詳細(xì)說明該存儲(chǔ)過程的輸入?yún)?shù)、輸岀參數(shù),最后如果有返回值則要 附上存儲(chǔ)的返回值,如果沒有則寫無返回類型】序號(hào)參數(shù)名稱及數(shù)據(jù)類型(英文名稱)參數(shù)含義及說明1splace char(20)商品產(chǎn)地(3)詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】 使用select語句,根據(jù)輸入的商品產(chǎn)地,找出某一個(gè)倉庫,不存在一個(gè)商 品的產(chǎn)地是該商品產(chǎn)地,這個(gè)商品沒有被這個(gè)倉庫儲(chǔ)存,并輸出這個(gè)倉庫的 全部信息(4)代碼及注釋cr

42、eate procedure ck_splace(gsplace char(20)asselect * from ck where not exists (select * from sp where splace=splace and not exists (select * from storenum where storenum scode=spscode);1.7 worker_infoi?mation(1)功能簡介【查詢某地倉庫中的員工信息】(2)參數(shù)說明【詳細(xì)說明該存儲(chǔ)過程的輸入?yún)?shù)、輸出參數(shù),最后如果有返回值則要 附上存儲(chǔ)的返回值,如果沒有則寫無返回類型】序號(hào)參數(shù)名稱及數(shù)據(jù)類型(

43、英文名稱)參數(shù)含義及說明1headdress char (20)倉庫地址(3)詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】 聲明變量接收倉庫地址,使用select語句找出全部的員工信息,這些員工 的倉庫號(hào)所對應(yīng)的倉庫,倉庫地址與(4) 代碼及注釋create procedure worker_information(headdress char(20)asselect * from worker where ccode in (select ccode from ck where caddressgcaddress);1.8 【inreason_innumber

44、(1)功能簡介【統(tǒng)計(jì)因某入庫原因(進(jìn)貨/退貨)而入庫的的商品信息并按它們的數(shù)量降序排列】(2)參數(shù)說明【詳細(xì)說明該存儲(chǔ)過程的輸入?yún)?shù)、輸岀參數(shù),最后如果有返回值則要 附上存儲(chǔ)的返回值,如果沒有則寫無返回類型】序號(hào)參數(shù)名稱及數(shù)據(jù)類型(英文名稱)參數(shù)含義及說明1qinreason char(20)入庫原因(3)詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】 聲明變量接收入庫原因,用select語句找出與該入庫原因相同的行,并輸 出全部信息,根據(jù)入庫數(shù)量desc降序排列(4) 代碼及注釋create procedure inreason_innumber(inreaso

45、n char(20)asselect * from input where inreason=inreason order by innumber desc;2.觸發(fā)器2.1 in_storenuml(1)簡介觸發(fā)器名稱:in_storenum監(jiān)聽的表名:storenum /庫存監(jiān)聽的操作類型:insert功能描述:商品入庫時(shí),更新該商品庫存量,若庫存中沒有該商品,則添加其商品信息入庫存表(2)詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】6. 聲明標(biāo)量接收inserted表中的商品號(hào),倉庫號(hào),入庫數(shù)量7. 找出庫存表中最大的順序號(hào)(主鍵),加一后用標(biāo)量鈿接收8.

46、 用select語句找出庫存表中是否存在需入庫的該商品信息9. 判斷若存在該商品,則庫存量加上入庫數(shù)量10. 若不存在,則插入該商品信息,庫存量存儲(chǔ)為入庫數(shù)量(3) 代碼及注釋create trigger in_storenum on inputfor insert asdeclare qscode char(20),decode char(20),innumber int,max_n intselect scode=scode,ccode=ccode,innumber=innumber from inserted select a=count (*) from storenum where

47、scode=scode and ccode=ccode if a>0update storenum set totalnum-totalnum+innumber where scode=scode and ccode=ccodeelseb eginselect max_n=max(n) from storenuminsert into storenum values(max_n+l,decode,scode,innumber) end;2.2 de_st orenuml(1)簡介觸發(fā)器名稱:de_storenum監(jiān)聽的表名:sale 銷售日志監(jiān)聽的操作類型:insert功能描述:商品售出

48、而在銷售日志中插入出售記錄時(shí),更新庫存,使庫存中的商品數(shù)量減少出售的數(shù)量(2)詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】3. 聲明變量從inserted表中接收商品號(hào),出售數(shù)量4. 更新庫存表,使得該商品庫存量減少出售數(shù)量(3) 代碼及注釋create trigger de_storenum on salefor insert asdeclare qscode char(20),snumber intselect scode=scode,snumber=snumber from insertedupdate storenum set totalnum=tota

49、lnum-snumber where scode=scode;2.3 【storenum_totalnum(1)簡介觸發(fā)器名稱:storenum_totalnum監(jiān)聽的表名:storenum /庫存表監(jiān)聽的操作類型:update功能描述:當(dāng)更新庫存表時(shí),監(jiān)控商品的庫存總量,若庫存總量超過5000時(shí),提示1存入量超標(biāo),任意商品存儲(chǔ)量應(yīng)小于5000! ! ! 1并回滾操作取消之前的更新操作(2)詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】4. 聲明變量從i nserted表中接收庫存總量5. 判斷該庫存總量是否大于50006. 若大于5000,則提示文字,并回滾操作

50、(3)代碼及注釋create trigger storenum_totalnum on storenum for update asdeclare totajlnum intselect qtotalnum二totalnum from insertedif alnum>=5000beginprint ( 存入量超標(biāo),任意商品存儲(chǔ)量應(yīng)小于5000! ! ! )rollback transactionend;2.4 i change_sale_n 】(1)簡介觸發(fā)器名稱:change_sale_n監(jiān)聽的表名:sale 銷售日志(該觸發(fā)器也修改并使用在入庫表和庫存表 中)監(jiān)聽的操作類型:ins

51、ert功能描述:當(dāng)向銷售日志表插入數(shù)據(jù),順序號(hào)(主鍵)與 表中的末尾順序號(hào)不連接時(shí),自動(dòng)修改成連接 的數(shù)字(該觸發(fā)器也修改并使用在入庫表和庫 存表中)(2)詳細(xì)操作流程【詳細(xì)說明該存儲(chǔ)過程的操作過程,可以用偽代碼、流程圖或自然語言】4. 聲明變量接收inserted表中的需要插入順序號(hào)5. 數(shù)出從銷售日志中的總行數(shù)并賦值給變量oid_n6. 將總行數(shù)oid_n賦值給剛插入那一行的順序號(hào)(3)代碼及注釋create trigger change_sa1e_n on salefor insert as declare new_n int,old_n int select new_n=n from

52、inserted select qold_n=count(*) from sale update sale set n=o丄d_n where n=new_n;數(shù)據(jù)庫腳本學(xué)號(hào)12201504 姓名1、創(chuàng)建表及插入數(shù)據(jù)1.1【用戶表】(1)創(chuàng)建表語句create table adminaccountchar(20)not nullacipherchar(20)fprimarykey (account);(2)插入測試數(shù)據(jù)語句insert into admin values(1122015041,1123451);1.2【商品表】(1)創(chuàng)建表語句create table spscodechar(20)notnull,snamecha

溫馨提示

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

評論

0/150

提交評論