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

下載本文檔

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

文檔簡介

1、 成 績09信計(jì)2011-2012(一)數(shù)據(jù)庫原理及應(yīng)用課程設(shè)計(jì)設(shè)計(jì)題目 醫(yī)藥銷售管理系統(tǒng) 設(shè)計(jì)時(shí)間 2011.12.29至 2012.1.4 學(xué)生姓名 學(xué)生學(xué)號 所在班級 指導(dǎo)教師 醫(yī)藥銷售管理系統(tǒng)一 可行性性研究近年來,中國醫(yī)藥行業(yè)迅速發(fā)展,藥店企業(yè)多業(yè)態(tài)經(jīng)營,倉儲式大型超市、中等規(guī)模超市、便利連鎖綜合發(fā)展。隨著規(guī)模的擴(kuò)大,傳統(tǒng)的醫(yī)藥管理已經(jīng)不能適應(yīng)發(fā)展的需要,很難在激烈的競爭中生存。通過對從事醫(yī)藥產(chǎn)品的零售、批發(fā)等工作企業(yè)的深入調(diào)查,發(fā)現(xiàn)其業(yè)務(wù)主要包括企業(yè)藥品銷售、出入庫管理、企業(yè)的財(cái)務(wù)、人事管理等。醫(yī)藥管理是一項(xiàng)瑣碎、復(fù)雜而又十分細(xì)致的工作。手工進(jìn)行企業(yè)日常的藥品銷售、出入庫的工作,容

2、易出現(xiàn)“開空單”的現(xiàn)象,且呆賬、錯(cuò)賬時(shí)有發(fā)生,而且費(fèi)時(shí)費(fèi)力。本系統(tǒng)在設(shè)計(jì)中考慮和克服了上述問題,實(shí)現(xiàn)了企業(yè)管理工作的系統(tǒng)化、規(guī)范化和自動化。二 系統(tǒng)需求分析2.1.1 系統(tǒng)目標(biāo)與要求要求本系統(tǒng)能夠投入實(shí)際的使用并且滿足基本的功能要求。要求具有較高的可靠性、安全性和易維護(hù)性,具有較高的可移植性。本系統(tǒng)實(shí)現(xiàn)了以下的功能:(1)基本信息模塊:包括藥品信息、員工信息、客戶信息、供應(yīng)商信息四個(gè)子模塊。(2)進(jìn)貨管理模塊:包括入庫登記、入庫登記查詢二個(gè)子模塊。(3)庫房管理模塊:包括庫存查詢、庫存盤點(diǎn)、退貨處理三個(gè)子模塊。(4)銷售管理模塊:包括銷售登記、銷售退貨、銷售報(bào)表查詢?nèi)齻€(gè)子模塊。(5)財(cái)務(wù)統(tǒng)計(jì)模

3、塊:包括當(dāng)日統(tǒng)計(jì)、當(dāng)月統(tǒng)計(jì)二個(gè)子模塊。(6)系統(tǒng)維護(hù)模塊:包括數(shù)據(jù)安全管理、操作員管理、權(quán)限設(shè)置三個(gè)模塊。說明:根據(jù)對現(xiàn)實(shí)中醫(yī)藥銷售管理業(yè)務(wù),將用戶分為二類超級管理員(經(jīng)理)、普通管理員(操作員)。2.1.2 系統(tǒng)分析用戶活動及活動圖(1)經(jīng)理主要參與活動有: 查詢銷售情況和財(cái)務(wù)狀況以便了解本企業(yè)的經(jīng)營狀況,作出相應(yīng)的決策; 管理員工,了解不同員工的上班時(shí)間和他的相關(guān)的業(yè)績; 客戶的管理,了解客戶的數(shù)量,注銷有問題的客戶; 供應(yīng)商的管理,了解供應(yīng)信息,選擇最合適的供應(yīng)商。(2)營業(yè)員主要活動有:醫(yī)藥銷售管理是指對藥品信息的錄入、更新、修改和刪除;查詢藥品信息,以了解是否有該藥品和庫存等信息;銷

4、售藥品,出庫記錄;退還藥品,入庫記錄;現(xiàn)金收支是指對進(jìn)出帳目的記錄統(tǒng)計(jì)。(3)顧客主要活動:查詢藥品信息;選購藥品。2.1.3 業(yè)務(wù)流程圖2.2 系統(tǒng)邏輯方案系統(tǒng)分析的主要成果是系統(tǒng)的邏輯模型。本系統(tǒng)的邏輯模型主要是以系統(tǒng)的數(shù)據(jù)流圖和數(shù)據(jù)字典為主要描述工具。即在無紙化網(wǎng)絡(luò)考試系統(tǒng)管理方式和業(yè)務(wù)流程進(jìn)行認(rèn)真分析和研究的基礎(chǔ)上,排除現(xiàn)有組織機(jī)構(gòu)和業(yè)務(wù)分工所造成的信息障礙。2.2.1 數(shù)據(jù)流程圖(DFD):數(shù)據(jù)流圖是組織中信息運(yùn)動的抽象。是在調(diào)研的基礎(chǔ)上,從系統(tǒng)的科學(xué)性、管理的合理性、實(shí)際運(yùn)動的可行性角度出發(fā)。將信息處理功能和彼此之間的聯(lián)系自頂向下,逐層分解,從邏輯上精確地描述系統(tǒng)應(yīng)具有的數(shù)據(jù)加工功

5、能、數(shù)據(jù)輸入、數(shù)據(jù)輸出、數(shù)據(jù)存儲及數(shù)據(jù)來源和去向(外部實(shí)體)等項(xiàng)目。在數(shù)據(jù)流程圖中可以很清楚的看到數(shù)據(jù)的流向,藥品信息的數(shù)據(jù)分別能夠流向經(jīng)理、員工和顧客。藥品銷售信息的信息也流經(jīng)理。藥品銷售信息記錄的是藥品銷售和退還的信息。顧客表信息從顧客流出又可以流回到顧客和員工、經(jīng)理。2.2.2 數(shù)據(jù)字典(簡稱DD)繪制DFD,只是對數(shù)據(jù)處理和彼此之間的聯(lián)系進(jìn)行了說明。為進(jìn)一步明確數(shù)據(jù)的詳細(xì)內(nèi)容和數(shù)據(jù)加工過程,應(yīng)將數(shù)據(jù)流圖中的全部數(shù)據(jù)流及其組成部分的數(shù)據(jù)元素,數(shù)據(jù)存儲,數(shù)據(jù)加工,通過數(shù)據(jù)字典描述清楚,以便于此后系統(tǒng)設(shè)計(jì)的進(jìn)行。這就需要開發(fā)人員編寫詳細(xì)的數(shù)據(jù)字典,來描述系統(tǒng)開發(fā)過程的細(xì)節(jié)。下面列出本系統(tǒng)中的

6、數(shù)據(jù)項(xiàng)、數(shù)據(jù)流、數(shù)據(jù)存儲、加工處理和數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)字典。數(shù)據(jù)字典可采用圖表格式或較緊湊的記錄格式描述,本文采用的是圖表格式。數(shù)據(jù)項(xiàng)的DD表列舉如下:表2.1 藥品編號的數(shù)據(jù)字典 數(shù) 據(jù) 項(xiàng)系統(tǒng)名:醫(yī)藥銷售管理系統(tǒng) 編號:I001 名稱:藥品編碼 別名: 數(shù)據(jù)項(xiàng)值: 類型:字符型 長度:6個(gè)字節(jié) 取值范圍:簡述:每種藥品都具有唯一的編號,它是某種藥品的唯一標(biāo)識符,每種藥品都有唯一的編號,如“011976”通常用前兩位數(shù)字表示入庫的年份,中間兩位表示類別,最后兩位表示該藥的序號。如果該類藥數(shù)超過100種時(shí),可用“0119A0”表示第100種藥。修改記錄:編寫日期審核日期表2.2 藥品名稱 數(shù) 據(jù)

7、項(xiàng)系統(tǒng)名:醫(yī)藥銷售管理系統(tǒng) 編號:I002 名稱:藥品名稱 別名:數(shù)據(jù)項(xiàng)值: 類型:字符型 長度:32個(gè)字節(jié) 取值范圍:簡述:每種藥品都具有唯一藥品標(biāo)識。修改記錄:編寫日期審核日期表2.3 密碼 數(shù) 據(jù) 項(xiàng)系統(tǒng)名:醫(yī)藥銷售管理系統(tǒng) 編號:I003 名稱:售價(jià) 別名:數(shù)據(jù)項(xiàng)值: 類型:數(shù)值型 長度:8個(gè)字節(jié) 取值范圍:簡述:每種藥品都要設(shè)置一個(gè)銷售價(jià)格。修改記錄:編寫日期審核日期三 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)設(shè)計(jì)3.1軟件系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)軟件系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)的主要任務(wù)就是將整個(gè)系統(tǒng)合理的劃分成各個(gè)功能模塊,正確處理模塊之間與模塊內(nèi)部的聯(lián)系及它們之間的調(diào)用關(guān)系和數(shù)據(jù)聯(lián)系,定義各模塊的內(nèi)部結(jié)構(gòu)等,本系統(tǒng)的軟件總

8、體結(jié)構(gòu)按分解協(xié)調(diào)的原則,信息隱蔽抽象的原則,自頂向下的原則,一致性原則,面向用戶的原則進(jìn)行設(shè)計(jì)。3.2數(shù)據(jù)存儲的總體設(shè)計(jì) 按用途分類可把本系統(tǒng)文件分成以下幾種:(1) 主文件:系統(tǒng)中的主文件是最重要的共享文件,主要存放具有固定值屬性的數(shù)據(jù)。它需要長期保存,并不斷更新。(2) 處理文件:處理文件包含下一次更新文件所需要的全部記錄,本系統(tǒng)中的處理文件如新聞登錄日志文件、待審核項(xiàng)目信息文件。3.3系統(tǒng)功能模塊設(shè)計(jì)通過對系統(tǒng)的數(shù)據(jù)流圖進(jìn)行分析,進(jìn)一步進(jìn)行功能分解,直到分解成含義明確,功能單一的功能模塊,從而得到系統(tǒng)的功能模塊結(jié)構(gòu)圖。3.4數(shù)據(jù)庫詳細(xì)設(shè)計(jì)3.4.1數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫的設(shè)計(jì)是指對一個(gè)給定的應(yīng)

9、用環(huán)境,構(gòu)造數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),滿足各種用戶需求。作為信息資源開發(fā)、管理和服務(wù)的一種有效的手段,數(shù)據(jù)庫技術(shù)的應(yīng)用已越來越廣泛,從小型的單項(xiàng)事務(wù)處理系統(tǒng)到大型的信息系統(tǒng)大都用先進(jìn)的數(shù)據(jù)庫技術(shù)來保持系統(tǒng)數(shù)據(jù)的安全性、完整性和共享性。對一個(gè)實(shí)際的系統(tǒng)來說,數(shù)據(jù)庫表的設(shè)計(jì)在遵循數(shù)據(jù)庫理論的同時(shí),必須能用開發(fā)工具來實(shí)現(xiàn)用戶在各方面提出的功能要求。 E-R圖:在系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)中,先要對系統(tǒng)分析得到的數(shù)據(jù)字典中的數(shù)據(jù)存儲進(jìn)行分析,分析各數(shù)據(jù)存儲之間的關(guān)系,然后才能得出系統(tǒng)的關(guān)系模式??梢圆捎肊-R圖的方法來進(jìn)行數(shù)據(jù)結(jié)構(gòu)分析,E-R設(shè)計(jì)方法是一種通過E-R圖來描述現(xiàn)實(shí)世界信息結(jié)構(gòu)的DB設(shè)計(jì)方

10、法。E-R圖由實(shí)體、屬性、聯(lián)系三部分組成。各分E-R圖說明如下: 經(jīng)理E-R圖: 供應(yīng)商E-R圖: 員工E-R圖: 藥品銷售清單E-R圖: 客戶E-R圖: 藥品E-R圖: 整體E-R圖: 關(guān)系模式與碼:藥品信息(藥品編號,藥品名稱,藥品類別代號,售價(jià),進(jìn)價(jià),庫存量,供應(yīng)商,有效期) 外碼:藥品類別代號、 供應(yīng)商藥品分類索引信息(藥品類別代號,類別說明)員工信息(員工號,姓名,用戶名,密碼,職位,權(quán)限)客戶信息(客戶號,客戶名稱,聯(lián)系人,聯(lián)系方式,客戶所在城市)供應(yīng)商信息(供應(yīng)商號,供應(yīng)商名稱,聯(lián)系人,聯(lián)系方式,供應(yīng)商所在城市)藥品銷售信息(銷售編碼,銷售日期,藥品編碼,藥品名稱,單價(jià),數(shù)量,供

11、應(yīng)商,總額,銷售員編碼) 外碼:銷售員編碼、藥品編碼 關(guān)系模式優(yōu)化: 在上述關(guān)系模式中,每一個(gè)分量都是不可分割的數(shù)據(jù)項(xiàng)所以都符合第一范式;而且前四個(gè)關(guān)系模式都是單個(gè)屬性作為碼,沒有任何非主屬性對碼部分函數(shù)依賴,在藥品銷售信息內(nèi)雖由三個(gè)屬性作為碼,但也不存在非主性對碼的部分函數(shù)依賴,所以上都符合第二范式;藥品信息、藥品類別索引、客戶信息、供應(yīng)商信息四個(gè)關(guān)系模式中都不存在非主屬性對碼的傳遞函數(shù)依賴,都屬于第三范式。在員工信息關(guān)系模式中,員工是按照權(quán)限分類的,職位不同權(quán)限也不同,這樣該關(guān)系模式就存在了非主屬性對碼的傳遞依賴:職工號-職位,職位-權(quán)限,所以就將用員工信息分解為如下現(xiàn)個(gè)模式:員工信息(員

12、工號,姓名,用戶名,用戶口令,職位)職位權(quán)限信息(職位,權(quán)限)本系統(tǒng)不考慮職工信息的管理,為了使銷售員編號與銷售員的職工號連系起來,并能通過職工姓名和職位來修改用戶信息所以把員工的部分信息(職工號,姓名,職位)和經(jīng)理(用戶名,密碼)合成了員工信息(員工號,姓名,用戶名,密碼,職位,權(quán)限)以便系統(tǒng)功能的實(shí)現(xiàn),所以在此不采用模式分解。藥品銷售信息中有大量的數(shù)據(jù)冗余,表達(dá)不明確,將其分解為如下兩個(gè)模式:藥品銷售主表(銷售編碼,銷售日期,銷售員編號,總金額)藥品銷售子表(銷售編碼,銷售日期,藥品編碼,藥品名稱,單價(jià),數(shù)量,供應(yīng)商) 數(shù)據(jù)庫設(shè)計(jì)對上述E-R圖所需的實(shí)體需要的幾個(gè)關(guān)鍵表的設(shè)計(jì)如下:表名:藥

13、品信息表字段名字段類型長度主鍵或外鍵字段值約束對應(yīng)中文屬性名MedicineCodeChar6Primary KeyNot Null藥品編碼MedicineNameVarchar32Not Null藥品名稱MedKindCodeChar10Foreign keyNot Null藥品類別代碼PriceMoney8售價(jià)ListPriceMoney8進(jìn)價(jià)NumberInt4庫存量FirmCodeChar10Foreign key供應(yīng)商UsefulllifeDatetime8有效期至表名:客戶信息字段名字段類型長度主鍵或外鍵字段值約束對應(yīng)中文屬性名GuestCodeChar10Primary KeyN

14、ot Null客戶編碼GuestNameVarchar16Not Null客戶名稱gLinkVarchar12聯(lián)系人gLinkTellVarchar11聯(lián)系方式CityVarchar8所在城市表名:供應(yīng)商信息字段名字段類型長度主鍵或外鍵字段值約束對應(yīng)中文屬性名FirmCodeChar10Primary KeyNot Null供應(yīng)商編碼FirmNameVarchar16Not Null供應(yīng)商名稱LinkVarchar12聯(lián)系人LinkTellVarchar11聯(lián)系電話CityVarchar8所在城市表名:藥品銷售主表字段名字段類型長度主鍵或外鍵字段值約束對應(yīng)中文屬性名SaleNoint4Prim

15、ary KeyNot Null銷售編碼WorkNoChar10Foreign keyNot Null銷售員編碼SaleDateDateTime8銷售日期AmountMoney8總金額表名:藥品銷售子表字段名字段類型長度主鍵或外鍵字段值約束對應(yīng)中文屬性名SaleNoint4Primary KeyNot Null銷售編碼MedicineCodeChar6Foreign keyNot Null藥品編碼MedicineNameVarchar32Not Null藥品名稱PriceMoney8售價(jià)NumberInt4數(shù)量UnitChar8單位AmountMoney8金額表名:藥品類別索引信息字段名字段類型

16、長度主鍵或外鍵字段值約束對應(yīng)中文屬性名MedKindCodeChar10Primary KeyNot Null藥品類別代碼KindExplanationVarchar12Not Null類別說明表名:員工信息字段名字段類型長度主鍵或外鍵字段值約束對應(yīng)中文屬性名WorkNoChar10Primary KeyNot Null職工號NameVarchar12姓名UserRegNameChar6Not Null用戶登錄名PasswordChar10Not Null用戶口令PositionChar10用戶身份PowerInt4用戶權(quán)限3.4.2 數(shù)據(jù)庫的完整性和安全性 數(shù)據(jù)庫的完整性數(shù)據(jù)庫的完整性是指數(shù)

17、據(jù)的正確性和相容性。數(shù)據(jù)庫管理系統(tǒng)(DBMS)用一定的機(jī)制來檢查數(shù)據(jù)庫中的數(shù)據(jù)是否滿足規(guī)定的條件完整性約束條件,數(shù)據(jù)的約束條件是語義的體現(xiàn),將作為模式的一部分存入數(shù)據(jù)庫中。本系統(tǒng)中定義了表與表之間的聯(lián)系有助于實(shí)現(xiàn)完整性規(guī)則,一般在程序中實(shí)現(xiàn)具體的完整性控制。實(shí)體完整性例如:CREATE TABLE MedInfor/*創(chuàng)建藥品信息表*/ (MedicineCode char(6) constraint M_PRIM PRIMARY KEY, MedicineName varchar(8) NOT NULL, MedKindeCode char(10) FOREIGN KEY REFERENCE

18、S MedID(MedKindeCode), Price Money(8), ListPrice Money(8), Number Int(4), FirmCode char(10) FOREIGN KEY REFERENCES FirmInfor(FirmCode), Userfulllife Datetime)參照完整性例如:create table sellMain/*創(chuàng)建醫(yī)藥銷售主表*/ (SaleNo int constraint SM_PRIM PRIMARY KEY, WorkNo char(10) FOREIGN KEY REFERENCES WorkInfor(WorkNo)

19、, SaleDate DateTime, Amount Money) 數(shù)據(jù)庫的安全性數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄漏、更改或破壞。在數(shù)據(jù)庫系統(tǒng)中,大量的數(shù)據(jù)集中存放,而且為許多用戶直接共享,是寶貴的信息資源,系統(tǒng)的安全保護(hù)措施就顯得更為重要,它保護(hù)數(shù)據(jù)庫防止惡意的破壞和非法的存取。本系統(tǒng)包括數(shù)據(jù)庫的安全和服務(wù)器的安全。采用管理員表示和鑒定的方法實(shí)現(xiàn)數(shù)據(jù)庫的安全,此安全管理措施并不在前臺開發(fā)工具中實(shí)現(xiàn),而是在后臺數(shù)據(jù)庫中實(shí)現(xiàn)。在登錄數(shù)據(jù)庫時(shí),系統(tǒng)讓管理員戶表示自己的身份,不同的管理員權(quán)限不同,系統(tǒng)進(jìn)行核實(shí),鑒別此管理員是否為合法用戶,若是,系統(tǒng)進(jìn)一步核實(shí)用戶,通常要

20、求用戶輸入口令,系統(tǒng)和對用戶口令以鑒別用戶身份。服務(wù)器的安全也是通過用戶在登錄服務(wù)器時(shí)輸入合法的用戶名和密碼來實(shí)現(xiàn)的。這是一種簡單可行的方法,實(shí)現(xiàn)起來比較方便。沒有采用更加復(fù)雜的系統(tǒng)安全管理措施是因?yàn)楸竟芾硐到y(tǒng)一般是應(yīng)用在校園網(wǎng)中,采用安全管理措施主要是為了防止沒有修改權(quán)限的用戶無意間修改了數(shù)據(jù),因此采用用戶標(biāo)識和鑒定的安全管理措施就能夠保障數(shù)據(jù)庫的安全性。四 數(shù)據(jù)庫的運(yùn)行(SQL Server2000語句完成)4.1創(chuàng)建醫(yī)藥銷售管理系統(tǒng)create database MedicalManagerSystem/*創(chuàng)建醫(yī)藥銷售管理系統(tǒng)*/use MedicalManagerSystem4.2創(chuàng)建

21、藥品類別索引信息表create table MedID/創(chuàng)建藥品類別索引信息表 (MedKindeCode char(10) constraint MI_PRI PRIMARY KEY, KindExplanation varchar(12) NOT NULL)其余略4.3建立存儲過程向表中插入、修改、刪除數(shù)據(jù) 插入數(shù)據(jù)的存儲過程 create proc MedID_procMedKindeCode char(10),KindExplanation varchar(12)asinsert into MedID (MedKindeCode,KindExplanation) values(MedK

22、indeCode ,KindExplanation )exec MedID_proc 0001,口腔潰瘍exec MedID_proc 0002,感冒exec MedID_proc 0003,發(fā)燒exec MedID_proc 0004,拉肚子exec MedID_proc 0005 ,外傷其余略 刪除數(shù)據(jù)的存儲過程 create proc MedID_delete_procMedKindeCode char(10)asdelete from MedId where MedKindeCode=MedKindeCodeexec MedID_delete_proc 0002其余略 修改數(shù)據(jù)的存儲過

23、程 create proc MedID_update_procMedKindeCode char(10),KindExplanation varchar(12),MedKindeCode1 char(10)asupdate MedID set MedKindeCode=MedKindeCode,KindExplanation=KindExplanation where MedKindeCode=MedKindeCode1其余略4.4建立存儲過程實(shí)現(xiàn)單表查詢 /*建立名為“單表查詢1”的存儲過程,用來查詢某種藥品的信息*/ create proc 單表查詢1MedicineCode char(6

24、)ASselect *from MedInfor where MedicineCode=MedicineCode建立存儲過程實(shí)現(xiàn)連接查詢 /*建立名為“連接查詢1”的存儲過程,用來查詢某個(gè)藥品名稱對應(yīng)的藥品類型的信息*/ create proc 連接查詢1MedicineName varchar(8)asselect MedicineName ,KindExplanationfrom MedInfor,MedIDwhere MedID.MedKindeCode=MedInfor.MedKindeCode and MedicineName=MedicineName/建立存儲過程實(shí)現(xiàn)嵌套查詢/*建

25、立名為“嵌套查詢1”的存儲過錯(cuò),用來查詢某類藥品的銷售量*/create proc 嵌套查詢1KindExplanation varchar(12)asselect Number from sellChild where MedicineCode In(select MedicineCode from MedID where KindExplanation=KindExplanation)/*建立名為“嵌套查詢2”的存儲過錯(cuò),用來查詢某個(gè)供應(yīng)商提供的商品*/create proc 嵌套查詢2FirmName varchar(16)asselect MedicineName from MedIn

26、for where FirmCode In (select FirmCode from FirmInfor where FirmName=FirmName)建立存儲過程實(shí)現(xiàn)集合查詢/*建立名為“集合查詢1”的存儲過錯(cuò),用來查詢提供某類商品的供應(yīng)商數(shù)*/create proc 集合查詢1MedicineName varchar(8)asselect avg(FirmCode) from FrimInfor where FirmCode in(select FirmCode from MedInfor,FrimInfor where MedInfor.FirmCode=FrimInfor.Firm

27、Code and MedicineName=MedicineName)4.5視圖建立由供應(yīng)商信息表“FirmInfor”建立一個(gè)視圖,該視圖由供應(yīng)商信息表的所有列構(gòu)成*/create view 供應(yīng)商信息(供應(yīng)商編碼,供應(yīng)商名稱,聯(lián)系人,聯(lián)系電話,所在城市)asselect* from FirmInfor4.6建立INSERT觸發(fā)器/*建立INSERT觸發(fā)器*/create trigger MedID_insert on MedIDfor insertas if(select count(*)from MedID_med,insertedwhere MedID_med.MedKindeCode

28、=inserted.MedKindeCode)=0rollback transaction4.7建立DELETE觸發(fā)器 create trigger delete_MedID on MedIDfor deleteasselect* from MedIDdeclare MedKindeCode char(10) select MedKindeCode=MedKindeCode from deleteddelete from MedIDwhere MedKindeCode=MedKindeCodeselect*from MedID4.8建立UPDATE觸發(fā)器 create trigger MedI

29、D_update on MedIDfor updateasif update(MedKindeCode)beginraiserror(you can not modify this column,16,1)rollback transactionend五 數(shù)據(jù)庫系統(tǒng)程序醫(yī)藥銷售管理系統(tǒng)SQL語句,如下:create database MedicalManagerSystem/*創(chuàng)建醫(yī)藥銷售管理系統(tǒng)*/use MedicalManagerSystemcreate table MedID/*創(chuàng)建藥品類別索引信息*/ (MedKindeCode char(10) constraint MI_PRI

30、PRIMARY KEY, KindExplanation varchar(12) NOT NULL)create table MedInfor/*創(chuàng)建藥品信息表*/ (MedicineCode char(6) constraint M_PRIM PRIMARY KEY, MedicineName varchar(8) NOT NULL, MedKindeCode char(10) FOREIGN KEY REFERENCES MedID(MedKindeCode), Price Money, ListPrice Money, Number Int, FirmCode char(10) FORE

31、IGN KEY REFERENCES FirmInfor(FirmCode), Userfulllife Datetime)create table GueInfor/*創(chuàng)建客戶信息表*/ (GuestCode char(10) constraint G_PRIM PRIMARY KEY, GuestName varchar(16) NOT NULl, GLink varchar(12), GLinkTell varchar(11), City varchar(8)create table FirmInfor/*創(chuàng)建供應(yīng)商信息表*/ (FirmCode char(10) constraint

32、F_PRIM PRIMARY KEY, FirmName varchar(16) NOT NULL, Link varchar(12), LinkTell varchar(11), City varchar(8)create table WorkInfor/*創(chuàng)建員工信息表*/ (WorkNo char(10) constraint W_PRIM PRIMARY KEY, Name varchar(12), UserRegName char(6) NOT NULL, Password char(10) NOT NULL, Position char(10), Power Int) create

33、 table sellMain/*創(chuàng)建醫(yī)藥銷售主表*/ (SaleNo int constraint SM_PRIM PRIMARY KEY, WorkNo char(10) FOREIGN KEY REFERENCES WorkInfor(WorkNo), SaleDate DateTime, Amount Money)create table sellChild/*創(chuàng)建醫(yī)藥銷售子表*/ (SaleNo int constraint SC_PRIM PRIMARY KEY, MedicineCode char(6) FOREIGN KEY REFERENCES MedInfor(Medici

34、neCode), MedicineName varchar(32) NOT NULL, Price Money, Number Int, Uint char(8), Amount Money) /*插入數(shù)據(jù)的存儲過程 */create proc MedID_procMedKindeCode char(10),KindExplanation varchar(12)asinsert into MedID (MedKindeCode,KindExplanation) values(MedKindeCode ,KindExplanation )exec MedID_proc 0001,口腔潰瘍exec

35、 MedID_proc 0002,感冒exec MedID_proc 0003,發(fā)燒exec MedID_proc 0004,拉肚子exec MedID_proc 0005 ,外傷create proc MedInfor_procMedicineCode char(6),MedicineName varchar(8),MedKindeCode char(10),Price money,ListPrice money,Number int,FirmCode char(10),Userfulllife Datetimeasinsert into MedInfor(MedicineCode ,Med

36、icineName,MedKindeCode,Price,ListPrice,Number,Supplicer,Userfulllife) values(MedicineCode,MedicineName,MedKindeCode,Price,ListPrice,Number,FirmCode,Userfulllife)exec MedInfor_proc 1001,板藍(lán)根,0002,5,3,100,014,2010-12-5exec MedInfor_proc 2002,四季感康,0002,14,10.5,150,051,2010-12-12exec MedInfor_proc 2003,銀

37、黃顆粒,0002,12,8.8, 120 ,014,2012-10-6exec MedInfor_proc 2004,感冒清熱軟膠囊,0002,17,12, 150,015, 2011-11-1exec MedInfor_proc 3001,阿斯匹林,0003,15,11,100,014,2010-12-1exec MedInfor_proc 3002,布洛芬,0003,21,17.5,120,051,2010-6-5exec MedInfor_proc 4001,瀉利挺,0004,25,20,120,015,2012-10-2exec MedInfor_proc 4002,諾氟沙星膠囊,00

38、04,15,12,100,015,2012-9-16exec MedInfor_proc 5001,碘酒,0005,5,2.5,50 ,051,2012-10-12exec MedInfor_proc 5002,創(chuàng)口貼,0005,2,1,250,014,2015-5-1create proc GueInfor_procGuestCode char(10),GuestName varchar(16),GLink varchar(12),GLinkTell varchar(11),City varchar(8)asinsert into GueInfor(GuestCode,GuestName,G

39、Link,GLinkTell,City) values(GuestCode,GuestName,GLink,GLinkTell,City)exec GueInfor_proc 015112,zhangsan,xiaozhang,668401,jiaxingexec GueInfor_proc 065114,lisi,xiaofang,614425,yuyaoexec GueInfor_proc 052114,wangwu,xiaowu,659024,wenzhouexec GueInfor_proc 043115,zhaoliu,xiaowu,615874,shangyuexec GueInf

40、or_proc 014221,awu,xiaozhang,651283,linanexec GueInfor_proc 025471,asha,xiaofang,691472,dongyangcreate proc FirmInfor_procFirmCode char(10),FirmName varchar(16),Link varchar(12),LinkTell varchar(11),City varchar(8)asinsert into FirmInfor(FirmCode,FirmName,Link,LinkTell,City)values(FirmCode,FirmName,

41、Link,LinkTell,City)exec FirmInfor_proc 015,yangshengtang,xiaotai,681472,huzhouexec FirmInfor_proc 014,baozhilin,zhangqing,658421,deqingexec FirmInfor_proc 051,pinmingdayaofang,oudan,65417,xiangshancreate proc WorkInfor_procWorkNo char(10),Name varchar(12),UserRegName char(6),Password char(10),Positi

42、on char(10),Power Intasinsert into WorkInfor(WorkNo,Name,UserRegName,Password,Position,Power)values(WorkNo,Name,UserRegName,Password,Position,Power)exec WorkInfor_proc 075101,ZKL,zkl01,456789,jingli,exec WorkInfor_proc 075201,ZJM,zjm01,123789,dongshi,exec WorkInfor_proc 075215,WMX,wmx05,147258,xiaom

43、i,exec WorkInfor_proc 075120,ZZW,zzm20,123456,buzhang,create proc sellMain_procSaleNo int,WorkNo char(10),SaleDate DateTime,Amount Moneyasinsert into sellMain(SaleNo,WorkNo,SaleDate,Amount)values(SaleNo,WorkNo,SaleDate,Amount)exec sellMain_proc 12,075101,2009-1-1,1000exec sellMain_proc 13,075201,200

44、9-1-1,1500exec sellMain_proc 15,075215,2009-1-1,800exec sellMain_proc 20,075120,2009-1-1,1200alter proc sellChild_procSaleNo int,MedicineCode char(6),MedicineName varchar(32),Price Money,Number Int,Uint char(8),Amount Moneyasinsert into sellChild(SaleNo,MedicineCode,MedicineName,Price,Number,Uint,Am

45、ount)values(SaleNo,MedicineCode,MedicineName,Price,Number,Uint,Amount)exec sellChild_proc 13,1001,板藍(lán)根,5,20,bao,100exec sellChild_proc 15,2002,四季感康,14,15,he,210exec sellChild_proc 20,3001,阿斯匹林,15,20,he,300/*刪除數(shù)據(jù)的存儲過程*/ create proc MedID_delete_procMedKindeCode char(10)asdelete from MedId where MedKin

46、deCode=MedKindeCodeexec MedID_delete_proc 0002create proc MedInfor_delete_procMedicineName varchar(8)asdelete from MedInfor where MedicineName=MedicineNamecreate proc GueInfor_delete_procGuestCode char(10) asdelete from GueInforwhere GuestCode=GuestCodecreate proc FirmInfor_delete_procFirmCode char(

47、10)asdelete from FirmInforwhere FirmCode=FirmCodecreate proc WorkInfor_delete_procWorkNo char(10)asdelete from WorkInforwhere WorkNo=WorkNocreate proc sellMain_delete_procSaleNo intasdelete from sellMainwhere SaleNo=SaleNocreate proc sellChild_delete_procSaleNo intasdelete from sellChildwhere SaleNo

48、=SaleNo/*修改數(shù)據(jù)的存儲過程*/ create proc MedID_update_procMedKindeCode char(10),KindExplanation varchar(12),MedKindeCode1 char(10)asupdate MedID set MedKindeCode=MedKindeCode,KindExplanation=KindExplanation where MedKindeCode=MedKindeCode1exec MedID_update_proc 0002,感冒,0001create proc MedInfor_update_procMe

49、dicineCode1 char(6),MedicineName varchar(8),MedKindeCode char(10),Price money,ListPrice money,Number int,FirmCode char(10),Userfulllife Datetime,MedicineCode char(6)asupdate MedInforset MedicineCode=MedicineCode1,MedicineName=MedicineName,MedKindeCode=MedKindeCode,Price=Price,ListPrice=ListPrice,Number=Number,FirmCode=FirmCode,Userfulllife=Userfulllife,MedicineCode=MedicineCodewhere MedKindeCode=MedKindeCode create proc GueInfor_update_procGuestCode1 char(10),GuestName varchar(16),GLink varchar(12),GLinkT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論