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

2、易出現(xiàn)“開(kāi)空單”的現(xiàn)象,且呆賬、錯(cuò)賬時(shí)有發(fā)生,而且費(fèi)時(shí)費(fèi)力。本系統(tǒng)在設(shè)計(jì)中考慮和克服了上述問(wèn)題,實(shí)現(xiàn)了企業(yè)管理工作的系統(tǒng)化、規(guī)范化和自動(dòng)化。二 系統(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)貨管理模塊:包括入庫(kù)登記、入庫(kù)登記查詢二個(gè)子模塊。(3)庫(kù)房管理模塊:包括庫(kù)存查詢、庫(kù)存盤點(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è)模塊。說(shuō)明:根據(jù)對(duì)現(xiàn)實(shí)中醫(yī)藥銷售管理業(yè)務(wù),將用戶分為二類超級(jí)管理員(經(jīng)理)、普通管理員(操作員)。2.1.2 系統(tǒng)分析用戶活動(dòng)及活動(dòng)圖(1)經(jīng)理主要參與活動(dòng)有: 查詢銷售情況和財(cái)務(wù)狀況以便了解本企業(yè)的經(jīng)營(yíng)狀況,作出相應(yīng)的決策; 管理員工,了解不同員工的上班時(shí)間和他的相關(guān)的業(yè)績(jī); 客戶的管理,了解客戶的數(shù)量,注銷有問(wèn)題的客戶; 供應(yīng)商的管理,了解供應(yīng)信息,選擇最合適的供應(yīng)商。(2)營(yíng)業(yè)員主要活動(dòng)有:醫(yī)藥銷售管理是指對(duì)藥品信息的錄入、更新、修改和刪除;查詢藥品信息,以了解是否有該藥品和庫(kù)存等信息;銷

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

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

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

7、項(xiàng)系統(tǒng)名:醫(yī)藥銷售管理系統(tǒng) 編號(hào):I002 名稱:藥品名稱 別名:數(shù)據(jù)項(xiàng)值: 類型:字符型 長(zhǎng)度:32個(gè)字節(jié) 取值范圍:簡(jiǎn)述:每種藥品都具有唯一藥品標(biāo)識(shí)。修改記錄:編寫(xiě)日期審核日期表2.3 密碼 數(shù) 據(jù) 項(xiàng)系統(tǒng)名:醫(yī)藥銷售管理系統(tǒng) 編號(hào):I003 名稱:售價(jià) 別名:數(shù)據(jù)項(xiàng)值: 類型:數(shù)值型 長(zhǎng)度:8個(gè)字節(jié) 取值范圍:簡(jiǎn)述:每種藥品都要設(shè)置一個(gè)銷售價(jià)格。修改記錄:編寫(xiě)日期審核日期三 數(shù)據(jù)庫(kù)系統(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ù)存儲(chǔ)的總體設(shè)計(jì) 按用途分類可把本系統(tǒng)文件分成以下幾種:(1) 主文件:系統(tǒng)中的主文件是最重要的共享文件,主要存放具有固定值屬性的數(shù)據(jù)。它需要長(zhǎng)期保存,并不斷更新。(2) 處理文件:處理文件包含下一次更新文件所需要的全部記錄,本系統(tǒng)中的處理文件如新聞登錄日志文件、待審核項(xiàng)目信息文件。3.3系統(tǒng)功能模塊設(shè)計(jì)通過(guò)對(duì)系統(tǒng)的數(shù)據(jù)流圖進(jìn)行分析,進(jìn)一步進(jìn)行功能分解,直到分解成含義明確,功能單一的功能模塊,從而得到系統(tǒng)的功能模塊結(jié)構(gòu)圖。3.4數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)3.4.1數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)的設(shè)計(jì)是指對(duì)一個(gè)給定的應(yīng)

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

10、法。E-R圖由實(shí)體、屬性、聯(lián)系三部分組成。各分E-R圖說(shuō)明如下: 經(jīng)理E-R圖: 供應(yīng)商E-R圖: 員工E-R圖: 藥品銷售清單E-R圖: 客戶E-R圖: 藥品E-R圖: 整體E-R圖: 關(guān)系模式與碼:藥品信息(藥品編號(hào),藥品名稱,藥品類別代號(hào),售價(jià),進(jìn)價(jià),庫(kù)存量,供應(yīng)商,有效期) 外碼:藥品類別代號(hào)、 供應(yīng)商藥品分類索引信息(藥品類別代號(hào),類別說(shuō)明)員工信息(員工號(hào),姓名,用戶名,密碼,職位,權(quán)限)客戶信息(客戶號(hào),客戶名稱,聯(lián)系人,聯(lián)系方式,客戶所在城市)供應(yīng)商信息(供應(yīng)商號(hào),供應(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è)屬性作為碼,沒(méi)有任何非主屬性對(duì)碼部分函數(shù)依賴,在藥品銷售信息內(nèi)雖由三個(gè)屬性作為碼,但也不存在非主性對(duì)碼的部分函數(shù)依賴,所以上都符合第二范式;藥品信息、藥品類別索引、客戶信息、供應(yīng)商信息四個(gè)關(guān)系模式中都不存在非主屬性對(duì)碼的傳遞函數(shù)依賴,都屬于第三范式。在員工信息關(guān)系模式中,員工是按照權(quán)限分類的,職位不同權(quán)限也不同,這樣該關(guān)系模式就存在了非主屬性對(duì)碼的傳遞依賴:職工號(hào)-職位,職位-權(quán)限,所以就將用員工信息分解為如下現(xiàn)個(gè)模式:?jiǎn)T工信息(員

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

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

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

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

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

17、據(jù)的正確性和相容性。數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)用一定的機(jī)制來(lái)檢查數(shù)據(jù)庫(kù)中的數(shù)據(jù)是否滿足規(guī)定的條件完整性約束條件,數(shù)據(jù)的約束條件是語(yǔ)義的體現(xiàn),將作為模式的一部分存入數(shù)據(jù)庫(kù)中。本系統(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ù)庫(kù)的安全性數(shù)據(jù)庫(kù)的安全性是指保護(hù)數(shù)據(jù)庫(kù)以防止不合法的使用所造成的數(shù)據(jù)泄漏、更改或破壞。在數(shù)據(jù)庫(kù)系統(tǒng)中,大量的數(shù)據(jù)集中存放,而且為許多用戶直接共享,是寶貴的信息資源,系統(tǒng)的安全保護(hù)措施就顯得更為重要,它保護(hù)數(shù)據(jù)庫(kù)防止惡意的破壞和非法的存取。本系統(tǒng)包括數(shù)據(jù)庫(kù)的安全和服務(wù)器的安全。采用管理員表示和鑒定的方法實(shí)現(xiàn)數(shù)據(jù)庫(kù)的安全,此安全管理措施并不在前臺(tái)開(kāi)發(fā)工具中實(shí)現(xiàn),而是在后臺(tái)數(shù)據(jù)庫(kù)中實(shí)現(xiàn)。在登錄數(shù)據(jù)庫(kù)時(shí),系統(tǒng)讓管理員戶表示自己的身份,不同的管理員權(quán)限不同,系統(tǒng)進(jìn)行核實(shí),鑒別此管理員是否為合法用戶,若是,系統(tǒng)進(jìn)一步核實(shí)用戶,通常要

20、求用戶輸入口令,系統(tǒng)和對(duì)用戶口令以鑒別用戶身份。服務(wù)器的安全也是通過(guò)用戶在登錄服務(wù)器時(shí)輸入合法的用戶名和密碼來(lái)實(shí)現(xiàn)的。這是一種簡(jiǎn)單可行的方法,實(shí)現(xiàn)起來(lái)比較方便。沒(méi)有采用更加復(fù)雜的系統(tǒng)安全管理措施是因?yàn)楸竟芾硐到y(tǒng)一般是應(yīng)用在校園網(wǎng)中,采用安全管理措施主要是為了防止沒(méi)有修改權(quán)限的用戶無(wú)意間修改了數(shù)據(jù),因此采用用戶標(biāo)識(shí)和鑒定的安全管理措施就能夠保障數(shù)據(jù)庫(kù)的安全性。四 數(shù)據(jù)庫(kù)的運(yùn)行(SQL Server2000語(yǔ)句完成)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建立存儲(chǔ)過(guò)程向表中插入、修改、刪除數(shù)據(jù) 插入數(shù)據(jù)的存儲(chǔ)過(guò)程 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ù)的存儲(chǔ)過(guò)程 create proc MedID_delete_procMedKindeCode char(10)asdelete from MedId where MedKindeCode=MedKindeCodeexec MedID_delete_proc 0002其余略 修改數(shù)據(jù)的存儲(chǔ)過(guò)

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建立存儲(chǔ)過(guò)程實(shí)現(xiàn)單表查詢 /*建立名為“單表查詢1”的存儲(chǔ)過(guò)程,用來(lái)查詢某種藥品的信息*/ create proc 單表查詢1MedicineCode char(6

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

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

26、for where FirmCode In (select FirmCode from FirmInfor where FirmName=FirmName)建立存儲(chǔ)過(guò)程實(shí)現(xiàn)集合查詢/*建立名為“集合查詢1”的存儲(chǔ)過(guò)錯(cuò),用來(lái)查詢提供某類商品的供應(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ù)庫(kù)系統(tǒng)程序醫(yī)藥銷售管理系統(tǒng)SQL語(yǔ)句,如下: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ù)的存儲(chǔ)過(guò)程 */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ù)的存儲(chǔ)過(guò)程*/ 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ù)的存儲(chǔ)過(guò)程*/ 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. 本站所有資源如無(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ù)網(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)論