Oracle试题
Oracle 考试试题(带答案)

a) b) c) d) 参考答案
OracleHOME_NAMETNSListener OracleServiceSID OracleHOME_NAMEAgent OracleHOME_NAMEHTTPServer
B
9) 在 Oracle 中创建用户时,若未提及 DEFAULT TABLESPACE 关键字,则 Oracle 就将()表空间分配 给用户作为默认表空间。。
DATEPART EXTRACT TO_CHAR TRUNC
bc
5) 在Oracle中,有一个教师表teacher的结构如下: ID NUMBER(5) NAME VARCHAR2(25) EMAIL VARCHAR2(50) 下面哪个语句显示没有Email地址的教师姓名()。
a) b) c) d) 参考答案
a) b) c) d) 参考答案
OracleHOME_NAMETNSListener OracleServiceSID OracleHOME_NAMEAgent OracleHOME_NAMEHTTPServer
a
8) 在Windows操作系统中,Oracle的()服务是使用 iSQL*Plus必须的。
A
12) 在Oracle中,下面用于限制分组函数的返回值的子句是 ()。
a) WHERE b) HAVING c) ORDER BY d) 无法限定分组函数的返回值
参考答案 b
13) 在Oracle中,有一个名为seq的序列对象,以下语句能返 回序列值但不会引起序列值增加的是()。
a) b) c) d) 参考答案
%NOTFOUND %FOUND %ROWTYPE %ISOPEN %ROWCOUNT
c
15) 在Oracle中,当控制一个显式游标时,下面哪种命令包 含INTO子句()。
oracle试题答案解释版

要求20道判断、20道单选选择10道多选7道问答3道编程,再加20道填空一、单项选择题(每题1分,共20分)1、在Oracle中,一个用户拥有的所有数据库对象统称为(B )A)数据库B)模式C)表空间D)实例2、在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将(D )表空间分配给用户作为默认表空间。
A) USER B) SYS C)DEFAULT D) SYSTEM3、在oracle中获取前10条的关键字是(D)A) top B)Limit C)first D) rownum解释:top 是sql server数据库的关键字,limit 是mysql数据库的关键字,first是informix 数据库的关键字4、在Oracle中,( B)操作符返回并集操作并不包括重复行A) Intersect B)Union C)Union all D) Minus解释:Intersect返回交集,union返回并集,不包括重复行,union all 返回并集,包括重复行,minus返回差集5、下面那个语句是错误的(D)A) create synonym dept_synon for scott。
deptB) create sequence dept_seque increment by 1C)alter sequence dept_seque increment by 2D)drop dept_synon6、oracle数据库中,通过( C)可以以最快的方式访问表中的一行.A) 主键B) 唯一索引C)rowid D) 全表扫描7、下面那个不是oracle程序设计中的循环语句(A)A)for… end for B) loop…end loopC)while…end loop D) for… end loop8、oracle存储结构正确的是(B)A) tablespace--segment--osblock——blockB) tablespace-—segment——extent——blockC)tablespace-—extent——segment--blockD) tablespace-—extent-—block –segment9、若tnsnames.ora文件中部分配置如下:xfhtdb =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = hello)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = scce)))则表明:(C)A) Oracle服务器所在的主机名为DEDICATEDB) Oracle服务器所在的主机名为scceC) 对应数据库的SID为scceD)对应数据库的SID为xfhtdb10、现在要启动数据库,那么下面哪一个启动语句是错误的(A)A) STRATUP NORMAL B) STRATUP FORCEC)STRATUP NOMOUNT D)STARTUP MOUNT11、授予sa用户在SCOTT.EMP表中SAL列的更新权限的语句是:( C )A) GRANT CHANGE ON SCOTT.EMP TO SAB) GRANT UPDATE ON SCOTT.EMP(SAL) TO SAC)GRANT UPDATE(SAL) ON SCOTT。
Oracle数据库考试试题库

1.启动数据库的命令(A )。
A.startupB.startup openC.shutdownD.startup database2.(C )是启动数据库时用来记录数据文件、联机日志文件的相关信息的二进制文件。
A.数据文件B.参数文件C.控制文件D.归档文件3.你需要在表SALES里查找一些产品明细,其中PROD_ID列包括字符'_D123'。
(B )WHERE子句条件能得到这些相符产品。
A. WHERE prod_id LIKE '%_D123%' ESCAPE '_'B. WHERE prod_id LIKE '%\_D123%' ESCAPE '\'C. WHERE prod_id LIKE '%_D123%' ESCAPE '%_'D. WHERE prod_id LIKE '%\_D123%' ESCAPE '\_'4.关于单行函数,哪一个描述是正确的?(D )A. 他们只能接受一个参数。
B. 他们只能嵌套两层。
C. 参数只能是字段值或常量。
D. 他们始终为查找表中的每个行返回一个值。
5.下面哪个SQL语句显示1890.55 as $1,890.55?(ADE )选三项A. SELECT TO_CHAR(1890.55,'$0G000D00')FROM DUAL;B. SELECT TO_CHAR(1890.55,'$9,999V99')FROM DUAL;C. SELECT TO_CHAR(1890.55,'$99,999D99')FROM DUAL;D. SELECT TO_CHAR(1890.55,'$99G999D00')FROM DUAL;E. SELECT TO_CHAR(1890.55,'$99G999D99')FROM DUAL;6.下列关于ORACLE的to_date函数和to_char函数,描述正确的是(BC )选两项A. to_char函数是将字符串数据转换为日期数据B. to_date函数是将字符串数据转换为日期数据C. to_char函数是将日期数据转换为字符数据D. to_date函数是将日期数据转换为字符数据7.在表emp里,计算员工的年薪SAL*12并生成别名Annual Salary。
oracle试题答案解释版

要求20道判断、20道单选选择10道多选7道问答3道编程,再加20道填空一、单项选择题(每题1分,共20分)1、在Oracle中,一个用户拥有的所有数据库对象统称为(B )A) 数据库B) 模式C) 表空间D) 实例2、在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将(D)表空间分配给用户作为默认表空间。
A) USER B) SYS C) DEFAULT D) SYSTEM3、在oracle中获取前10条的关键字是(D)A) top B)Limit C)first D) rownum解释:top 是sql server数据库的关键字,limit 是mysql数据库的关键字,first是informix 数据库的关键字4、在Oracle中,( B)操作符返回并集操作并不包括重复行A) Intersect B) Union C) Union all D) Minus解释:Intersect返回交集,union返回并集,不包括重复行,union all 返回并集,包括重复行,minus返回差集5、下面那个语句是错误的(D)A) create synonym dept_synon for scott.deptB) create sequence dept_seque increment by 1C) alter sequence dept_seque increment by 2D) drop dept_synon6、oracle数据库中,通过( C)可以以最快的方式访问表中的一行。
A) 主键B) 唯一索引C) rowid D) 全表扫描7、下面那个不是oracle程序设计中的循环语句( A)A) for… end for B) loop…end loopC) while…end loop D) for… end loop8、oracle存储结构正确的是(B)A) tablespace--segment--osblock--blockB) tablespace--segment--extent--blockC) tablespace--extent--segment--blockD) tablespace--extent--block –segment9、若tnsnames.ora文件中部分配置如下:xfhtdb =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = hello)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = scce)))则表明:( C)A) Oracle服务器所在的主机名为DEDICATEDB) Oracle服务器所在的主机名为scceC) 对应数据库的SID为scceD) 对应数据库的SID为xfhtdb10、现在要启动数据库,那么下面哪一个启动语句是错误的(A)A) STRATUP NORMAL B) STRATUP FORCEC) STRATUP NOMOUNT D) STARTUP MOUNT11、授予sa用户在SCOTT.EMP表中SAL列的更新权限的语句是:( C )A) GRANT CHANGE ON SCOTT.EMP TO SAB) GRANT UPDATE ON SCOTT.EMP(SAL) TO SAC) GRANT UPDATE(SAL) ON SCOTT.EMP TO SAD)GRANT MODIFY ON SCOTT.EMP TO SA12、一个表有百万以上数据,其中一个列经常被作为查询条件并且只有25个不同数据,适合使用(C)索引提高查询速度。
oracle数据库期末考试试题及答案(一)

一、选择一、选择1) CBO与RULE的区别,RBO根据规则选择最佳执行路径来运行查询,CBO根据表统计找到最低成本的访问数据的方法确定执行计划。
使用CBO需要注意:注意:a) 需要使用提示(Hint) b) 优化SQL的写法的写法c) 选择最有效率的表名顺序选择最有效率的表名顺序YZE命令进行分析统计ANALYZEd) 需要经常对表进行ANAL命令进行分析统计d) 需要稳定执行计划需要稳定执行计划2) 在Oracle中,一个用户拥有的所有数据库对象统称为()。
中,一个用户拥有的所有数据库a) 数据库数据库b) 模式模式c) 表空间表空间d) 实例实例3) 在Oracle中,可用于提取日期时间类型特定部分(如年、月、日、时、分、秒)的函数有()。
TEP ART DATEPa) DAb) EXTRACT c) TO_CHAR d) TRUNC 4) 在Oracle中,有一个教师表teacher的结构如下:的结构如下:ID NUMBER(5) NAME V ARCHAR2(25) EMAIL V ARCHAR2(50) 下面哪个语句显示没有Email地址的教师姓名()。
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 表空间数据块 C 区D 段表空间 B 数据块这些组件从大到小依次是()。
a) A→B→C→D b) A→D→C→B c) A→C→B→D d) D→A→C→B 6) 在Windows操作系统中,Oracle的()服务监听并接受来自客户端应用程序的连接请求。
oracle期末考试题及答案

oracle期末考试题及答案一、选择题(每题2分,共20分)1. Oracle数据库中的用户和模式是什么关系?A. 完全相同B. 完全不同C. 模式是用户的集合D. 用户是模式的集合答案:C2. 在Oracle数据库中,以下哪个命令用于查看当前用户?A. SELECT USER FROM DUAL;B. SELECT CURRENT_USER FROM DUAL;C. SELECT SESSION_USER FROM DUAL;D. SELECT SYSTEM_USER FROM DUAL;答案:A3. Oracle数据库中的哪个参数用于设置数据库的字符集?A. DB_CHARSETB. NLS_CHARACTERSETC. DB_LANGUAGED. NLS_LANGUAGE答案:B4. 在Oracle数据库中,以下哪个不是SQL语句?A. SELECTB. UPDATEC. DELETED. PRINT答案:D5. Oracle数据库中的触发器可以在哪些时刻执行?A. 数据插入前B. 数据更新前C. 数据删除后D. 数据查询时答案:ABC二、填空题(每空2分,共20分)1. Oracle数据库的默认表空间名称是 _ 。
答案:SYSTEM2. 在Oracle数据库中,用来查看当前数据库版本信息的命令是 _ 。
答案:SELECT * FROM V$VERSION;3. Oracle数据库中,用来创建索引的SQL语句是 _ 。
答案:CREATE INDEX;4. 在Oracle数据库中,存储过程和函数的区别在于存储过程可以有_ ,而函数不能。
答案:OUT参数5. Oracle数据库中,用于实现数据完整性的约束包括主键约束、外键约束、 _ 和CHECK约束。
答案:UNIQUE约束三、简答题(每题10分,共30分)1. 解释Oracle数据库中的视图是什么,并说明其优点。
答案:视图是Oracle数据库中的一种虚拟表,它是基于一个或多个表的查询结果。
Oracle考试题

Oracle 考试题一:单选题(每题1.5分,共60分)1.学生信息表StudentInfo如下所示:学号姓名所在省市0001 李辉北京0002 张明上海0003 王小玉北京0004 李淑华湖南0005 赵静上海┆┆┆查询所有学生来自于哪几个省市使用的语句为()。
(选择一项)A) Select unique 所在省市 from StudentInfoB) Select 所在省市 from StudentInfoC) Select only 所在省市 from StudentInfoD) Select distinct 所在省市 from StudentInfo2. 公司需要管理员工档案,你创建了2个表:员工表employees和部门表departments。
以下是两表的部分内容。
employees编号姓名年龄部门编号1 王涛 25 12 张力 24 13 李明 30 24 高嘉 24 3Departments编号部门名称1 人力资源部2 技术部3 销售部下列那列适合作为外键()。
(选择一项)A) Employees中的编号B) Employees中的部门编号C) departments中的编号D) 以上都适合3. 你使用以下T-SQL语句创建了一个视图v_emp和一个表students,create view v_emp as select * from emp where deptno=10;create table students(id number(5),stuname varchar2(10))请问这两个语句是:()。
(选择一项)A) DDL(数据定义语言)B) DML(数据操纵语言)C) DCL(数据控制语言)D) DQL (数据查询语言)4.当SQL登录帐户被授权为数据库用户后,要查询数据库中的表,还需要对其赋予select 权限,实现赋权的T-SQL语言属于()。
(选择一项)A) DDL(数据定义语言)B) DML(数据操纵语言)C) DCL(数据控制语言)D) DQL (数据查询语言)5. 你是公司的数据库管理员,数据库benet中有个员工表employees,该表中有职务列。
Oracle测试题+答案

1) PL/SQL块中可以使用下列()命令。
(选择两项)a) TRUNCATEb) DELETEc) SA VEPOINTd) ALTER TABLE2) 授予sa用户在SCOTT.EMP表中SAL列的更新权限的语句是(B)〔选择一项〕a) GRANT CHANGE ON SCOTT.EMP TO SAb) GRANT UPDA TE ON SCOTT.EMP(SAL) TO SAc) GRANT UPDA TE (SAL) ON SCOTT.EMP TO SAd) GRANT MODIFY ON SCOTT.EMP(SAL) TO SA3) EMP表有14条记录,则语句SELECT ‘Aptech’FROM EMP 的执行结果是(C)〔选择一项〕a) Aptechb) 无输出c) 14行Aptechd) 编译出错4) PL/SQL块中哪几部分是可选的()〔选择二项〕a) Declareb) Beginc) Exceptiond) Constant5) 在创建序列的过程中,下列()选项指定序列在达到最大值或最小值后,将继续从头开始生成值。
(选择一项)a) Cycleb) Nocyclec) Cached) Nocache6) 同义词有以下()用途。
(选择三项)a) 简化SQL 语句b) 隐藏对象的名称和所有者c) 提供对对象的公共访问d) 显示对象的名称和所有者7) Oracle中用来释放锁的语句有()〔选择二项〕a) commitb) Drop lockc) rollbackd) unlock8) 关于类型定义Number(9,2)说法正确的有()〔选择一项〕a) 整数部分9位,小数部分2位,共11位b) 整数部分7位,小数部分2位,共9位c) 整数部分6位,小数点一位,小数部分2位,共9位d) 以上说法均不正确9) 下列哪种Lob类型用来存储数据库以外的操作系统文件()〔选择一项〕a) CLOBb) BLOBc) CFILEd) BFILE10) Oracle中的三种系统文件分别是()〔选择三项〕a) 数据文件b) 归档文件c) 日志文件d) 控制文件11) 下列哪项不是Oracle中常用的分区方法?()〔选择一项〕a) 范围分区b) 散列分区c) 列表分区d) 条件分区12) 查看Test中名称为P1的分区中的记录的查询语句为()〔选择一项〕a) Select * from Test Where PartitionName=’p1’b) Select * from Test(p1)c) Select * from Test Partition(p1);d) 以上均正确13) 创建序列时,若未指定Cycle选项,则当当前值大于MaxValue时将()〔选择一项〕a) 从MinValue重新开始循环b) 重复使用MaxValue 值c) 执行出错d) 使用随机值14) 下列哪项是创建索引组织表所必需的()〔选一项〕a) Primary Keyb) Order Byc) Group Byd) 以上均不是15) 若表的某字段值存在大量的重复,则基于该字段适合创建哪种索引?()〔选一项〕a) 标准索引b) 唯一索引c) 位图索引d) 分区索引16) 在PL/SQL块中定义一个名为PI值为3.14的Real型常量的语法是()〔选一项〕a) A.Pi Const Real=3.14;b) B.Pi Real Const =3.14;c) C.Constant Pi Real:=3.14d) D.Pi Constant Real:=3.1417) 22.当Select语句没有返回行时,将引发下列哪个异常?()[选择一项]a) A.No_rows_foundb) B.No_data_foundc) C.No_Data_rows_foundd) D.Invalid_Number18) Oracle中提供的两种游标是()〔选择二项〕a) A.隐式游标b) B.静态游标c) C.REF游标d) D.显式游标19) 若Emp表中有14条记录,则用户执行了以下操作,结果是:()〔选择一项〕Cursor mycur is Select * From emp;。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
答:考察知识点:子查询
select ename, sal from emp
where sal = (select sal from emp where deptno=30 and ename='MARTIN');
分析:同第5题
09.查询所有工资高于平均工资(平均工资包括所有员工)的销售人员('SALESMAN')
select e.*, (select count(*) from emp where sal > e.sal)+1 rank from emp e order by rank;
分析:
此题的要点在于理解select count(*) from emp where sal > e.sal+1的含义,e.sal代表当前员工,
该子查询的含义就是求比当前员工工资高的人数个数:比此员工工资高的人数个数如果为
0,表示此人排名第一,比此员工工资高的人数个数如果为1,表示此人排名第二…所以该
子查询结果就表示排名。
17.求入职日期相同的(年月日相同)的员工
答:考察知识点:子查询
select * from emp e where (select count(*) from emp where e.hiredate=hiredate)>1;
between to_date('1981-5-1','yyyy-mm-dd') and to_date('1981-12-31','yyyy-mm-dd');
05.查询所有名字长度为4的员工的员工编号,姓名
答:
select * from emp where length(ename) = 4;
06.显示10号部门的所有经理('MANAGER')和20号部门的所有职员('CLERK')的详细信息
并取别名为rn,这时rn已经作为临时表中一个真实的列存在了,因此可以使用>或>=比较
答:考察知识点:子查询,rownum
select * from (select * from emp order by sal desc) where rownum <= 3;
分析:见21题要点一
16.按工资进行排名,排名从1开始,工资相同排名相同(如果两人并列第1则没有第2名,从第
三名继续排)
答:考察知识点:子查询
答:
select * from emp where to_char(hiredate, 'mm') = to_char(sysdate , 'mm');
11.把hiredate列看做是员工的生日,求下月过生日的员工(考察知识点:单行函数)
答:
select * from emp where to_char(hiredate, 'mm') = to_char(add_months(sysdate,1) , 'mm');
答:
select * from emp where deptno = 10 and job = 'MANAGER' or deptno = 20 and job ='CLERK';
07.显示姓名中没有'L'字的员工的详细信息或含有'SM'字的员工信息
答:考察知识点模糊查询
select * from emp where ename not like '%L%' or ename like '%SM%';
where rownum > 5 and rownum <=10;
因此需要将
select e.*,rownum rn from
(select * from emp order by sal desc) e
where rownum <=10
查询结果看做一个临时表,这个临时表除了有表e中的所有列之外,多添加一个rownum列
答:考察知识点:子查询,表连接
select * from (select count(*) c, deptno from emp group by deptno) e
inner join dept d on e.deptno = d.deptno;
分析:主要思路是要将子查询结果看做一个临时表,此临时表又可以与其他表做表连接
14.查询工资相同的员工的工资和姓名
答:考察知识点:子查询
select * from emp e where (select count(*) from emp where sal = e.sal group by sal) > 1;
分析:此题目类似于17题,见17题分析。
15.查询工资最高的3名员工信息
order by trunc(hiredate,'month');
Part II(
01.查询各个部门的平均工资
答:考察知识点:分组
select deptno,avg(sal) from emp group by deptno;
02.显示各种职位的最低工资
答:考察知识点:分组
select job,min(sal) from emp group by job;
12.求1982年入职的员工(考察知识点:单行函数)
答:
select * from emp where to_char(hiredate,'yyyy') = '1982';
13.求1981年下半年入职的员工(考察知识点:单行函数)
答:
select * from emp where hiredate
between to_date('1981-7-1','yyyy-mm-dd') and to_date('1982-1-1','yyyy-mm-dd') - 1;
19.查询每个部门,每种职位的最高工资
答:考察知识点:分组
select deptno, job, max(sal) from emp group by deptno, job order by deptno, job;
分析:要点是理解多列分组:部门与职位都相同的分为一组,求每组的最高工资,其实就是
表示每个部门,每种职位的最高工资
13.查询各个职位员工工资大于平均工资(平均工资包括所有员工)的人数和员工职位
答:考察知识点:子查询
select job, count(*) from emp where sal > (select avg(sal) from emp) group by job;
分析:查询结果是一行一列,可以将查询结果看做一个值,进行条件比较
08.显示各个部门经理('MANAGER')的工资
答:
select sal from emp where job = 'MANAGER';
09.显示佣金(COMM)收入比工资()高的员工的详细信息
答:
select * from emp where comm > sal;
10.把hiredate列看做是员工的生日,求本月过生日的员工(考察知识点:单行函数)
14.求1981年各个月入职的的员工个数(考察知识点:组函数)
答:
select count(*), to_char(trunc(hiredate,'month'),'yyyy-mm')
from emp where to_char(hiredate,'yyyy')='1981'
group by trunc(hiredate,'month')
答:考察知识点:子查询
select * from emp where job='SALESMAN' and sal > (select avg(sal) from emp);
10.显示所有职员的姓名及其所在部门的名称和工资
答:考察知识点:表连接
select ename, job, dname from emp e, dept d where e.deptno = d.deptno;
11.查询在研发部('RESEARCH')工作员工的编号,姓名,工作部门,工作所在地
答:考察知识点:表连接
select empno,ename,dname,loc from emp e, dept d
where e.deptno = d.deptno and danme='RESEARCH';
12.查询各个部门的名称和员工人数
分析:常见的一个误解就是把此题当做自连接做:
select * from emp e1, emp e2 where e1.hhireiredate = e2.date and e1.empno <> e2.empno;
这样做的结果中对于只有两个日期相等的没有错误,查询结果有2条,但如果有三个日期相
等的查询结果就是6条,其中3条是重复的。
需要将
select * from emp order by sal desc
先排序之后的结果看做一个临时表,再对此临时表产生rownum编号。
要点二是rownum不能用作>或>=的比较条件,因此不能够直接这样写
select e.* from
(select * from emp order by sal desc) e