34,835
社区成员




--第八题
没看懂
补充六楼
-- 创建一个默认,并将其绑定到医生表的成绩职称列上,默认值为“医师”。(4分)
create default doc as '医师'
sp_bindefault 'doc','医生表.成绩职称'
insert into 医生表(编号,姓名,性别,出生日期,职称) values ('100001','杜医生','男','1963-5-18','副主任医师')
insert into 医生表(编号,姓名,性别,出生日期,职称) values ('100002','郭医生','女','1950-7-26','副主任医师')
insert into 医生表(编号,姓名,性别,出生日期,职称) values ('100003','刘医生','男','1973-9-18','医师')
修改 编号为100002的医生职称为‘主任医师’
update 医生表 set 职称 = '主任医师' where 编号='100002'
删除 编号为100003的医生信息
delete from 医生表 where 编号='100003'
--第一题
---建库
create database [医院数据库] on primary
(NAME = N'MH_Test', FILENAME = N'D:\Program Files\医院数据库.mdf')
LOG ON
(NAME = N'MH_Test_log', FILENAME = N'D:\Program Files\医院数据库.ldf')
---建表
create table [医生表]
(
[编号] varchar(100) not null,
[姓名] varchar(100) not null,
[性别] varchar(5) not null,
[出生日期] date not null,
[职称] varchar(100) not null,
constraint [PK_医生表_编号] primary key clustered
(
[编号] ASC
)
) on [primary]
create table [病人表]
(
[编号] varchar(100) not null,
[姓名] varchar(100) not null,
[性别] varchar(5) not null,
[民族] date not null,
[身份证号] varchar(100) not null,
CONSTRAINT [PK_病人表_编号] PRIMARY KEY CLUSTERED
(
[编号] asc
)
) on [primary]
create table [病历表]
(
ID int identity(1,1) not null,
[病人编号] varchar(100) not null,
[医生编号] varchar(100) not null,
[病历描述] varchar(1000) not null
)
--建外键
alter table [病历表] add constraint [FK_病人编号] foreign key ([病人编号]) references [病人表]([编号])
alter table [病历表] add constraint [FK_医生编号] foreign key ([医生编号]) references [医生表]([编号])
--第二题
insert into [医生表] ---插入医生信息
select '100001','杜医生','男','1963-5-18','副主任医师' union all
select '100002','郭医生','女','1950-7-26','副主任医师' union all
select '100003','刘医生','男','1973-9-18','医师'
update [医生表] set [职称]='主任医师' where [编号]='100002' --修改 编号为100002的医生职称为‘主任医师’
delete [医生表] where [编号]='100003' --删除 编号为100003的医生信息
--第三题
create view [医疗表]
as
select
[医生表].[编号] as [医生编号],
[医生表].[性别] as [医生姓名],
[病人表].[姓名] as [病人姓名],
[病历表].[病历描述] as [病历]
from
[医生表] inner join [病历表] on [医生表].[编号]=[病历表].[医生编号]
inner join [病人表] on [病人表].[编号]=[病历表].[病人编号]
--第四题
select
[病人表].[编号] as [病人编号],
[病人表].[姓名] as [病人姓名],
[病历表].[病历描述] as [病历],
[医生表].[编号] as [医生编号]
from
[病人表] inner join [病历表] on [病人表].[编号]=[病历表].[病人编号]
inner join [医生表] on [医生表].[编号]=[病历表].医生编号
--第五题
create proc sp_proc_get_detail
@name varchar(100),
@cnt int
as
set nocount on
begin
select
@cnt=COUNT(distinct [病历表].[病人编号])
from [医生表] inner join [病历表] on [医生表].编号=[病历表].医生编号
where [医生表].姓名=@name
select @cnt
return
end
--第六题
select * from [医生表] where [出生日期]<'1970-01-01'
--第七题--感觉这一题逻辑不严谨(有病历就算有病人?还是必须要对应到病人表)
select [医生表].* from [医生表] inner join [病历表] on [医生表].编号=[病历表].医生编号
--第八题
没看懂
---建库
create database [医院数据库] on primary
(NAME = N'MH_Test', FILENAME = N'D:\Program Files\医院数据库.mdf')
LOG ON
(NAME = N'MH_Test_log', FILENAME = N'D:\Program Files\医院数据库.ldf')
---建表
create table [医生表]
(
[编号] varchar(100) not null,
[姓名] varchar(100) not null,
[性别] varchar(5) not null,
[出生日期] date not null,
[职称] varchar(100) not null,
constraint [PK_医生表_编号] primary key clustered
(
[编号] ASC
)
) on [primary]
create table [病人表]
(
[编号] varchar(100) not null,
[姓名] varchar(100) not null,
[性别] varchar(5) not null,
[民族] date not null,
[身份证号] varchar(100) not null,
CONSTRAINT [PK_病人表_编号] PRIMARY KEY CLUSTERED
(
[编号] asc
)
) on [primary]
create table [病历表]
(
ID int identity(1,1) not null,
[病人编号] varchar(100) not null,
[医生编号] varchar(100) not null,
[病历描述] varchar(1000) not null
)
--建外键
alter table [病历表] add constraint [FK_病人编号] foreign key ([病人编号]) references [病人表]([编号])
alter table [病历表] add constraint [FK_医生编号] foreign key ([医生编号]) references [医生表]([编号])