SQL Server 复习试题(6)

2019-08-26 17:24

select distinct sno from sg

where grade < 60 3.

update student set sage=22

where sno='05001' 4.

select avg(grade) from sg where cno='1' 5.

create procedure getdetailbyname @name nvarchar(10) as

if (select count(*) from student where sname = @name) > 0 select * from student where sname = @name else

print '不存在姓名为 ' + @name + ' 的学生资料' 6.

select sname,ssex,sage from sdudent

where sdept=’计算机系’and sname like '赵 %' and ssex ='女' 7.

create view [学生成绩表视图] as

select sno, sname, cno, cname, grade from sg, sdudent where sc.sno=sdudent.sno 8.

insert into student

values ('05020', '丁莉', '女', 17, '计算机系')

综合试题五:

现有关系数据库如下:

数据库名:医院数据库

医生表(编号,姓名,性别,出生日期,职称) 病人表(编号,姓名,性别,民族,身份证号) 病历表(ID,病人编号,医生编号,病历描述) 用SQL语言实现下列功能的sql语句代码: 1. 创建上述三表的建库、建表代码;

要求使用:主键(师医生表.编号,病人表.课号)、外键(病历表.医生编号,病历表.病人课号)、非空(职称,姓名)、检查(性别),自动编号(ID) (16分) 2. 将下列医生信息添加到医生表的代码

编号 姓名 性别 出生日期 职称

100001 杜医生 男 1963-5-18 副主任医师 100002 郭医生 女 1950-7-26 副主任医师 100003 刘医生 男 1973-9-18 医师

修改 编号为100002的医生职称为‘主任医师’ 删除 编号为100003的医生信息 (8分)

3. 写出创建:医疗表视图(医生编号,姓名,病人姓名,病历)的代码;(4分) 4. 写出所有病人编号、姓名、病历、以及病人所对应的医生编号的查询语句;(4分) 5. 写出创建: 输出某医生(根据医生编号即可)看病人数存储过程以及执行过程(要

求输入医生姓名的参数,输出病人数)(6分)。 6. 写出查询1970年以前出生的医生(4分)。 7. 检索有病人的医生信息。(4分)

8. 创建一个默认,并将其绑定到医生表的成绩职称列上,默认值为“医师”。(4分) 参考答案: 1.

create database [医院数据库] use [医院数据库] go

create table 医生表

([编号] char(6) primary key, [姓名] nchar(4) not null,

[性别] nchar(1) check([性别] in ('男', '女')), [出生日期]datetime , [职称] char(18) not null )

create table病人表

([课号] char(6) primary key, [姓名] nchar(4) not null,

[性别] nchar(1) check([性别] in ('男', '女')), [民族] nchar(10),

[身份证号] char(18) not null )

create table病历表 (ID IDENTITY(1, 1),

[病人编号] char(6) references 病人表(学号), [医生编号] char(6) references 医生表(编号), [病历描述] varchar(1000) )

2.

insert 医生表 values('100001', '杜医生', '男', '1963-5-18', '副主任医师') insert 医生表 values('100002', '郭医生', '女', '1950-7-26', '副主任医师')

insert 医生表 values('100003', '刘医生', '男', '1973-9-18', '医师') update医生表 set 职称='主任医师' where 编号='100002' delete医生表 where 编号='100003'

3.

create view [医疗表视图] as

select br.姓名,ys.姓名,yl.病历 from 病人表 as br join 医疗表 as yl on br.编号yl.病人编号 join 医生表 as ys on yl.医生编号=ys.编号 4.

Select br.编号, br.姓名, br.病历, yl.医生编号 from 病人表 br left join 医疗表 yl on br.编号 = yl.病人编号 5.

create procedure [某医生看病人数] @医生编号 nchar(16), @人数 int output as

select @人数=count(病人编号) from 病人表

where 医生编号 = @医生编号 go

declare @TOTAL int

execute [某医生看病人数] '100001', @TOTAL 6

select * from 医生表 where 出生日期<'1970-01-01' 7.

select 编号, 姓名, 性别, 出生日期, 职称 from 医生表 where 编号 in (select 医生编号 from 医疗表) 8.

create default zhicheng AS '医师' go

exec sp_bindefault 'zhicheng', '医生表.职称'


SQL Server 复习试题(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:苏教版-南通中考历史复习资料

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: