Oracle数据库入门笔试试题及参考答案
- 格式:docx
- 大小:19.38 KB
- 文档页数:3
《数据库入门》试题
姓名:
一、简答题(共40分,每小题10分)
1、如何理解空值(null)?空值在参与运算时有什么特点?
2、简述参照完整性约束。
3、简述Oracle客户端tnsnames.ora文件的作用。
4、简述事务及其性质。
二、运算题(共60分,每小题5分)
针对课本图1.2中的关系模式,用SQL完成下列操作。
1、查询姓张的病人姓名和出生年份。
select xm,substr(to_char(sysdate,'yyyy.mm.dd'),1,4)
from dw.per_natl
where xm like '张%';
注意:题目要求查询出生年份,不是出生日期。
2、查询女病人的平均年龄。
update dw.per_natl a
set nl=(select to_number(substr(to_char(sysdate,'yyyy.mm.dd'),1,4)) -
to_number(substr(to_char(csrq,'yyyy.mm.dd'),1,4)) from dw.per_natl b
where a.grbm=b.grbm);
select avg(nl)
from dw.per_natl
where xb='2';
考虑下列SQL:
select avg(nvl(nl,0))
from dw.per_natl
where xb='2';
3、查询发生过费用的病人总人数。
select count(distinct grbm)
from dw.patient_script_genl;
此处必须使用distinct
4、查询2000年以后出生的病人姓名。
select xm
from dw.per_natl
where substr(to_char(sysdate,'yyyy.mm.dd'),1,4)>'2000';
5、查询没有被使用过的医疗项目编码和名称。
select ylxmbm,ylxmmc
from dw.medi_item
where ylxmbm not in (select ylxmbm
from dw.patient_script_detl); 6、查询与自己的科室负责人同名的医师的编码和姓名。select a.ysbm,a.xm
from dw.doctor a,dw.doctor b
where a.ysbm=b.ksfzr and a.xm=b.xm;
7、查询未结算费用凭单的总金额、自付金额和报销金额。select fyid,zje,zfje,bxje
from dw.patient_script_genl
where jshid is null;
8、查询使用医疗项目数目最多的费用凭单编码。
select fyid
from dw.patient_script_detl
group by fyid
having count(ylxmbm)>=all(select count(ylxmbm)
from dw.patient_script_detl
group by fyid);
9、查询被所有的住院病人都使用的药品编码。
insert into dw.patient_script_detl(fyid,sxh,ylxmbm)
values('20130106110',3,'100001');
insert into dw.patient_script_detl(fyid,sxh,ylxmbm) values('20130108101',5,'100001');
select distinct b.ylxmbm
from dw.medi_item a,dw.patient_script_detl b
where a.ylxmbm=b.ylxmbm and ylxmlb='1' and
not exists ((select distinct fyid
from dw.patient_script_detl)
minus
(select fyid
from dw.patient_script_detl c
where b.ylxmbm=c.ylxmbm));
10、新增科室,科室编码为’999’,科室名称为’核磁共振室’。
11、删除没有发生过费用的病人信息。
delete from dw.per_natl
where grbm not in (select grbm
from dw.patient_script_genl);
12、将高于平均价的药品的价格降低10%。
update dw.medi_item
set dj=dj*0.95
where ylxmlb='1' and dj<(select avg(dj)
from dw.medi_item
where ylxmlb='1');