Oracle数据库入门练习题参考答案
oracle习题答案

oracle习题答案Oracle习题答案Oracle数据库是全球领先的企业级关系型数据库管理系统,被广泛应用于各种企业和组织中。
学习Oracle数据库管理是IT从业人员必备的技能之一,因此掌握Oracle习题答案对于提升自己的技能水平至关重要。
在学习Oracle数据库管理的过程中,经常会遇到各种习题和练习题,通过解答这些习题可以加深对Oracle数据库的理解和掌握。
下面我们就来看一些常见的Oracle习题以及它们的答案。
1. 什么是Oracle数据库?答:Oracle数据库是由美国Oracle公司开发的一款关系型数据库管理系统,它是一种高性能、可靠性强的数据库系统,被广泛应用于企业级应用中。
2. 如何创建一个新的数据库用户?答:可以使用CREATE USER语句来创建一个新的数据库用户,例如:CREATE USER new_user IDENTIFIED BY password;3. 如何查询表中的数据?答:可以使用SELECT语句来查询表中的数据,例如:SELECT * FROM table_name;4. 如何删除数据库中的数据表?答:可以使用DROP TABLE语句来删除数据库中的数据表,例如:DROP TABLE table_name;5. 如何备份Oracle数据库?答:可以使用RMAN工具来备份Oracle数据库,例如:RMAN> BACKUP DATABASE;通过解答这些习题,我们可以加深对Oracle数据库管理的理解和掌握,提升自己的技能水平。
希望以上Oracle习题答案对大家有所帮助,也希望大家在学习Oracle数据库管理的过程中能够不断提升自己的技能,成为一名优秀的数据库管理人员。
oracle练习题及答案

oracle练习题及答案Oracle练习题及答案Oracle是一种广泛使用的关系型数据库管理系统,它具有强大的数据处理和管理能力。
对于想要提升自己的数据库技能的人来说,练习题是一个非常有效的学习方法。
通过解答一系列的练习题,可以帮助我们更好地理解Oracle的使用和原理。
下面是一些常见的Oracle练习题及其答案,供大家参考。
1. 查询一个表中所有的数据答案:可以使用SELECT语句来查询一个表中的所有数据。
例如,假设我们有一个名为"employees"的表,可以使用以下语句来查询所有的数据:SELECT * FROM employees;2. 查询一个表中特定列的数据答案:如果我们只想查询一个表中特定列的数据,可以使用SELECT语句,并在其中指定要查询的列名。
例如,如果我们只想查询"employees"表中的"first_name"和"last_name"列,可以使用以下语句:SELECT first_name, last_name FROM employees;3. 查询满足特定条件的数据答案:如果我们只想查询满足特定条件的数据,可以在SELECT语句中使用WHERE子句来指定条件。
例如,如果我们只想查询"employees"表中工资大于5000的员工,可以使用以下语句:SELECT * FROM employees WHERE salary > 5000;4. 对查询结果进行排序答案:如果我们想对查询结果进行排序,可以在SELECT语句中使用ORDER BY子句,并指定要排序的列名。
例如,如果我们想按照"employees"表中的"last_name"列进行升序排序,可以使用以下语句:SELECT * FROM employees ORDER BY last_name ASC;5. 对查询结果进行分组答案:如果我们想对查询结果进行分组,可以在SELECT语句中使用GROUP BY 子句,并指定要分组的列名。
Oracle数据库试题100题(附答案)

Oracle数据库试题100题(附答案)1.当Oracle服务器启动时,下列哪种文件不是必须的(D)。
A.数据文件B.控制文件C.日志文件D.归档日志文件2.在Oracle中,当用户要执行SELECT语句时,下列哪个进程从磁盘获得用户需要的数据(B)。
A.用户进程B.服务器进程C.日志写入进程(LGWRD.检查点进程(CKPT)3.在Oracle中,一个用户拥有的所有数据库对象统称为(B)。
A.数据库B.模式C.表空间D.实例4.在Oracle中,有一个教师表teacher的结构如下:ID NUMBER(5)NAME V ARCHAR2(25)EMAIL VARCHAR2(50)下面哪个语句显示没有Email地址的教师姓名(C)。
A.SELECT name FROM teacher WHERE email = NULL;B.SELECT name FROM teacher WHERE email <> NULL;C.SELECT name FROM teacher WHERE email IS NULL;D.SELECT name FROM teacher WHERE email IS NOT NULL;5.在Oracle数据库的逻辑结构中有以下组件:A 表空间B 数据块C 区D 段这些组件从大到小依次是(B)。
A.A→B→C→DB.A→D→C→BC.A→C→B→DD.D→A→C→B6.在Windows操作系统中,Oracle的(A)服务监听并接受来自客户端应用程序的连接请求。
A.OracleHOME_NAMETNSListenerB.OracleServiceSIDC.OracleHOME_NAMEAgentD.OracleHOME_NAMEHTTPServer7.在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将(B)表空间分配给用户作为默认表空间。
oracle课后习题答案

oracle课后习题答案Oracle课后习题答案在学习Oracle数据库时,完成课后习题是巩固知识的重要方式。
本文将为大家提供一些常见Oracle课后习题的答案,帮助读者更好地理解和应用数据库知识。
一、基本概念题1. 什么是数据库?答:数据库是一个组织和存储数据的系统。
它是一个结构化的集合,用于存储、管理和操纵数据,并提供对数据的安全性和完整性的保证。
2. 什么是表?答:表是数据库中的一个基本组成部分,用于存储数据。
它由行和列组成,行表示记录,列表示记录中的字段。
3. 什么是SQL?答:SQL(Structured Query Language)是一种用于访问和管理关系型数据库的语言。
它可以用于查询、插入、更新和删除数据,以及创建和管理数据库对象。
二、SQL查询题1. 查询员工表中所有员工的姓名和工资。
答:SELECT 姓名, 工资 FROM 员工表;2. 查询订单表中订单金额大于1000的订单号和金额。
答:SELECT 订单号, 订单金额 FROM 订单表 WHERE 订单金额 > 1000;3. 查询客户表中所有客户的姓名和地址,按照地址降序排列。
答:SELECT 姓名, 地址 FROM 客户表 ORDER BY 地址 DESC;三、SQL插入题1. 向员工表中插入一条记录,姓名为"张三",工资为5000。
答:INSERT INTO 员工表 (姓名, 工资) VALUES ('张三', 5000);2. 向订单表中插入一条记录,订单号为"2021001",金额为2000。
答:INSERT INTO 订单表 (订单号, 订单金额) VALUES ('2021001', 2000);四、SQL更新题1. 将员工表中工资低于3000的员工工资增加1000。
答:UPDATE 员工表 SET 工资 = 工资 + 1000 WHERE 工资 < 3000;2. 将客户表中地址为"北京市"的客户地址改为"上海市"。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle数据库入门练习题参考答案
《数据库入门》练习题参考答案
1、查询所有药品的医疗项目编码、名称和单价,按照单价的降序排序。
select ylxmbm,ylxmmc,dj
from dw.medi_item
where ylxmlb='1'
order by dj desc;
运行结果:
2、查询与’安娜’医师在同一个科室工作的医师姓名。
select b.xm
from dw.doctor a,dw.doctor b
where a.ksbm=b.ksbm and a.xm='安娜' and b.xm<>’安娜’;
运行结果:
3、查询未结算的FYID及其总费用、报销费用和自付费用。
select fyid,zje,bxje,zfje
from dw.patient_script_genl
where jshid is null;
运算结果:
4、查询使用过’阿莫西林’药品的病人个人编码和姓名。
select grbm,xm
from dw.per_natl
where grbm in (select grbm
from dw.medi_item a,dw.patient_script_detl b,
dw.patient_script_genl c
where ylxmmc='阿莫西林'and a.ylxmbm=b.ylxmbm and
b.fyid=
c.fyid);
运行结果:
5、查询2012年的平均报销金额。
select avg(bxje)
from dw.patient_script_genl
where to_char(fyfsrq,'YYYY.MM.DD') between '2012.01.01'and '2012.12.31';
运行结果:
6、查询GRBM是’320106************’的病人的姓名、出生日期、家庭住址和性别(其中性别为’1’表示男性,性别为’2’表示女性,请将数据库中的’1’和’2’转换为’男’和’女’;CDRQ以’YYYY.MM.DD’的形式显示)。
select xm,to_char(csrq,'YYYY.MM.DD') CSRQ, decode(xb,'1','男','2','女') XB
from dw.per_natl
where grbm='320106************';
运算结果
7、查询重名的病人姓名及该姓名重名的人数。
select xm,count(*)
from dw.per_natl
group by xm
having count(xm)>1;
运行结果:
8、查询使用了fyid为’20120120001’使用的全部医疗项目的费用凭单编码。
select distinct a.fyid
from dw.patient_script_detl a
where not exists (select 1
from dw.patient_script_detl b
where b.fyid='20120120001' and not exists
(select 2
from dw.patient_script_detl c
where b.ylxmbm=c.ylxmbm and a.fyid=c.fyid));
或者:
select distinct a.fyid
from dw.patient_script_detl a
where not exists ((select ylxmbm
from dw.patient_script_detl
where fyid='20120120001')
minus
(select ylxmbm
from dw.patient_script_detl b
where a. fyid=b.fyid));
运行结果:
15、查询报销费用最多的病人的个人编号。
select grbm
from dw.patient_settle
group by grbm
having sum(nvl(bxje,0)) >= all (select sum(nvl(bxje,0)) from dw.patient_settle
group by grbm);
select grbm
from dw.patient_settle
group by grbm
having sum(bxje) >= (select max(sum(bxje))
from dw.patient_settle
group by grbm);
运算结果:
16、查询自付金额最多的科室编码。
17、查询单价最贵的药品编码、名称和单价。
select ylxmbm,ylxmmc,dj
from dw.medi_item
where ylxmlb='1' and dj = (select max(dj)
from dw.medi_item
where ylxmlb='1');
select ylxmbm, ylxmmc,dj
from dw.medi_item
where ylxmlb = '1'
and ylxmbm not in (select a.ylxmbm
from dw.medi_item a, dw.medi_item b
where a.ylxmlb='1' and b.ylxmlb='1' and a.dj < b.dj);
18、将所有诊疗项目的报销比例提高5%,如果报销比例提高5%后超过100%,则该诊疗项目的报销比例维持原值。
update dw.medi_item
set bxbl=bxbl+0.05
where ylxmlb=’2’ and bxbl<=0.95;
21、用SQL实现下列需求:
病人“白龙马”有两次治疗记录,
第一次:“血常规”1次,“单脏器检查”1次,“阿莫西林”2
盒,本次治疗由内科的葛朗台医师开具的费用凭单;
第二次:“利君沙”3盒,“诊查费”1次,本次治疗由外科的哈利波特医师开具的费用凭单。
请将病人的两次治疗记录分别记录在dw.patient_script_detl和dw.patient_script_genl中,然后进行结算(fyid、jshid和fyfsrq自行确定),最终要求显示结算结果。
insert into dw.patient_script_detl(fyid,sxh,ylxmbm,sl,dj,zje,bxje,zfje) values ('20130411001',1,'200005',1,15,1*15,12,3);
insert into dw.patient_script_detl(fyid,sxh,ylxmbm,sl,dj,zje,bxje,zfje) values('20130411001',2,'200008',1,150,1*150,1*150*0.8,1*15 0*0.2); ………..
insert into dw.patient_script_genl (fyid,fyfsrq,ysbm,ksbm,grbm,zje,bxje,zfje) select '20130411001',to_date(to_char(sysdate,'yyyy.mm.dd') ,'yyyy.mm. dd'),
'015','0001','610122************',sum(zje),sum(bxje),sum(zfje) from dw.patient_script_detl
where fyid='20130411001';
commit;
第二次:。
update dw.patient_script_genl
set jshid='1177'
where grbm='610122************' and jshid is null;
insert into dw.patient_settle(jshid,zje,bxje,zfje,grbm)
select
'1177',sum(zje),sum(bxje),sum(zfje),'610122************' from dw.patient_script_genl
where grbm='610122************' and jshid =’1177’;
commit;
注意:一旦有SQL执行出现问题,需要rollback。