數(shù)據(jù)庫課程設(shè)計(jì)銷售管理系統(tǒng)_第1頁
數(shù)據(jù)庫課程設(shè)計(jì)銷售管理系統(tǒng)_第2頁
數(shù)據(jù)庫課程設(shè)計(jì)銷售管理系統(tǒng)_第3頁
數(shù)據(jù)庫課程設(shè)計(jì)銷售管理系統(tǒng)_第4頁
數(shù)據(jù)庫課程設(shè)計(jì)銷售管理系統(tǒng)_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄摘要11.概述22.需求分析23.概念結(jié)構(gòu)設(shè)計(jì)33.1概念結(jié)構(gòu)設(shè)計(jì)工具33.2客戶子系統(tǒng)33.3產(chǎn)品子系統(tǒng)43.4發(fā)票子系統(tǒng)53.5總E-R圖54.邏輯結(jié)構(gòu)設(shè)計(jì)64.1E-R圖向關(guān)系數(shù)據(jù)模式轉(zhuǎn)換74.2 視圖的設(shè)計(jì)(既向特定DBMS轉(zhuǎn)換)74.3優(yōu)化85.數(shù)據(jù)庫物理設(shè)計(jì)與實(shí)施95.1數(shù)據(jù)庫應(yīng)用的硬件、軟件環(huán)境介紹95.2物理結(jié)構(gòu)設(shè)計(jì)105.3索引的設(shè)計(jì)115.4建立數(shù)據(jù)庫115.5加載測(cè)試數(shù)據(jù)136.數(shù)據(jù)庫操作要求及實(shí)現(xiàn)166.1數(shù)據(jù)查詢操作166.2數(shù)據(jù)更新操作196.3數(shù)據(jù)維護(hù)操作226.4其它227.收獲、體會(huì)和建議248.主要參考文獻(xiàn)25摘要SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫管

2、理系統(tǒng)。它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同開發(fā)的,于1988 年推出了第一個(gè)OS/2版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發(fā)上就分道揚(yáng)鑣了,Microsoft 將SQL Server移植到Windows NT系統(tǒng)上,專注于開發(fā)推廣SQL Server 的Windows NT 版本。Sybase 則較專注于SQL Server在UN操作系統(tǒng)上的應(yīng)用。SQL Server 2000 是Microsoft 公司推出的SQL Server數(shù)據(jù)庫管理系統(tǒng),該版本繼承了SQL Server 7.0

3、版本的優(yōu)點(diǎn),同時(shí)又比它增加了許多更先進(jìn)的功能。具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行Microsoft Windows 98 的膝上型電腦到運(yùn)行Microsoft Windows 2000 的大型多處理器的服務(wù)器等多種平臺(tái)使用。1.概述SQL server是時(shí)下比較流行的數(shù)據(jù)庫,利用SQL server可以做很多管理系統(tǒng),此次我們的選題為:產(chǎn)品銷售管理系統(tǒng)。本次課程設(shè)計(jì)的目的在于,加深對(duì)SQL serve知識(shí)的應(yīng)用能力,團(tuán)隊(duì)中的合作意識(shí),把課本信息用于實(shí)踐,為進(jìn)入社會(huì)打好基礎(chǔ)。銷售管理系統(tǒng)是銷售管理軟件的通俗化名稱,銷售管理系統(tǒng)是管理客戶檔案、銷售線索、銷售活動(dòng)、業(yè)務(wù)報(bào)

4、告、統(tǒng)計(jì)銷售業(yè)績(jī)的先進(jìn)工具,適合企業(yè)銷售部門辦公和管理使用,協(xié)助銷售經(jīng)理和銷售人員快速管理客戶、銷售和業(yè)務(wù)的重要數(shù)據(jù)。主要功能模塊包括:渠道管理、項(xiàng)目管理、合同管理、報(bào)價(jià)管理、銷售機(jī)會(huì)管理、收款計(jì)劃管理、付款計(jì)劃管理、潛在客戶池、公共檢索、自動(dòng)化管理策略、客戶管理、競(jìng)爭(zhēng)對(duì)手管理、服務(wù)管理、商品管理、銷售管理、采購(gòu)管理、費(fèi)用管理、短信群發(fā)、傳真群發(fā)、郵件群發(fā)、活動(dòng)管理、任務(wù)管理、權(quán)限管理、自定義功能、數(shù)據(jù)導(dǎo)入功能、新聞公告發(fā)布、工作臺(tái)、快速通道、系統(tǒng)監(jiān)控、報(bào)表數(shù)據(jù)分析等。鑒于我們的能力有限,僅選擇了其中的幾個(gè)功能實(shí)現(xiàn)。2.需求分析產(chǎn)品銷售管理系統(tǒng)的總體要求是:企業(yè)生產(chǎn)多種產(chǎn)品,產(chǎn)品銷售管理系統(tǒng)模

5、擬產(chǎn)品銷售過程中的管理,管理對(duì)象包括產(chǎn)品、客戶、發(fā)票等,可以實(shí)現(xiàn)產(chǎn)品銷售,并能進(jìn)行各種查詢、統(tǒng)計(jì)等的處理。其中大致設(shè)計(jì)功能如下分為以下幾點(diǎn)。系統(tǒng)管理的對(duì)象如下:1.客戶:每個(gè)客戶分配唯一客戶號(hào),要登記客戶姓名、地址、電話、信用狀況(優(yōu)/良/一般/差)、預(yù)付款等信息。2.產(chǎn)品:產(chǎn)品編碼、產(chǎn)品名稱、規(guī)格、單價(jià)、庫存數(shù)量等。3.客戶購(gòu)買產(chǎn)品要開具發(fā)票,每張發(fā)票由唯一的發(fā)票號(hào)、客戶名稱、購(gòu)買日期、付款金額和若干購(gòu)買產(chǎn)品細(xì)節(jié)組成。4.產(chǎn)品細(xì)節(jié)包括:序號(hào)、產(chǎn)品號(hào)、購(gòu)買數(shù)量等。企業(yè)的產(chǎn)品銷售管理規(guī)定如下:1.客戶可多次購(gòu)買任意產(chǎn)品,每次可以購(gòu)買多種產(chǎn)品。2.客戶每次購(gòu)買要開具發(fā)票,一張發(fā)票只開給一個(gè)客戶。3

6、.一張發(fā)票可以開多種產(chǎn)品,同類產(chǎn)品在一張發(fā)票上只能出現(xiàn)一次。3.概念結(jié)構(gòu)設(shè)計(jì)3.1概念結(jié)構(gòu)設(shè)計(jì)工具實(shí)體-聯(lián)系模型(簡(jiǎn)稱E-R模型)是由于1976年首先提出的。它提供不受任何DBMS約束的面向用戶的表達(dá)方法,在數(shù)據(jù)庫設(shè)計(jì)中被廣泛用作數(shù)據(jù)建模的工具。E-R數(shù)據(jù)模型問世后,經(jīng)歷了許多修改和擴(kuò)充。E-R模型的構(gòu)成成分是實(shí)體集、屬性和聯(lián)系集,其表示方法如下:(1) 實(shí)體集用矩形框表示,矩形框內(nèi)寫上實(shí)體名。(2) 實(shí)體的屬性用橢圓框表示,框內(nèi)寫上屬性名,并用無向邊與其實(shí)體集相連。(3) 實(shí)體間的聯(lián)系用菱形框表示,聯(lián)系以適當(dāng)?shù)暮x命名,名字寫在菱形框中,用無向連線將參加聯(lián)系的實(shí)體矩形框分別與菱形框相連,并在

7、連線上標(biāo)明聯(lián)系的類型,即11、1N或MN。3.2客戶子系統(tǒng)每個(gè)客戶分配唯一客戶號(hào),要登記客戶姓名、地址、電話、信用狀況(優(yōu)/良/一般/差)、預(yù)付款等信息??蛻糍?gòu)買產(chǎn)品要開具發(fā)票??蛻艨啥啻钨?gòu)買任意產(chǎn)品,每次可以購(gòu)買多種產(chǎn)品。客戶每次購(gòu)買要開具發(fā)票。所以與之對(duì)應(yīng)的分E-R圖如圖1(見下一頁)圖13.3產(chǎn)品子系統(tǒng) 子系統(tǒng)描述產(chǎn)品具有產(chǎn)品編碼、產(chǎn)品名稱、規(guī)格、單價(jià)、庫存數(shù)量等屬性。產(chǎn)品細(xì)節(jié)包括:序號(hào)、產(chǎn)品號(hào)、購(gòu)買數(shù)量等。同類產(chǎn)品在一張發(fā)票上只能出現(xiàn)一次。 分E-R圖圖23.4發(fā)票子系統(tǒng) 子系統(tǒng)描述客戶購(gòu)買產(chǎn)品要開具發(fā)票,每張發(fā)票由唯一的發(fā)票號(hào)、客戶名稱、購(gòu)買日期、付款金額和若干購(gòu)買產(chǎn)品細(xì)節(jié)組成,一張

8、發(fā)票只開給一個(gè)客戶,一張發(fā)票可以開多種產(chǎn)品。 分E-R圖圖33.5總E-R圖 E-R圖的集成總E-R圖是由子E-R圖已經(jīng)它們各自的屬性,聯(lián)系的總和。 總體E-R圖,圖4(見下一頁)圖44.邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)的設(shè)計(jì)流程如下圖:4.1E-R圖向關(guān)系數(shù)據(jù)模式轉(zhuǎn)換通過以上各個(gè)子系統(tǒng)的分析和E-R圖,可以把以上實(shí)體轉(zhuǎn)換為如下的關(guān)系數(shù)據(jù)模式: 客戶關(guān)系數(shù)據(jù)模式:(1)客戶(客戶號(hào),姓名,地址,電話,信用狀況,預(yù)付款),以客戶姓名為關(guān)系碼;(2)產(chǎn)品(編碼,名稱,規(guī)格,單價(jià),庫存數(shù)量),以產(chǎn)品名稱為關(guān)系碼;(3)購(gòu)買(客戶姓名,產(chǎn)品名稱),以客戶姓名為關(guān)系碼;購(gòu)買與客戶端合并,則客戶關(guān)系數(shù)據(jù)模式如下:客戶

9、(客戶號(hào),姓名,地址,電話,信用狀況,預(yù)付款,產(chǎn)品名稱);產(chǎn)品(編碼,名稱,規(guī)格,單價(jià),庫存數(shù)量)。 產(chǎn)品關(guān)系數(shù)據(jù)模式:(1)產(chǎn)品(編碼,名稱,規(guī)格,單價(jià),庫存數(shù)量),以產(chǎn)品名稱為關(guān)系碼;(2)發(fā)票(編號(hào),日期,用戶,產(chǎn)品,單價(jià),數(shù)量,總金額),以發(fā)票編號(hào)為關(guān)系碼;(3)擁有(發(fā)票編號(hào),產(chǎn)品名稱),以發(fā)票編號(hào)為關(guān)系碼;擁有與產(chǎn)品端合并,則產(chǎn)品關(guān)系數(shù)據(jù)模式如下:產(chǎn)品(編碼,名稱,規(guī)格,單價(jià),庫存數(shù)量,發(fā)票編號(hào));發(fā)票(編號(hào),日期,用戶,產(chǎn)品名稱,單價(jià),數(shù)量,總金額)。 發(fā)票關(guān)系數(shù)據(jù)模式:(1)發(fā)票(編號(hào),日期,用戶,產(chǎn)品,單價(jià),數(shù)量,總金額),以發(fā)票編號(hào)為關(guān)系碼;(2)客戶(客戶號(hào),姓名,地址,

10、電話,信用狀況,預(yù)付款),以客戶姓名為關(guān)系碼;(3)獲得(客戶姓名,發(fā)票編號(hào)),以客戶姓名為關(guān)系碼;獲得與客戶端合并,則發(fā)票關(guān)系數(shù)據(jù)模式如下:客戶(客戶號(hào),姓名,地址,電話,信用狀況,預(yù)付款,發(fā)票編號(hào));發(fā)票(編號(hào),日期,用戶,產(chǎn)品,單價(jià),數(shù)量,總金額)。4.2 視圖的設(shè)計(jì)(既向特定DBMS轉(zhuǎn)換)通過關(guān)系數(shù)據(jù)模式和E-R圖,可以設(shè)計(jì)出如下圖的視圖(見下一頁):4.3優(yōu)化 指出數(shù)據(jù)依賴客戶關(guān)系模式內(nèi)部存在如下數(shù)據(jù)依賴:客戶編號(hào)->姓名 客戶編號(hào)->地址客戶編號(hào)->電話 客戶編號(hào)->信用客戶編號(hào)->預(yù)付款發(fā)票關(guān)系模式內(nèi)部存在如下數(shù)據(jù)依賴:發(fā)票編號(hào)->日期 發(fā)票編

11、號(hào)->用戶發(fā)票編號(hào)->產(chǎn)品 發(fā)票編號(hào)->單價(jià)發(fā)票編號(hào)->數(shù)量 發(fā)票編號(hào)->總金額產(chǎn)品關(guān)系模式內(nèi)部存在如下數(shù)據(jù)依賴:產(chǎn)品編號(hào)->名稱 產(chǎn)品編號(hào)->規(guī)格產(chǎn)品編號(hào)->單價(jià) 產(chǎn)品編號(hào)->庫存發(fā)票關(guān)系模式與客戶關(guān)系模式存在如下數(shù)據(jù)依賴:發(fā)票.姓名->客戶.姓名發(fā)票關(guān)系模式與產(chǎn)品關(guān)系模式存在如下數(shù)據(jù)依賴:發(fā)票.產(chǎn)品名稱->產(chǎn)品.名稱 發(fā)票.單價(jià)->產(chǎn)品.單價(jià) 對(duì)數(shù)據(jù)進(jìn)行極小化處理,并指明范式級(jí)別由此可以看出上面的三個(gè)模式中無數(shù)據(jù)冗余,另外客戶關(guān)系模式中:客戶編號(hào)->(姓名,地址,電話,信用,預(yù)付款),其它數(shù)據(jù)無依賴,所以客戶關(guān)系

12、模式是1NF關(guān)系;而對(duì)于發(fā)票關(guān)系模式,可發(fā)現(xiàn)如下的數(shù)據(jù)依賴傳遞:總金額->(單價(jià),數(shù)量) 發(fā)票編號(hào)->(單價(jià),數(shù)量);所以發(fā)票關(guān)系模式是2NF關(guān)系;同樣在產(chǎn)品關(guān)系模式中:產(chǎn)品編號(hào)->(名稱,規(guī)格,單價(jià),庫存),其它數(shù)據(jù)無依賴,所以產(chǎn)品關(guān)系模式是1NF關(guān)系。 提高系統(tǒng)效率因?yàn)閷?duì)于整個(gè)系統(tǒng)而言更新和查詢是最為頻繁的,為提高效率,所以定義如下子關(guān)系:產(chǎn)品(編號(hào),名稱,單價(jià),庫存);發(fā)票(編號(hào),客戶,產(chǎn)品);客戶(編號(hào),姓名,電話,信用,預(yù)付款)。這樣就可以把數(shù)據(jù)分離出來,減少查詢數(shù)據(jù)量,從而題高系統(tǒng)的效率。5.數(shù)據(jù)庫物理設(shè)計(jì)與實(shí)施5.1數(shù)據(jù)庫應(yīng)用的硬件、軟件環(huán)境介紹 數(shù)據(jù)庫應(yīng)用的硬

13、件介紹本次目的主要是用于學(xué)習(xí),另外由于條件的限制,所以硬件的采用如下:CPU為AMD Athlon(速龍) X4 631四核;內(nèi)存為2G(DDR3 1333MHz);硬盤為500G(7200RM);主板為昂達(dá)A75T。這樣使得數(shù)據(jù)庫運(yùn)行較為流暢。 軟件環(huán)境介紹操作系統(tǒng)選用目前較穩(wěn)定的Windows XP中文版;數(shù)據(jù)庫系統(tǒng)采用關(guān)系型數(shù)據(jù)庫系統(tǒng)SQL Server 2008;由Windows XP和SQL Server 2008共同組成系統(tǒng)的開發(fā)環(huán)境。 (1)中文操作系統(tǒng)Windows XP的特點(diǎn): 首先,操作系統(tǒng)采用完全圖形化的用戶界面。將使軟件用戶的培訓(xùn)大大簡(jiǎn)化,提高了工作

14、效率。 其次,Windows XP的設(shè)備無關(guān)性使本系統(tǒng)軟件開發(fā)時(shí)無須固定使用設(shè)備,有利于軟件的移植和硬件設(shè)備的更新?lián)Q代。 再次,Windows XP系統(tǒng)中文版支持信息交換用漢字編碼字符集,完善的中文支持使二者緊密結(jié)合,構(gòu)成一個(gè)功能完備的軟件開發(fā)環(huán)境。(2)SQL Server 2008由微軟開發(fā),它可以隨時(shí)隨地的管理數(shù)據(jù),可以將數(shù)據(jù)結(jié)構(gòu)化、半結(jié)構(gòu)化、和非結(jié)構(gòu)化文檔的數(shù)據(jù)直接存儲(chǔ)到數(shù)據(jù)庫中。同時(shí)SQL Server 2008提供了很多豐富的集成服務(wù),包括對(duì)數(shù)據(jù)進(jìn)行查詢,搜索、同步、報(bào)告、以及分析等。SQL Server 2008平臺(tái)愿景是使得公司可以運(yùn)行他們最關(guān)鍵任務(wù)的應(yīng)用程

15、序,同時(shí)降低了管理數(shù)據(jù)基礎(chǔ)設(shè)施和發(fā)送觀察和信息給所有用戶的成本。這個(gè)平臺(tái)有以下特點(diǎn):(a)可信任的使得公司可以以很高的安全性、可靠性和可擴(kuò)展性來運(yùn)行公司最關(guān)鍵任務(wù)的應(yīng)用程序。(b)高效的使得公司可以降低開發(fā)和管理他們的數(shù)據(jù)基礎(chǔ)設(shè)施的時(shí)間和成本。(c)智能的提供了一個(gè)全面的平臺(tái),可以在你的用戶需要的時(shí)候給他發(fā)送觀察和信息。5.2物理結(jié)構(gòu)設(shè)計(jì)在G盤下創(chuàng)建一個(gè)名為manage_new的數(shù)據(jù)庫,并在該數(shù)據(jù)庫中創(chuàng)建如下的表。數(shù)據(jù)表匯總:表名功能說明發(fā)票記錄客戶部分信息以及產(chǎn)品部分信息產(chǎn)品記錄產(chǎn)品全部信息客戶記錄客戶全部信息表一:發(fā)票表:列名數(shù)據(jù)類型是否允許空編號(hào)(主鍵)整型否日期時(shí)間否用戶字符否產(chǎn)品字符

16、否單價(jià)貨幣否數(shù)量整型否總金額貨幣否表二:客戶表:列名數(shù)據(jù)類型是否允許空編號(hào)(主鍵)整型否姓名字符否地址字符否電話整型否信用字符否預(yù)付款整型否表三:產(chǎn)品表:列名數(shù)據(jù)類型是否允許空編號(hào)(主鍵)整型否名稱字符否規(guī)格字符否單價(jià)貨幣否庫存整型否5.3索引的設(shè)計(jì)為了保證效率和查詢的便捷性,因此在每個(gè)表中創(chuàng)建兩個(gè)非聚集索引。 產(chǎn)品表的索引創(chuàng)建:在產(chǎn)品表中的查詢主要以編號(hào)和名稱為主,所以創(chuàng)建編號(hào)和名稱的索引。USE manage_newCREATE INDEX IX_pro_idON 產(chǎn)品(編號(hào))CREATE INDEX IX_pro_nameON 產(chǎn)品(名稱) 發(fā)票表索引創(chuàng)建:在發(fā)票表中的查詢主要以編號(hào)和用

17、戶為主,所以創(chuàng)建編號(hào)和用戶的索引。USE manage_newCREATE INDEX IX_Bill_idON 發(fā)票(編號(hào))CREATE INDEX IX_Bill_ClientnameON 發(fā)票(用戶) 客戶表索引創(chuàng)建:在產(chǎn)品表中的查詢主要以編號(hào)和姓名為主,所以創(chuàng)建編號(hào)和姓名的索引。USE manage_newCREATE INDEX IX_Client_idON 用戶信息(編號(hào))CREATE INDEX IX_Client_nameON 用戶信息(姓名)5.4建立數(shù)據(jù)庫 創(chuàng)建數(shù)據(jù)庫CREATE DATABASE manage_newON PRIMARY (Name=manage_new_

18、data,Filename='G:manage_new.mdf',Size=8MB,Maxsize=unlimited,Filegrowth=10%)LOG ON(Name=manage_new_log,Filename='G:manage_new.ldf',Size=3MB,Maxsize=50MB,Filegrowth=2MB) 創(chuàng)建數(shù)據(jù)表use managegocreate table 用戶信息(編號(hào) int identity primary key not null,姓名 varchar(50) not null,地址 varchar(100) not

19、null,電話 int not null,信用 char(10) not null,預(yù)付款 int not null)gocreate table 產(chǎn)品(編號(hào) int identity primary key not null,名稱 varchar(50) not null,規(guī)格 varchar(100) not null,單價(jià) decimal(18,2) not null,庫存 int not null)gocreate table 發(fā)票(編號(hào) int identity primary key not null,用戶 varchar(50) not null,日期 datetime not

20、null,產(chǎn)品 varchar(5) not null,單價(jià) decimal not null,數(shù)量 int not null,金額 decimal not null)5.5加載測(cè)試數(shù)據(jù)(1)向產(chǎn)品表中加載測(cè)試數(shù)據(jù)use managegoinsert into 產(chǎn)品(名稱,規(guī)格,單價(jià),庫存) values('聯(lián)想 G580A-ITH','系列: IdeaPad G580 Intel Core/酷睿 i3: i3-2370M顯卡型:獨(dú)立機(jī)械硬盤容量: 500G內(nèi)存容量: 2G',3080.00,200)insert into 產(chǎn)品(名稱,規(guī)格,單價(jià),庫存) val

21、ues('聯(lián)想 G480A-ISE ','系列: 揚(yáng)天V570 Intel Core/酷睿 i7: i7-3520M顯卡類型:獨(dú)立 機(jī)械硬盤容量: 500G 內(nèi)存容量: 4G',4150.00 ,193)insert into 產(chǎn)品(名稱,規(guī)格,單價(jià),庫存) values('聯(lián)想 G400AM-ISE ','系列: 揚(yáng)天V570 Intel Core/酷睿 i7: i7-3610QM顯卡類型: 獨(dú)立 機(jī)械硬盤容量: 500G 內(nèi)存容量: 4G',4580.00,150)insert into 產(chǎn)品(名稱,規(guī)格,單價(jià),庫存) val

22、ues('聯(lián)想 G505-ASI','系列: 揚(yáng)天V570 AMD APU: A6-4455M顯卡類型: 獨(dú)立機(jī)械硬盤容量: 500G 內(nèi)存容量: 4G',3150.00,292)insert into 產(chǎn)品(名稱,規(guī)格,單價(jià),庫存) values('聯(lián)想 G505-AFO ','系列: 揚(yáng)天V570 AMD APU: A4-4355M 顯卡類型: 獨(dú)立機(jī)械硬盤容量: 500G 內(nèi)存容量: 4G',2950.00,200)insert into 產(chǎn)品(名稱,規(guī)格,單價(jià),庫存) values('聯(lián)想 E49L(B960)&#

23、39;,'系列: 昭陽E47 Intel Pentium/奔騰: B950顯卡類型: 集成機(jī)械硬盤容量: 320G內(nèi)存容量: 2G',2200.00 ,199)(2)向發(fā)票表中加載測(cè)試數(shù)據(jù)use managegoselect * from 產(chǎn)品select * from 用戶信息select * from 發(fā)票declare i decimal(18,2),j decimal(18,2)select i=單價(jià) from 產(chǎn)品 where 名稱='聯(lián)想 G485G-ETH 'set j=i*2insert into 發(fā)票(日期,用戶,產(chǎn)品,單價(jià),數(shù)量,總金額)va

24、lues(2013-1-24,'陳二','聯(lián)想 G485G-ETH',2160.00,2,j)declare a decimal(18,2),b decimal(18,2)select a=單價(jià) from 產(chǎn)品 where 名稱='聯(lián)想 G500-IFI 'set b=a*1insert into 發(fā)票(日期,用戶,產(chǎn)品,單價(jià),數(shù)量,總金額)values(2013-3-20,'張三','聯(lián)想 G500-IFI',2160.00,1,b)declare n decimal(18,2),m decimal(18,2)s

25、elect n=單價(jià) from 產(chǎn)品 where 名稱='聯(lián)想 G580A-ITH 'set m=n*1insert into 發(fā)票(日期,用戶,產(chǎn)品,單價(jià),數(shù)量,總金額)values(2013-4-2,'孫七','聯(lián)想 G580A-ITH',2160.00,1,m)declare k decimal(18,2),l decimal(18,2)select k=單價(jià) from 產(chǎn)品 where 名稱='聯(lián)想 E49L(B960) 'set l=k*3insert into 發(fā)票(日期,用戶,產(chǎn)品,單價(jià),數(shù)量,總金額)values(

26、2013-4-15,'王五','聯(lián)想 E49L(B960)',2160.00,3,l)declare q decimal(18,2),p decimal(18,2)select q=單價(jià) from 產(chǎn)品 where 名稱='聯(lián)想 G505-AFO 'set p=q*2insert into 發(fā)票(日期,用戶,產(chǎn)品,單價(jià),數(shù)量,總金額)values(2013-6-25,'吳九','聯(lián)想 G505-AFO ',2160.00,3,p)(3)向用戶表中加載測(cè)試數(shù)據(jù)use managegoinsert into 產(chǎn)品(姓名

27、,地址,電話,信用,預(yù)付款) values('劉一','欽州',547786,'良',150)insert into 產(chǎn)品(姓名,地址,電話,信用,預(yù)付款) values('陳二','南寧',5463556,'優(yōu)',200)insert into 產(chǎn)品(姓名,地址,電話,信用,預(yù)付款) values('張三','柳州',5468385,'優(yōu)',350)insert into 產(chǎn)品(姓名,地址,電話,信用,預(yù)付款) values('李四'

28、,'桂林',5426368,'差',0)insert into 產(chǎn)品(姓名,地址,電話,信用,預(yù)付款) values('王五','南寧',5461258,'良',100)insert into 產(chǎn)品(姓名,地址,電話,信用,預(yù)付款) values('趙六','來賓',5469325,'差',280)insert into 產(chǎn)品(姓名,地址,電話,信用,預(yù)付款) values('孫七','河池',5469335,'差',8

29、0)insert into 產(chǎn)品(姓名,地址,電話,信用,預(yù)付款) values('周八','南寧',5464755,'良',150)insert into 產(chǎn)品(姓名,地址,電話,信用,預(yù)付款) values('吳九','柳州',5469385,'優(yōu)',400)insert into 產(chǎn)品(姓名,地址,電話,信用,預(yù)付款) values('鄭十','百色',5463235,'良',0)insert into 產(chǎn)品(姓名,地址,電話,信用,預(yù)付款) v

30、alues('張小小','來賓',5469393,'差',500)6.數(shù)據(jù)庫操作要求及實(shí)現(xiàn)6.1數(shù)據(jù)查詢操作 創(chuàng)建存儲(chǔ)過程,并通過執(zhí)行存儲(chǔ)過程來實(shí)現(xiàn)查詢(1)創(chuàng)建統(tǒng)計(jì)SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE total_money -統(tǒng)計(jì)總金額ASBEGINSET NOCOUNT ON;declare number_money int,money int,i int,j int;set money=0;set i=0;select number_money=coun

31、t(總金額) from 發(fā)票;while i<number_moneybeginselect j=總金額 from 發(fā)票set money=money+jset i=i+1endselect money as '總收入'ENDGOcreate procedure total_usename-統(tǒng)計(jì)總客戶asbeginset nocount on;declare number_peaple intselect number_peaple=count(姓名) from 用戶信息select number_peaple as '客戶總數(shù)'endgocreate p

32、rocedure total_proc-統(tǒng)計(jì)總產(chǎn)品asbeginset nocount on;declare number_proc intselect number_proc=count(名稱) from 產(chǎn)品select number_proc as '產(chǎn)品總數(shù)'endgocreate procedure total_lib-統(tǒng)計(jì)總庫存asbeginset nocount on;declare number_lib int,lib int,i int,j int;set lib=0;set i=0;select number_lib=count(庫存) from 產(chǎn)品;wh

33、ile i<number_libbeginselect j=庫存 from 產(chǎn)品set lib=lib+jset i=i+1endselect lib as '庫存總數(shù)'end(2)創(chuàng)建查詢SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE sl_pro_table -查詢產(chǎn)品表ASBEGINSET NOCOUNT ON;select * from 產(chǎn)品ENDGOcreate procedure sl_name_table-查詢用戶信息asbeginset nocount on;select * fr

34、om 用戶信息endgocreate procedure sl_bill_table-查詢發(fā)票asbeginselect * from 發(fā)票endgo6.2數(shù)據(jù)更新操作SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-添加用戶Create proc up_insert_user 姓名 varchar(50), 地址 varchar(100), 電話 int,信用 char(10),預(yù)付款 int,rtn varchar(50) output as declare tmp姓名 varchar(50), tmp地址 varchar(100), tmp電話

35、int,tmp信用 char(10),tmp預(yù)付款 intif exists(select * from 用戶信息 where 姓名=姓名) begin select tmp姓名=姓名,tmp地址=地址,tmp電話=電話, tmp信用=信用, tmp預(yù)付款=預(yù)付款 from 用戶信息 where 姓名=姓名 if (tmp姓名=姓名) and (tmp地址=地址) and (tmp電話=電話) and (tmp信用=信用) and (tmp預(yù)付款=預(yù)付款) ) begin set rtn='該用戶已經(jīng)存在' -有相同的數(shù)據(jù),直接返回值 end else begin update

36、 用戶信息 set 姓名=姓名,地址=地址,電話=電話, 信用=信用, 預(yù)付款=預(yù)付款 where 姓名=姓名 set rtn='更新該用戶信息成功' -有主鍵相同的數(shù)據(jù),進(jìn)行更新處理 end end else begin insert into 用戶信息(姓名,地址,電話,信用,預(yù)付款) values(姓名,地址,電話 ,信用 ,預(yù)付款 ) set rtn='成功添加新用戶' -沒有相同的數(shù)據(jù),進(jìn)行插入處理 end go-添加產(chǎn)品Create proc up_insert_proc 名稱 varchar(50), 規(guī)格 varchar(100), 單價(jià) dec

37、imal(18,2), 庫存 int,rtn varchar(50) output as declare tmp名稱 varchar(50), tmp規(guī)格 varchar(100), tmp單價(jià) decimal(18,2), tmp庫存 intif exists(select * from 產(chǎn)品 where 名稱=名稱) begin select tmp名稱=名稱,tmp規(guī)格=規(guī)格,tmp單價(jià)=單價(jià), tmp庫存=庫存 from 產(chǎn)品 where 名稱=名稱 if (tmp名稱=名稱) and (tmp規(guī)格=規(guī)格) begin set rtn='該產(chǎn)品已經(jīng)存在' -有相同的數(shù)據(jù)

38、,直接返回值 end else begin update 產(chǎn)品 set 名稱=名稱,規(guī)格=規(guī)格,單價(jià)=單價(jià), 庫存=庫存 where 名稱=名稱 set rtn='更新該產(chǎn)品信息成功' -有主鍵相同的數(shù)據(jù),進(jìn)行更新處理 end end else begin insert into 產(chǎn)品(名稱,規(guī)格,單價(jià),庫存) values(名稱,規(guī)格,單價(jià),庫存) set rtn='添加產(chǎn)品成功' -沒有相同的數(shù)據(jù),進(jìn)行插入處理 endgo-添加發(fā)票Create proc up_insert_bill 日期 datetime, 用戶 varchar(50), 產(chǎn)品 varch

39、ar(50),單價(jià) decimal(18,2), 數(shù)量 int,總金額 decimal(18,2),rtn varchar(50) output as declare tmp日期 datetime, tmp用戶 varchar(50), tmp產(chǎn)品 varchar(50),tmp單價(jià) decimal(18,2), tmp數(shù)量 int,tmp總金額 decimal(18,2) if exists(select * from 發(fā)票 where 用戶=用戶) begin select tmp日期=日期,tmp用戶=用戶,tmp產(chǎn)品=產(chǎn)品,tmp單價(jià)=單價(jià),tmp數(shù)量=數(shù)量,tmp總金額=總金額 from 發(fā)票 where 用戶=用戶 if (tmp日期=日期) and (tmp用戶=用戶) and (tmp產(chǎn)品=產(chǎn)品) and (tmp單價(jià)=單價(jià)) and (tmp數(shù)量=數(shù)量) begin set rtn='該發(fā)票已經(jīng)存在' -有相同的數(shù)據(jù),直接返回值 end else begin declare i intselect i=庫存 from 產(chǎn)品 where 名稱=產(chǎn)品update 產(chǎn)品 set 庫存=(i-數(shù)量) where 名稱=產(chǎn)品updat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論