首先創(chuàng)建數(shù)據(jù)庫,并建立各個表之間的主外鍵約束等,并插入數(shù)據(jù)。
create database 醫(yī)院信息管理系統(tǒng)
on(
name=醫(yī)院信息管理系統(tǒng),
filename='D:\數(shù)據(jù)庫課程設(shè)計\醫(yī)院信息管理系統(tǒng)\醫(yī)院信息管理系統(tǒng).mdf',
size=5,
filegrowth=1
)
log on
( name=醫(yī)院信息管理系統(tǒng)_log,
filename='D:\數(shù)據(jù)庫課程設(shè)計\醫(yī)院信息管理系統(tǒng)\醫(yī)院信息管理系統(tǒng)_log.ldf',
size=2,
maxsize=30,
filegrowth=10%
)
use 醫(yī)院信息管理系統(tǒng)
go
create table 醫(yī)生表
(醫(yī)生編號 char(15) not null primary key,
姓名 char(10) not null unique,
性別 char(5) null,
年齡 int null,
職稱 char(11) null,
科室號 char(20) null)
go
alter table 醫(yī)生表
add constraint ys_zc default '醫(yī)師' for 職稱
go
alter table 醫(yī)生表
add constraint fk_ks foreign key(科室號) references 科室表(科室號)
go
create table 科室表
(科室號 char(20) not null primary key,
科室名 char(10) not null ,
科室地址 char(20) null,
科室電話 char(10) null,
科室主任 char(10) null)
go
create table 病人表
(病歷號 char(15) not null primary key,
姓名 char(10) not null,
性別 char(5) null,
年齡 int null,
病房號 char(15) null,
醫(yī)生姓名 char(10) null,
血型 char(4) null,
確診結(jié)果 char(10)null,
科室號 char(20) null)
go
alter table 病人表
add constraint fk_ksh foreign key(科室號) references 科室表(科室號)
go
create table 病房表
(病房號 char(15) not null primary key,
床位數(shù) int null,
病房地址 char(20) null,
科室號 char(20) null)
go
alter table 病人表
add constraint fk_bfh foreign key(病房號) references 病房表(病房號)
go
alter table 病房表
add constraint fk_sk foreign key(科室號) references 科室表(科室號)
go
create table 護(hù)士表
(護(hù)士編號 char(15) not null primary key,
姓名 char(10) not null,
性別 char(5) null,
年齡 int null,
科室號 char(20) null)
go
alter table 護(hù)士表
add constraint fk_skh foreign key(科室號) references 科室表(科室號)
go
create table 分配表
( 病房號 char(15) not null,
護(hù)士編號 char(15) not null,
primary key (病房號,護(hù)士編號),
foreign key(病房號) references 病房表(病房號),
foreign key(護(hù)士編號) references 護(hù)士表(護(hù)士編號))
go
insert into 科室表(科室號,科室名,科室地址,科室電話,科室主任)
values('101','內(nèi)科','A1101','10001','高飛'),
('102','外科','A1102','10002','李想'),
('103','兒科','A1103','10003','鄧楊'),
('104','婦科','A1104','10004','劉宇'),
('105','神經(jīng)科','A1105','10005','白皓'),
('201','腦外科','A1201','20001','宋思琪'),
('202','泌尿科','A1202','20002','孫怡'),
('203','骨科','A1203','20003','楊子龍'),
('204','內(nèi)分泌科','A1204','20004','張子怡'),
('205','口腔科','A1205','20005','郭易曼'),
('301','眼科','A1301','30001','王陸明'),
('302','耳喉鼻科','A1302','30002','韓子琦'),
('303','皮膚科','A1303','30003','徐若鴻'),
('304','心臟外科','A1304','30004','李麗'),
('305','胸外科','A1305','30005','陳若玉')
go
insert into 醫(yī)生表(醫(yī)生編號,姓名,性別,年齡,職稱,科室號)
values('101001','高飛','男','30','主任醫(yī)師','101'),
('101002','楊蕾','女','24','住院醫(yī)師','101'),
('101003','齊風(fēng)','男','27','主治醫(yī)師','101'),
('101004','李想','女','45','主任醫(yī)師','102'),
('101005','朱珠','女','30','主治醫(yī)師','102'),
('101006','陸風(fēng)','男','35','主治醫(yī)師','102'),
('101007','鄧楊','男','30','主治醫(yī)師','103'),
('101008','程悅','女','28','副主治醫(yī)師','103'),
('101009','劉宇','女','40','副主任醫(yī)師','104'),
('101010','劉子怡','女','34','主治醫(yī)師','104'),
('101011','白皓','男','58','主任醫(yī)師','105'),
('101012','蘇楠','女','32','主治醫(yī)師','105'),
('101013','宋思琪','女','50','主任醫(yī)師','201'),
('101014','陸大明','男','24','住院醫(yī)師','201'),
('101015','孫怡','女','33','主治醫(yī)師','202'),
('101016','劉楠','男','33','主治醫(yī)師','202'),
('101017','楊子龍','男','35','主治醫(yī)師','203'),
('101018','焦丹','女','23','住院醫(yī)師','203'),
('101019','張子怡','女','38','副主任醫(yī)師','204'),
('101020','李娟','女','32','主治醫(yī)師','204'),
('101021','郭易曼','女','35','主治醫(yī)師','205'),
('101022','劉曉','男','22','住院醫(yī)師','205'),
('101023','王陸明','男','36','主治醫(yī)師','301'),
('101024','張珍','女','29','副主治醫(yī)師','301'),
('101025','韓子琦','男','31','主治醫(yī)師','302'),
('101026','喬芳','女','31','主治醫(yī)師','302'),
('101027','徐若鴻','男','49','主任醫(yī)師','303'),
('101028','陸磊','男','31','主治醫(yī)師','303'),
('101029','李麗','女','51','主任醫(yī)師','304'),
('101030','高濤','男','31','主治醫(yī)師','304'),
('101031','陳若玉','女','39','副主任醫(yī)師','305'),
('101032','劉思雨','女','30','主治醫(yī)師','305')
go
insert into 病房表(病房號,床位數(shù),病房地址,科室號)
values('001','4','B1001','101'),
('002','5','B1002','101'),
('003','1','B1003','102'),
('004','2','B1004','102'),
('005','0','B1005','103'),
('006','3','B1006','103'),
('007','2','B1007','104'),
('008','3','B1008','105'),
('009','1','B1009','105'),
('010','2','B1010','201'),
('011','1','B1011','201'),
('012','3','B1012','202'),
('013','2','B1013','203'),
('014','2','B1014','204'),
('015','1','B1015','204'),
('016','5','B1016','205'),
('017','2','B1017','301'),
('018','1','B1018','302'),
('019','3','B1019','303'),
('020','1','B1020','303'),
('021','2','B1021','304'),
('022','1','B1022','304'),
('023','3','B1023','305'),
('024','2','B1024','305')
go
select *
from 科室表
go
select *
from 醫(yī)生表
go
select 醫(yī)生表.姓名 , 科室名
from 醫(yī)生表 join 科室表
on 醫(yī)生表.科室號=科室表.科室號
go
use 醫(yī)院信息管理系統(tǒng)
go
insert into 病人表(病歷號,姓名,性別,年齡,病房號,醫(yī)生姓名,血型,確診結(jié)果,科室號)
values('21101','王勝安','男','31','001','齊風(fēng)','A','肺炎','101'),
('21102','蔡壯保','男','54','002','高飛','B','慢性氣管炎','101'),
('21103','易江偉','男','28','003','陸風(fēng)','O','自發(fā)性氣胸','102'),
('21104','張順谷','男','32','004','朱珠','AB','膽道結(jié)石','102'),
('21105','李鑫灝','男','8','006','鄧楊','A','細(xì)菌性痢疾','103'),
('21106','梁澄靜','女','8','006','程悅','A','諾如腹瀉','103'),
('21107','時黨舒','女','26','007','劉宇','B','宮頸炎','104'),
('21108','何剛名','男','66','008','白皓','O','腦梗塞','105'),
('21109','嚴(yán)席華','男','58','008','蘇楠','B','腦出血','105'),
('21110','劉鮮發(fā)','男','32','010','宋思琪','A','腦積水','201'),
('21111','何毅','男','35','010','陸大明','O','腦膿腫','201'),
('21112','唐宸禹','男','38','011','宋思琪','B','顱腦外傷','201'),
('21113','張順聯(lián)','男','50','012','劉楠','A','泌尿結(jié)石','202'),
('21114','湯青','女','29','012','孫怡','B','急性腎炎','202'),
('21115','柯纖栩','女','34','013','焦丹','AB','腰間盤突出','203'),
('21116','夏萊','女','30','014','張子怡','B','電解質(zhì)紊亂','204'),
('21117','杜鵑','女','28','015','李娟','A','內(nèi)分泌紊亂','204'),
('21118','張洪赫','男','25','016','郭易曼','B','慢性牙周炎','205'),
('21119','池慕穎','女','26','016','劉曉','AB','口腔白斑','205'),
('21120','齊芬霞','女','69','017','王陸明','O','白內(nèi)障','301'),
('21121','盧全旭','男','66','017','張珍','A','青光眼','301'),
('21122','卓互知','男','45','018','韓子琦','AB','中耳炎','302'),
('21123','元感奇','男','16','019','徐若鴻','O','扁平疣','303'),
('21124','秦長樂','男','32','020','陸磊','B','皮膚癬','303'),
('21125','丘寸心','男','48','021','李麗','O','血胸','304'),
('21126','路從風(fēng)','男','18','022','高濤','B','漏斗胸','304'),
('21127','王浩','男','29','023','陳若玉','A','胸部異物','305'),
('21128','潘奕','女','30','024','劉思雨','AB','胸腔積液','305')
go
insert into 護(hù)士表(護(hù)士編號,姓名,性別,年齡,科室號)
values('110101','夏一柳','女','25','101'),
('110102','席夢榮','女','28','101'),
('110103','李文倩','女','22','102'),
('110104','繞詹林','男','24','102'),
('110105','吳申萌','女','29','103'),
('110106','田甜','女','23','103'),
('110107','高悅?cè)?,'女','25','104'),
('110108','劉子諾','女','21','104'),
('110109','張以諾','女','22','105'),
('110110','趙佳宇','女','22','105'),
('110111','張怡銘','女','35','201'),
('110112','蔣欣芹','女','26','201'),
('110113','馬航鈺','女','30','202'),
('110114','蘇芷璇','女','25','202'),
('110115','王曉甜','女','24','203'),
('110116','陳子媛','女','26','203'),
('110117','董璇','女','21','204'),
('110118','孫玉','女','23','204'),
('110119','李婉婷','女','28','205'),
('110120','宋雨涵','女','31','205'),
('110121','鄧夢琪','女','24','301'),
('110122','崔佳玉','女','26','301'),
('110123','郭星瞳','女','24','302'),
('110124','郭思羽','女','23','302'),
('110125','王雨橙','女','28','303'),
('110126','劉子琳','女','27','303'),
('110127','李雨霏','女','29','304'),
('110128','陸嘉晨','女','24','304'),
('110129','張馨予','女','23','305'),
('110130','劉欣悅','女','27','305')
go
insert into 分配表(病房號,護(hù)士編號)
values('001','110101'),
('002','110102'),
('003','110103'),
('004','110104'),
('005','110105'),
('006','110106'),
('007','110107'),
('007','110108'),
('008','110109'),
('009','110110'),
('010','110111'),
('011','110112'),
('012','110113'),
('012','110114'),
('013','110115'),
('013','110116'),
('014','110117'),
('015','110118'),
('016','110119'),
('016','110120'),
('017','110121'),
('017','110122'),
('018','110123'),
('018','110124'),
('019','110125'),
('020','110126'),
('021','110127'),
('022','110128'),
('023','110129'),
('024','110130')
go
此時數(shù)據(jù)庫已經(jīng)建立好了,下面進(jìn)行數(shù)據(jù)庫的基本操作。
use 醫(yī)院信息管理系統(tǒng)
insert into 病人表(病歷號,姓名,性別,年齡,病房號,醫(yī)生姓名,血型,確診結(jié)果)
values('21129','張淦','男','25','024','劉思雨','O','胸腔積液')
go
delete
from 病人表
where 病歷號='21129'
go
update 護(hù)士表
set 年齡='26'
where 姓名='夏一柳'
go
select 病歷號,病人表.姓名,病人表.性別,病人表.年齡,病房號,血型,醫(yī)生姓名,職稱,醫(yī)生表.科室號
from 病人表 join 醫(yī)生表
on 病人表.醫(yī)生姓名=醫(yī)生表.姓名
where 確診結(jié)果='腦積水'
go
select 科室號,COUNT(護(hù)士編號) as '護(hù)士人數(shù)'
from 護(hù)士表
group by 科室號
go
select 科室號,COUNT(病房號) as '病房數(shù)'
from 病房表
group by 科室號
having(COUNT(病房號))>1
go
select AVG(年齡) as '全體醫(yī)生平均年齡'
from 醫(yī)生表
go
select 姓名,年齡
from 病人表
order by 年齡 desc
go
select 護(hù)士編號,姓名,YEAR(GETDATE())-年齡 as '出生日期'
from 護(hù)士表
go
select 護(hù)士表.護(hù)士編號,病房號,姓名
from 護(hù)士表 join 分配表
on 護(hù)士表.護(hù)士編號=分配表.護(hù)士編號
go
select 病歷號,病人表.姓名,病人表.性別,血型,病房號,醫(yī)生姓名,職稱,醫(yī)生表.科室號,科室表.科室名,科室表.科室地址
from 病人表 join 醫(yī)生表
on 病人表.醫(yī)生姓名=醫(yī)生表.姓名
join 科室表
on 醫(yī)生表.科室號=科室表.科室號
go
create view v_pyk
as
select 病歷號,病人表.姓名,病人表.性別,血型,病房號,醫(yī)生姓名,職稱,醫(yī)生表.科室號,科室表.科室名,科室表.科室地址
from 病人表 join 醫(yī)生表
on 病人表.醫(yī)生姓名=醫(yī)生表.姓名
join 科室表
on 醫(yī)生表.科室號=科室表.科室號
go
select *
from v_pyk
go
update v_pyk
set 病房號='021'
where 病歷號='21126'
go
create proc pr_inf @pr varchar(20)
as
select 病人表.姓名,病人表.性別,血型,醫(yī)生姓名,醫(yī)生編號,確診結(jié)果
from 病人表 join 醫(yī)生表
on 病人表.醫(yī)生姓名=醫(yī)生表.姓名
where 病人表.姓名 like @pr
go
exec pr_inf '張%'
use 醫(yī)院信息管理系統(tǒng)
go
alter proc hs_bf @hno char(6),@bno char(10) output ,@bed varchar(10) output
as
select @bno=分配表.病房號,@bed=床位數(shù)
from 分配表 join 病房表
on 病房表.病房號=分配表.病房號
where 護(hù)士編號 =@hno
set @bed=convert(varchar,@bed)
go
declare @bno1 char(10),@bed1 varchar(10)
exec hs_bf '110101',@bno1 output ,@bed1 output
print '病房號'+@bno1
print '床位數(shù)'+@bed1
go
use 醫(yī)院信息管理系統(tǒng)
go
alter trigger tri_br
on 病人表
after delete,update
as
declare @sno char(10) ,@cno char (10)
select @sno =病歷號 from deleted
select @cno=病房號 from deleted
delete from 病人表 where 病歷號=@sno
update 病房表
set 床位數(shù)=床位數(shù)+1
where @cno = 病房表.病房號
go
delete from 病人表 where 病歷號='21102'
go
下面是各個表的實(shí)體圖
?
?
?
?下面是數(shù)據(jù)流圖
?下面是醫(yī)院管理E-R圖
下面是醫(yī)院功能結(jié)構(gòu)圖
1.設(shè)計任務(wù)?
1.1系統(tǒng)開發(fā)背景概述
隨著計算機(jī)技術(shù)的飛速發(fā)展,計算機(jī)在醫(yī)院管理中應(yīng)用的普及,利用計算機(jī)實(shí)現(xiàn)醫(yī)院管理勢在必行。對于大中型醫(yī)院來說,利用計算機(jī)支持醫(yī)院高效率完成勞動醫(yī)院管理的日常事務(wù),就是適應(yīng)現(xiàn)代醫(yī)院管理制度要求、推動醫(yī)院管理走向科學(xué)化、規(guī)范化的必要條件。
目前市面上流行的信息管理系統(tǒng)不少。但就是,對于中型醫(yī)院的醫(yī)院管理系統(tǒng)來說,不需要大型的數(shù)據(jù)庫系統(tǒng)。只需要一個操作方便,功能實(shí)用,能滿足本中心對數(shù)據(jù)的管理及需求的系統(tǒng)。我們的目標(biāo)就就是在于開發(fā)一個功能實(shí)用、操作方便,簡單明了的醫(yī)院管理系統(tǒng)。能夠錄入醫(yī)院的基本資料,在操作上能夠完成諸如添加、修改、刪除、按各種條件進(jìn)行查詢、新用戶的設(shè)置及密碼修改等方面的工作,基本滿足人事日常業(yè)務(wù)的需要。團(tuán)隊完成了此課題的研究與開發(fā),包括分析、設(shè)計、編碼、測試、文檔編寫等內(nèi)容。
1.2系統(tǒng)開發(fā)的目的與意義
隨著現(xiàn)代化社會的發(fā)展,為了抓住機(jī)遇,在競爭中占得先機(jī),作為管理企業(yè)的一個必不可少的重要環(huán)節(jié)—在線管理的信息化、計算機(jī)化也就迫在眉捷了。開發(fā)在線管理信息系統(tǒng)即有宏觀上的意義,那就就是順應(yīng)時代信息化、現(xiàn)代化潮流,提高效益,促進(jìn)國民經(jīng)濟(jì)管理的結(jié)構(gòu)優(yōu)化;也有微觀上的意義,那就就是可以提高管理的現(xiàn)代化程序,加強(qiáng)管理的信息化手段,提高工作效率,增加單位效益。
電子計算機(jī)與通信技術(shù)的快速發(fā)展使人類已經(jīng)逐漸地進(jìn)入信息化社會。信息與材料、能源一樣成為一種社會的基本生產(chǎn)資料,在人類的社會生產(chǎn)活動中發(fā)揮著重要的作用。當(dāng)前,醫(yī)院還面臨著越來越激烈的市場競爭、要想在競爭中取勝,也必須采用先進(jìn)的管理方法與手段。一個規(guī)劃周詳、設(shè)計先進(jìn)的計算機(jī)信息管理網(wǎng)絡(luò)系統(tǒng)就是取得競爭勝利的必備手段。通過實(shí)現(xiàn)先進(jìn)的計算機(jī)網(wǎng)絡(luò)化管理,能為領(lǐng)導(dǎo)層的管理與決策及時提供可靠的數(shù)字依據(jù),使管理更合理、更先進(jìn);減少人力、物力資源的浪費(fèi),降低成本;提高工作效率,提高管理效率;提高經(jīng)濟(jì)效益,從而提高醫(yī)院的整體競爭力。建立以人事管理為中心的醫(yī)院信息網(wǎng)絡(luò)管理系統(tǒng),以適應(yīng)醫(yī)院長期快速發(fā)展的需要,更重要的就是能使患者在醫(yī)院得到更加滿意的治療。
2 需求分析
2.1信息要求
?圖2-1醫(yī)院信息系統(tǒng)的功能模塊圖
本課程設(shè)計模擬一般醫(yī)院的信息管理情況,方便對醫(yī)院信息的查詢。經(jīng)過充分的調(diào)研,確定本系統(tǒng)應(yīng)對病人基本信息、科室基本信息、醫(yī)生基本信息、病房基本信息、護(hù)士基本信息、護(hù)士的分配情況進(jìn)行管理,本系統(tǒng)主要要求為:
- 能夠全面的管理病人基本信息、科室基本信息、醫(yī)生基本信息、病房基本信息、護(hù)士基本信息以及護(hù)士分配信息。
- 本系統(tǒng)可以方便維護(hù)各種信息。
- 本系統(tǒng)能夠方便查詢各個信息表的基本信息。
- 能夠方便實(shí)現(xiàn)多個信息表的連接查詢、嵌套查詢。
- 本系統(tǒng)能夠?qū)崿F(xiàn)有用信息的查詢統(tǒng)計。
- 本系統(tǒng)能夠?qū)崿F(xiàn)有用信息的輸出。
2.2數(shù)據(jù)流圖
?
????圖2-2醫(yī)院信息管理數(shù)據(jù)流圖
2.3數(shù)據(jù)字典
數(shù)據(jù)字典是指對數(shù)據(jù)的數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理邏輯、外部實(shí)體等五個部分進(jìn)行定義和描述,其目的是對數(shù)據(jù)流程圖中的各個元素做出詳細(xì)的說明。本次實(shí)驗(yàn)主要對數(shù)據(jù)字典的數(shù)據(jù)項(xiàng)進(jìn)行分析。如表2所示:
表2數(shù)據(jù)項(xiàng)
序號 |
數(shù)據(jù)項(xiàng) |
數(shù)據(jù)類型 |
長度 |
備注 |
1 |
醫(yī)生編號 |
CHAR |
6 |
醫(yī)生的工作編號 |
2 |
姓名 |
VARCHAR |
20 |
醫(yī)生的姓名 |
3 |
性別 |
CHAR |
2 |
醫(yī)生的性別 |
4 |
年齡 |
INT |
醫(yī)生的年齡 |
|
5 |
職稱 |
VARCHAR |
20 |
醫(yī)生的職稱 |
6 |
科室號 |
CHAR |
3 |
醫(yī)生的科室號 |
7 |
病歷號 |
CHAR |
5 |
病人的病歷號 |
8 |
姓名 |
VARCHAR |
20 |
病人的姓名 |
9 |
性別 |
CHAR |
2 |
病人的性別 |
10 |
年齡 |
INT |
病人的年齡 |
|
11 |
病房號 |
CHAR |
3 |
病人的病房號 |
13 |
血型 |
VARCHAR |
2 |
病人的血型 |
14 |
科室號 |
CHAR |
3 |
病人的所屬科室 |
15 |
確診結(jié)果 |
VARCHAR |
20 |
病人的診斷報告 |
16 |
科室號 |
CHAR |
3 |
科室的編號 |
17 |
科室名 |
VARCHAR |
20 |
科室的名字 |
18 |
科室地址 |
VARCHAR |
20 |
科室的地址 |
19 |
科室電話 |
VARCHAR |
10 |
科室的電話 |
20 |
科室主任 |
VARCHAR |
20 |
科室的主任 |
21 |
病房號 |
CHAR |
3 |
病房的編號 |
22 |
床位數(shù) |
INT |
病房的床位數(shù) |
|
23 |
科室號 |
CHAR |
3 |
病房的所屬科室 |
24 |
病房地址 |
VARCHAR |
20 |
病房的地址 |
25 |
護(hù)士編號 |
CHAR |
6 |
護(hù)士的編號 |
26 |
姓名 |
VARCHAR |
20 |
護(hù)士的姓名 |
27 |
性別 |
CHAR |
2 |
護(hù)士的性別 |
28 |
年齡 |
INT |
護(hù)士的年齡 |
|
29 |
科室號 |
CHAR |
3 |
護(hù)士的所屬科室 |
3?概念結(jié)構(gòu)設(shè)計
3.1醫(yī)院信息系統(tǒng)實(shí)體屬性
醫(yī)院醫(yī)生的實(shí)體屬性,主要包括醫(yī)生的醫(yī)生編號,姓名,性別,年齡,科室號,職稱。如圖3-1醫(yī)生實(shí)體屬性圖所示:
??圖3-1醫(yī)生實(shí)體屬性圖
醫(yī)院科室的實(shí)體屬性,主要包括科室的科室號,科室名,科室地址,科室電話,科室主任;如圖3-2科室實(shí)體屬性圖所示:
?圖3-3病房實(shí)體屬性圖
醫(yī)院護(hù)士的實(shí)體屬性,主要包括護(hù)士編號,姓名,性別,年齡,科室號。如圖3-4護(hù)士實(shí)體屬性圖所示:?
醫(yī)院病人的實(shí)體屬性圖,主要包括病歷號,姓名,性別,年齡,確診結(jié)果,醫(yī)生姓名,病房號,血型,科室號。如圖3-5病人實(shí)體屬性圖所示:?
3.2總E-R圖
醫(yī)院信息管理總E-R圖,如圖3-6總E-R圖所示:
4 邏輯結(jié)構(gòu)設(shè)計
4.1關(guān)系模式:
醫(yī)生(醫(yī)生編號、姓名、性別、年齡、職稱、所屬科室號)
病人(病歷號、姓名、性別、年齡、病房號、醫(yī)生姓名、血型、所屬科室號、診斷)
科室(科室號、科室名、科室地址、科室電話、科室主任)
病房(病房號、床位號、所屬科室號、病房地址)
護(hù)士(護(hù)士編號、姓名、性別、年齡、所屬病房號)
5 物理結(jié)構(gòu)設(shè)計
5.1數(shù)據(jù)關(guān)系模式的優(yōu)化:
對于1對N關(guān)系的掛號,可以在病人模式中加入科室號屬性。
對于1對N關(guān)系的屬于,可以在醫(yī)生模式中加入科室號屬性。
對于1對N關(guān)系的擁有,可以在病房模式中加入科室號屬性。
這樣得到優(yōu)化的關(guān)系模式:
病人(病歷號、姓名、性別、年齡、病房號、醫(yī)生姓名、血型、確診結(jié)果、科室號)
醫(yī)生(醫(yī)生編號、姓名、性別、年齡、職稱、科室號)
病房(病房號、床位號、病房地址、科室號)
對于N對M的關(guān)系模式,可以生成一個新的模式:
分配(病房號、護(hù)士編號)
對于優(yōu)化后的關(guān)系模式:
醫(yī)生(醫(yī)生編號、姓名、性別、年齡、職稱、科室號)
病人(病歷號、姓名、性別、年齡、病房號、醫(yī)生姓名、血型、確診結(jié)果、科室號)
科室(科室號、科室名、科室地址、科室電話、科室主任)
病房(病房號、床位號、病房地址、科室號)
護(hù)士(護(hù)士編號、姓名、性別、年齡、科室號)
分配(病房號、護(hù)士編號)
分析,關(guān)系模式的每個關(guān)系都是不可再分的原子值,即為第一范式,又因?yàn)槊總€非主屬性都不傳遞依賴于模式的候選鍵,因此該模式集為第三范式。
通過優(yōu)化后關(guān)系模式得出醫(yī)生表:
表4.1醫(yī)生基本信息表
列名 |
數(shù)據(jù)類型 |
字段大小 |
是否為空 |
備注 |
醫(yī)生編號 |
CHAR |
6 |
NOT |
主鍵 |
姓名 |
VARCHAR |
20 |
NOT |
|
性別 |
CHAR |
2 |
NOT |
|
年齡 |
INT |
NOT |
||
職稱 |
VARCHAR |
20 |
YES |
|
科室號 |
CHAR |
3 |
YES |
外鍵 |
通過優(yōu)化后關(guān)系模式得出病人表:
表4.2病人基本信息表
列名 |
數(shù)據(jù)類型 |
字段大小 |
是否為空 |
備注 |
病歷號 |
CHAR |
5 |
NOT |
主鍵 |
姓名 |
VARCHAR |
20 |
NOT |
|
性別 |
CHAR |
2 |
NOT |
|
年齡 |
INT |
NOT |
||
病房號 |
CHAR |
3 |
YES |
|
醫(yī)生姓名 |
VARCHAR |
??????20 |
YES |
|
血型 |
CHAR |
2 |
YES |
|
確診結(jié)果 |
VARCHAR |
20 |
YES |
|
科室號 |
CHAR |
3 |
YES |
外鍵 |
通過優(yōu)化后關(guān)系模式得出科室表:
表4.3科室基本信息表
列名 |
數(shù)據(jù)類型 |
字段大小 |
是否為空 |
備注 |
科室號 |
CHAR |
3 |
NOT |
主鍵 |
科室名 |
VARCHAR |
20 |
NOT |
|
科室地址 |
VARCHAR |
20 |
YES |
|
科室電話 |
VARCHAR |
10 |
YES |
|
科室主任 |
VARCHAR |
20 |
YES |
通過優(yōu)化后關(guān)系模式得出病房表:
表4.4病房基本信息表
列名 |
數(shù)據(jù)類型 |
字段大小 |
是否為空 |
備注 |
病房號 |
CHAR |
3 |
NOT |
主鍵 |
床位數(shù) |
INT |
YES |
||
病房地址 |
VARCHAR |
20 |
YES |
|
科室號 |
CHAR |
3 |
YES |
外鍵 |
通過優(yōu)化后關(guān)系模式得出護(hù)士表:
表4.5護(hù)士基本信息表
列名 |
數(shù)據(jù)類型 |
字段大小 |
是否為空 |
備注 |
護(hù)士編號 |
CHAR |
6 |
NOT |
主鍵 |
姓名 |
VARCHAR |
20 |
NOT |
|
性別 |
CHAR |
2 |
NOT |
|
年齡 |
INT |
NOT |
||
科室號 |
CHAR |
3 |
YES |
外鍵 |
通過優(yōu)化后關(guān)系模式得出分配表:
表4.6護(hù)士分配表
列名 |
數(shù)據(jù)類型 |
字段大小 |
是否為空 |
備注 |
病房號 |
CHAR |
3 |
NOT |
主鍵、外鍵 |
護(hù)士編號 |
CHAR |
6 |
NOT |
主鍵、外鍵 |
5.2設(shè)計結(jié)構(gòu)的內(nèi)容
??由于用戶最終通過某一特定的DBMS使用數(shù)據(jù)庫,因此數(shù)據(jù)的物理結(jié)構(gòu)設(shè)計必須結(jié)合具體的DBMS進(jìn)行,主要包括選擇數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取方法兩個方面。
5.2.1確定存儲結(jié)構(gòu)
?數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計與特定的硬件環(huán)境、DBMS及實(shí)施環(huán)境密切相關(guān),數(shù)據(jù)庫的配置也是確定物理結(jié)構(gòu)的重要內(nèi)容,包括數(shù)據(jù)庫空間的分配、日志文件大小、數(shù)據(jù)字典空間的確定以及相關(guān)參數(shù)的設(shè)置等。
5.2.2選擇存取方法
數(shù)據(jù)庫的存取方法有索引、聚簇等方法。
1.索引的選擇
?一般來說對下列的情況的屬性列建立索引:
查詢頻繁的屬性列。
經(jīng)常出現(xiàn)在鏈接操作中的屬性列。
WHERE、ORDER、GROUP ?BYD等句子中的屬性列。
不宜建立索引的屬性列:
不出現(xiàn)或很少在查詢條件出現(xiàn)的屬性列。
屬性值很少的列。
經(jīng)常需要更新的列。
經(jīng)常需要更新或含有記錄較少的數(shù)據(jù)表的屬性列。
2.聚簇的選擇
聚簇是改進(jìn)系統(tǒng)性能的另一種技術(shù),聚簇分為以下3種情況:
分段。按屬性分組,將文件在垂直方向進(jìn)行分解。
分區(qū)。將文件進(jìn)行水平分解,按照記錄存取頻度進(jìn)行分組。
聚簇。從不同的關(guān)系中取出某些屬性物理地存儲在一起,以改變連接查詢的效率。
5.3?評價物理結(jié)構(gòu)
??物理結(jié)構(gòu)滿足設(shè)計的需求,在時間和空間方面有很大的效率,可以進(jìn)入數(shù)據(jù)庫實(shí)施階段,數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計都需要經(jīng)過反復(fù)測試、不斷優(yōu)化。
6 數(shù)據(jù)庫實(shí)施
完成分析與結(jié)構(gòu)優(yōu)化以后,開始數(shù)據(jù)庫的實(shí)施階段,本章主要以數(shù)據(jù)庫的創(chuàng)建,數(shù)據(jù)表的增、刪、改、查,視圖的創(chuàng)建以及存儲過程的創(chuàng)建為內(nèi)容。
6.1數(shù)據(jù)庫的創(chuàng)建
create?database?醫(yī)院信息管理系統(tǒng)
on(
?name=醫(yī)院信息管理系統(tǒng),
?filename='D:\數(shù)據(jù)庫課程設(shè)計\醫(yī)院信息管理系統(tǒng)\醫(yī)院信息管理系統(tǒng).mdf',
?size=5,
?filegrowth=1
?)
?log?on
?(?name=醫(yī)院信息管理系統(tǒng)_log,
??filename='D:\數(shù)據(jù)庫課程設(shè)計\醫(yī)院信息管理系統(tǒng)\醫(yī)院信息管理系統(tǒng)_log.ldf',
??size=2,
??maxsize=30,
??filegrowth=10%
??)
6.2表的創(chuàng)建
6.2.1科室表的創(chuàng)建
use?醫(yī)院信息管理系統(tǒng)
create?table?科室表
???(科室號?char(3)?not?null?primary?key,
????科室名?varchar(20)??not?null?,
????科室地址?varchar?(20)?null,
????科室電話?varchar?(10)?null,
????科室主任?varchar?(10)?null)
????go
6.2.2醫(yī)生表的創(chuàng)建
create?table?醫(yī)生表
??(醫(yī)生編號?char(6)?not?null?primary?key,
???姓名?varchar?(20)?not?null?unique,
???性別?char(2)??not?null,
???年齡?int?not?null,
???職稱?varchar?(20)?null,
???科室號?char(3)?null)
???go
???alter?table?醫(yī)生表
???add?constraint?ys_zc?default?'醫(yī)師'?for?職稱
???go
???alter?table?醫(yī)生表
???add?constraint?fk_ks?foreign?key(科室號)?references?科室表(科室號)
???go
6.2.3病人表的創(chuàng)建
create?table?病人表
????(病歷號?char(5)?not?null?primary?key,
?????姓名??varchar?(20)?not?null,
?????性別?char(2)?not?null,
?????年齡?int?not?null,
?????病房號?char(3)?null,
?????醫(yī)生姓名?varchar?(20)?null,
?????血型?char(2)?null,
?????確診結(jié)果?varchar?(20)null,
?????科室號?char(3)?null)
????go
????alter?table?病人表
????add?constraint?fk_ksh?foreign?key(科室號)?references?科室表(科室號)
go文章來源:http://www.zghlxwxcb.cn/news/detail-795105.html
??alter?table?病人表
????add?constraint?fk_bfh?foreign?key(病房號)?references?病房表(病房號)
????go
6.2.4病房表的創(chuàng)建
create?table?病房表
????(病房號?char(3)??not?null?primary?key,
?????床位數(shù)?int?null,?
?????病房地址?varchar?(20)?null,
?????科室號?char(3)?null)
????go
????alter?table?病房表
????add?constraint?fk_sk?foreign?key(科室號)?references?科室表(科室號)
go
6.2.5護(hù)士表的創(chuàng)建
create?table?護(hù)士表
????(護(hù)士編號?char(6)?not?null?primary?key,
?????姓名??varchar?(20)?not?null,
?????性別?char(2) not?null,
?????年齡?int?not?null,
?????科室號?char(3)?null)
?????go
?????alter?table?護(hù)士表
?????add?constraint?fk_skh?foreign?key(科室號)?references?科室表(科室號)
?????go
6.2.6分配表的創(chuàng)建
create?table?分配表
?????(?病房號?char(3)?not?null,
???????護(hù)士編號?char(6)?not?null,
???????primary?key (病房號,護(hù)士編號),
???????foreign?key(病房號)?references?病房表(病房號),
???????foreign?key(護(hù)士編號)?references?護(hù)士表(護(hù)士編號))?
??????go
6.3表的數(shù)據(jù)插入
6.3.1科室表插入數(shù)據(jù)
insert?into?科室表(科室號,科室名,科室地址,科室電話,科室主任)
values('101','內(nèi)科','A1101','A1-10001','高飛'),
('102','外科','A1102','?A1-10002','李想'),
('103','兒科','A1103','?A1-10003','鄧楊'),
('104','婦科','A1104','?A1-10004','劉宇'),
('105','神經(jīng)科','A1105','?A1-10005','白皓'),
('201','腦外科','A1201','?A1-20001','宋思琪'),
('202','泌尿科','A1202','?A1-20002','孫怡'),
('203','骨科','A1203','?A1-20003','楊子龍'),
('204','內(nèi)分泌科','A1204','?A1-20004','張子怡'),
('205','口腔科','A1205','?A1-20005','郭易曼'),
('301','眼科','A1301','?A1-30001','王陸明'),
('302','耳喉鼻科','A1302','?A1-30002','韓子琦'),
('303','皮膚科','A1303','?A1-30003','徐若鴻'),
('304','心臟外科','A1304','?A1-30004','李麗'),
('305','胸外科','A1305','?A1-30005','陳若玉')
Go
6.3.2醫(yī)生表插入數(shù)據(jù)
insert?into?醫(yī)生表(醫(yī)生編號,姓名,性別,年齡,職稱,科室號)
values('101001','高飛','男',30,'主任醫(yī)師','101'),
('101002','楊蕾','女',24,'住院醫(yī)師','101'),
('101003','齊風(fēng)','男',27,'主治醫(yī)師','101'),
('101004','李想','女',45,'主任醫(yī)師','102'),
('101005','朱珠','女',30,'主治醫(yī)師','102'),
('101006','陸風(fēng)','男',35,'主治醫(yī)師','102'),
('101007','鄧楊','男',30,'主治醫(yī)師','103'),
('101008','程悅','女',28,'副主治醫(yī)師','103'),
('101009','劉宇','女',40,'副主任醫(yī)師','104'),
('101010','劉子怡','女',34,'主治醫(yī)師','104'),
('101011','白皓','男',58,'主任醫(yī)師','105'),
('101012','蘇楠','女',32,'主治醫(yī)師','105'),
('101013','宋思琪','女',50,'主任醫(yī)師','201'),
('101014','陸大明','男',24,'住院醫(yī)師','201'),
('101015','孫怡','女',33,'主治醫(yī)師','202'),
('101016','劉楠','男',33,'主治醫(yī)師','202'),
('101017','楊子龍','男',35,'主治醫(yī)師','203'),
('101018','焦丹','女',23,'住院醫(yī)師','203'),
('101019','張子怡','女',38,'副主任醫(yī)師','204'),
('101020','李娟','女',32,'主治醫(yī)師','204'),
('101021','郭易曼','女',35,'主治醫(yī)師','205'),
('101022','劉曉','男',22,'住院醫(yī)師','205'),
('101023','王陸明','男',36,'主治醫(yī)師','301'),
('101024','張珍','女',29,'副主治醫(yī)師','301'),
('101025','韓子琦','男',31,'主治醫(yī)師','302'),
('101026','喬芳','女',31,'主治醫(yī)師','302'),
('101027','徐若鴻','男',49,'主任醫(yī)師','303'),
('101028','陸磊','男',31,'主治醫(yī)師','303'),
('101029','李麗','女',51,'主任醫(yī)師','304'),
('101030','高濤','男',31,'主治醫(yī)師','304'),
('101031','陳若玉','女',39,'副主任醫(yī)師','305'),
('101032','劉思雨','女',30,'主治醫(yī)師','305')
Go
6.3.3病房表插入數(shù)據(jù)
insert?into?病房表(病房號,床位數(shù),病房地址,科室號)
values('001',4,'B1001','101'),
('002',5,'B1002','101'),
('003',1,'B1003','102'),
('004',2,'B1004','102'),
('005',0,'B1005','103'),
('006',3,'B1006','103'),
('007',2,'B1007','104'),
('008',3,'B1008','105'),
('009',1,'B1009','105'),
('010',2,'B1010','201'),
('011',1,'B1011','201'),
('012',3,'B1012','202'),
('013',2,'B1013','203'),
('014',2,'B1014','204'),
('015',1,'B1015','204'),
('016',5,'B1016','205'),
('017',2,'B1017','301'),
('018',1,'B1018','302'),
('019',3,'B1019','303'),
('020',1,'B1020','303'),
('021',2,'B1021','304'),
('022',1,'B1022','304'),
('023',3,'B1023','305'),
('024',2,'B1024','305')
go
6.3.4病人表插入數(shù)據(jù)
insert?into?病人表(病歷號,姓名,性別,年齡,病房號,醫(yī)生姓名,血型,確診結(jié)果,科室號)
values('21101','王勝安','男',31,'001','齊風(fēng)','A','肺炎','101'),
('21102','蔡壯保','男',54,'002','高飛','B','慢性氣管炎','101'),
('21103','易江偉','男',28,'003','陸風(fēng)','O','自發(fā)性氣胸','102'),
('21104','張順谷','男',32,'004','朱珠','AB','膽道結(jié)石','102'),
('21105','李鑫灝','男',8,'006','鄧楊','A','細(xì)菌性痢疾','103'),
('21106','梁澄靜','女',8,'006','程悅','A','諾如腹瀉','103'),
('21107','時黨舒','女',26,'007','劉宇','B','宮頸炎','104'),
('21108','何剛名','男',66,'008','白皓','O','腦梗塞','105'),
('21109','嚴(yán)席華','男',58,'008','蘇楠','B','腦出血','105'),
('21110','劉鮮發(fā)','男',32,'010','宋思琪','A','腦積水','201'),
('21111','何毅','男',35,'010','陸大明','O','腦膿腫','201'),
('21112','唐宸禹','男',38,'011','宋思琪','B','顱腦外傷','201'),
('21113','張順聯(lián)','男',50,'012','劉楠','A','泌尿結(jié)石','202'),
('21114','湯青','女',29,'012','孫怡','B','急性腎炎','202'),
('21115','柯纖栩','女',34,'013','焦丹','AB','腰間盤突出','203'),
('21116','夏萊','女',30,'014','張子怡','B','電解質(zhì)紊亂','204'),
('21117','杜鵑','女',28,'015','李娟','A','內(nèi)分泌紊亂','204'),
('21118','張洪赫','男',25,'016','郭易曼','B','慢性牙周炎','205'),
('21119','池慕穎','女',26,'016','劉曉','AB','口腔白斑','205'),
('21120','齊芬霞','女',69,'017','王陸明','O','白內(nèi)障','301'),
('21121','盧全旭','男',66,'017','張珍','A','青光眼','301'),
('21122','卓互知','男',45,'018','韓子琦','AB','中耳炎','302'),
('21123','元感奇','男',16,'019','徐若鴻','O','扁平疣','303'),
('21124','秦長樂','男',32,'020','陸磊','B','皮膚癬','303'),
('21125','丘寸心','男',48,'021','李麗','O','血胸','304'),
('21126','路從風(fēng)','男',18,'022','高濤','B','漏斗胸','304'),
('21127','王浩','男',29,'023','陳若玉','A','胸部異物','305'),
('21128','潘奕','女',30,'024','劉思雨','AB','胸腔積液','305')
Go
6.3.5護(hù)士表插入數(shù)據(jù)
insert?into?護(hù)士表(護(hù)士編號,姓名,性別,年齡,科室號)
values('110101','夏一柳','女',25,'101'),
('110102','席夢榮','女',28,'101'),
('110103','李文倩','女',22,'102'),
('110104','繞詹林','男',24,'102'),
('110105','吳申萌','女',29,'103'),
('110106','田甜','女',23,'103'),
('110107','高悅?cè)?,'女',25,'104'),
('110108','劉子諾','女',21,'104'),
('110109','張以諾','女',22,'105'),
('110110','趙佳宇','女',22,'105'),
('110111','張怡銘','女',35,'201'),
('110112','蔣欣芹','女',26,'201'),
('110113','馬航鈺','女',30,'202'),
('110114','蘇芷璇','女',25,'202'),
('110115','王曉甜','女',24,'203'),
('110116','陳子媛','女',26,'203'),
('110117','董璇','女',21,'204'),
('110118','孫玉','女',23,'204'),
('110119','李婉婷','女',28,'205'),
('110120','宋雨涵','女',31,'205'),
('110121','鄧夢琪','女',24,'301'),
('110122','崔佳玉','女',26,'301'),
('110123','郭星瞳','女',24,'302'),
('110124','郭思羽','女',23,'302'),
('110125','王雨橙','女',28,'303'),
('110126','劉子琳','女',27,'303'),
('110127','李雨霏','女',29,'304'),
('110128','陸嘉晨','女',24,'304'),
('110129','張馨予','女',23,'305'),
('110130','劉欣悅','女',27,'305')
Go
6.3.6分配表插入數(shù)據(jù)
insert?into?分配表(病房號,護(hù)士編號)
values('001','110101'),
('002','110102'),
('003','110103'),
('004','110104'),
('005','110105'),
('006','110106'),
('007','110107'),
('007','110108'),
('008','110109'),
('009','110110'),
('010','110111'),
('011','110112'),
('012','110113'),
('012','110114'),
('013','110115'),
('013','110116'),
('014','110117'),
('015','110118'),
('016','110119'),
('016','110120'),
('017','110121'),
('017','110122'),
('018','110123'),
('018','110124'),
('019','110125'),
('020','110126'),
('021','110127'),
('022','110128'),
('023','110129'),
('024','110130')
Go
7 數(shù)據(jù)庫操作
7.1數(shù)據(jù)表查詢
7.1.1科室表數(shù)據(jù)查詢
go
select?*
from?科室表
go
7.1.2醫(yī)生表數(shù)據(jù)查詢
go
select?*
from?醫(yī)生表
go
?
7.1.3醫(yī)生表科室表內(nèi)連接查詢
select?醫(yī)生表.姓名?,?科室名
from?醫(yī)生表?join?科室表
on?醫(yī)生表.科室號=科室表.科室號
go
?
?7.1.4在病人表中插入一條信息
(’21129’,’張淦’,’男’,’25’,’024’,’劉思雨’,’O’,’胸腔積液’)。
use?醫(yī)院信息管理系統(tǒng)
insert?into?病人表(病歷號,姓名,性別,年齡,病房號,醫(yī)生姓名,血型,確診結(jié)果)
values('21129','張淦','男','25','024','劉思雨','O','胸腔積液')
go
7.1.5刪除病人表中最后一條記錄
(’21129’,’張淦’,’男’,’25’,’024’,’劉思雨’,’O’,’胸腔積液’)。
go
delete
from?病人表
where?病歷號='21129'
go
7.1.6將護(hù)士表中夏一柳的年齡修改為26。
update?護(hù)士表
set?年齡='26'
where?姓名='夏一柳'
go
7.1.7查詢患有腦積水病人
他的病歷號,姓名,性別,年齡,病房號,血型以及所對應(yīng)的醫(yī)生姓名,職稱,所屬科室號。
select?病歷號,病人表.姓名,病人表.性別,病人表.年齡,病房號,血型,醫(yī)生姓名,職稱,醫(yī)生表.科室號
from?病人表?join?醫(yī)生表
on?病人表.醫(yī)生姓名=醫(yī)生表.姓名
where?確診結(jié)果='腦積水'
go
7.1.8查詢每個科室擁有多少名護(hù)士。
select?科室號,COUNT(護(hù)士編號)?as?'護(hù)士人數(shù)'
from?護(hù)士表
group?by?科室號
?
7.1.9查詢擁有多于一個病房的科室。
select?科室號,COUNT(病房號)?as?'病房數(shù)'
from?病房表
group?by?科室號
having(COUNT(病房號))>1
go
7.1.10查詢?nèi)w醫(yī)生的平均年齡。
select?AVG(年齡)?as?'全體醫(yī)生平均年齡'
from?醫(yī)生表
go?
?
7.1.11查詢病人的年齡,并按降序排列。
select??姓名,年齡
from?病人表
order?by?年齡?desc
go
7.1.12查詢護(hù)士的出生年月。
select?護(hù)士編號,姓名,YEAR(GETDATE())-年齡?as?'出生日期'
from?護(hù)士表
go
7.1.13查詢每個護(hù)士所負(fù)責(zé)的病房號。
select?護(hù)士表.護(hù)士編號,病房號,姓名
from?護(hù)士表?join?分配表
on?護(hù)士表.護(hù)士編號=分配表.護(hù)士編號
go?
?
7.1.14查詢病人所對應(yīng)的病歷號
他的姓名,性別,血型,病房號,醫(yī)生姓名,職稱,所屬科室號,科室名,科室地址。
select??病歷號,病人表.姓名,病人表.性別,血型,病房號,醫(yī)生姓名,職稱,醫(yī)生表.科室號,科室表.科室名,科室表.科室地址
from?病人表?join?醫(yī)生表
on?病人表.醫(yī)生姓名=醫(yī)生表.姓名
join?科室表
on?醫(yī)生表.科室號=科室表.科室號
go
7.1.15創(chuàng)建一個視圖v_pyk
查詢病人所對應(yīng)的病歷號,姓名,性別,血型,病房號,醫(yī)生姓名,職稱,所屬科室號,科室名,科室地址。
create?view?v_pyk
as
select??病歷號,病人表.姓名,病人表.性別,血型,病房號,醫(yī)生姓名,職稱,醫(yī)生表.科室號,科室表.科室名,科室表.科室地址
from?病人表?join?醫(yī)生表
on?病人表.醫(yī)生姓名=醫(yī)生表.姓名
join?科室表
on?醫(yī)生表.科室號=科室表.科室號
go
select?*
from?v_pyk
go
7.1.16將視圖v_pyk中數(shù)據(jù)更改
將病歷號為21126的病人的病房號改為021
update?v_pyk
set?病房號='021'
where?病歷號='21126'
go
7.1.17創(chuàng)建一個存儲過程pr_inf
輸出指定病人的姓名,性別,血型,主治醫(yī)生,醫(yī)生編號,確診結(jié)果。
create?proc?pr_inf?@pr?varchar(20)
as
select?病人表.姓名,病人表.性別,血型,醫(yī)生姓名,醫(yī)生編號,確診結(jié)果
from?病人表?join?醫(yī)生表
on?病人表.醫(yī)生姓名=醫(yī)生表.姓名
where?病人表.姓名?like?@pr?
go
exec?pr_inf?'張%'
7.1.18創(chuàng)建一個存儲過程hs_bf
輸入一個護(hù)士編號,輸出該護(hù)士所對應(yīng)的病房號以及剩余床位數(shù)。
create?proc?hs_bf?@hno?char(6),@bno?char(10)?output?,@bed?varchar(10)?output?
as
select?@bno=分配表.病房號,@bed=床位數(shù)
from?分配表?join?病房表
on?病房表.病房號=分配表.病房號
where?護(hù)士編號?=@hno
set?@bed=convert(varchar,@bed)
go
declare?@bno1?char(10),@bed1?varchar(10)
exec?hs_bf?'110101',@bno1?output?,@bed1?output
print?'病房號'+@bno1
print?'床位數(shù)'+@bed1
go
?
7.1.19創(chuàng)建一個觸發(fā)器
在刪除病人表的一條記錄時,所對應(yīng)的病房表的床位數(shù)要實(shí)現(xiàn)及時更新。
create?trigger?tri_br?
on?病人表
instead?of?delete,update
as
declare?@sno?char(10)?,@cno?char (10)
select?@sno?=病歷號?from?deleted
select?@cno=病房號?from?deleted
delete?from?病人表?where?病歷號=@sno
update??病房表
set?床位數(shù)=床位數(shù)+1
where?@cno?=?病房表.病房號
go
delete?from?病人表?where?病歷號='21102'
go
文章來源地址http://www.zghlxwxcb.cn/news/detail-795105.html
到了這里,關(guān)于醫(yī)院管理系統(tǒng)數(shù)據(jù)庫,課程設(shè)計,SQLserver,純代碼設(shè)計的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!