oracle试题及答案

oracle试题及答案
oracle试题及答案

Oracle 阶段测试题

一选择题(2*10=20)

1.下列不属于ORACLE的逻辑结构的是(C )

A区

B段

C 数据文件

D表空间

2. 下面哪个用户不是ORACLE缺省安装后就存在的用户(A)

A . SYSDBA

B. SYSTEM

C. SCOTT

D. SYS

3 .下面哪个操作会导致用户连接到ORACLE数据库,但不能创建表(A)

A授予了CONNECT的角色,但没有授予RESOURCE的角色

B没有授予用户系统管理员的角色

C数据库实例没有启动

D数据库监听没有启动

4. 在Oracle中,下面关于函数描述正确的是(AD)。

A SYSDATE函数返回Oracle服务器的日期和时间

B ROUND数字函数按四舍五入原则返回指定十进制数最靠近的整数

C ADD_MONTHS日期函数返回指定两个月份天数的和

D SUBSTR函数从字符串指定的位置返回指定长度的子串

5. 在Oracle中,表EMP包含以下列:

……

NAME VARCHAR2(20)

ADDR VARCHAR2(60)

……

要以NAME’s address is ADDR格式返回数据,以下SQL语句正确的是(B)。

+ 的两边做T o_number()

A SELECT NAME + ’’’s address is ‘ + ADDR FROM EMP;

B SELECT NAME || ’’’s address is ‘ || ADDR FROM EMP;

C SELECT NAME + ’\’s address is ‘ + ADDR FROM EMP;

D SELECT NAM

E || ’\’s address is ‘ || ADDR FROM EMP;

6:

在Oracle中,执行下面的语句:

SELECT ceil(-97.342),

floor(-97.342), -123.01 -124

round(-97.342),

trunc(-97.342)

FROM dual;

哪个函数的返回值不等于-97(B)。

A ceil()

B floor()

C round()

D trunc()

7:在Oracle中,事务中使用下列SQL语句不会引起锁定(A)。(选择一项)

A SELECT

B INSERT

C UPDATE

D DELETE

8:

ORACLE中,执行语句:SELECT address1||’,'||address2||’,'||address2 ”Address”FROM employ;将会返回(B)列。

A 0

B 1

C 2

D 3

9:

Oracle数据库中,下面(C)可以作为有效的列名。

A Column

B 123_NUM

C NUM_#123

D #NUM123

10:

Oracle数据库中,以下(C)命令可以删除整个表中的数据,并且无法回滚。

A drop

B delete

C truncate

D cascade

二简答题(4*10=40)

1. 写出几个对字符串操作的函数?

答:ASCII() –函数返回字符表达式最左端字符的ASCII 码值

CHR() –函数用于将ASCII 码转换为字符

–如果没有输入0 ~ 255 之间的ASCII 码值CHR 函数会返回一个NULL 值

–应该是必须给chr()赋数字值

concat(str,str)连接两个字符串

LOWER() –函数把字符串全部转换为小写

UPPER() –函数把字符串全部转换为大写

LTRIM() –函数把字符串头部的空格去掉

RTRIM() –函数把字符串尾部的空格去掉

TRIM() –同时去掉所有两端的空格

实际上LTRIM(),RTRIM(),TRIM()是将指定的字符从字符串中裁减掉

其中LTRIM(),RTRIM()的格式为xxxx(被截字符串,要截掉的字符串),但是TRIM()

的格式为TRIM(要截掉的一个字符from 被截的字符串)

SUBSTR() –函数返回部分字符串

INSTR(String,substring) –函数返回字符串中某个指定的子串出现的开始位置,如

果不存在则返回0

REPLACE(原来的字符串,要被替换掉的字符串,要替换成的字符串)

SOUNDEX() –函数返回一个四位字符码

–SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字

均只返回NULL 值

2.描述一下事务,以及事务的一致性和可恢复性。

答案:事务是这样一种机制,它确保多个SQL语句被当作单个工作单元来处理。事务具有以下的作用:

* 一致性:同时进行的查询和更新彼此不会发生冲突,其他用户不会看到发生了变

化但尚未提交的数据。

* 可恢复性:一旦系统故障,数据库会自动地完全恢复未完成的事务。

3.Truncate; drop; delete三者的区别?

这道题可以衍生出很多的问题比如:想快速的清除一个很大的表中的数据应该用设么操作?答案是:应该用truncate。还有,在对两个相同纪录数的分别表使用

了truncate,和delete commit;后对这两个表进行count(*)统计记录数操作,那个表

速度会快些?答案是:使用了truncate的会快些。)

delete一般用于删除少量记录的操作,而且它是要使用回滚段并且要进行显示的提交事务。而truncate则使用于大量删除数据,而且隐式提交事务,其速度要

比使用delete快的多。

1>、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK

命令DELETE将被撤销,而TRUNCATE则不会被撤销。

2>、TRUNCATE是一个DDL语言而DELETE是DML语句,向其他所有的DDL

语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。

3>、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全

浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。

4>、TRUNCATE不能触发触发器,DELETE会触发触发器。

5>、不能授予任何人清空他人的表的权限。

6>、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。

7>、不能清空父表。

4.DDL和DML分别代表什么??

DDL表示数据定义语言,在ORACLE中主要包括CREATE,ALTER,DROP

DML表示数据操作语言,主要的DML有SELECT,INSERT,UPDATE,DELETE

5.oracle中如何删除用户?

Oracle中使用DROP USER来删除用户,如果使用DROP USER CASCADE那么用户的对象也同时被删除掉。为了达到删除用户的效果而又不影响对用户下的对象的使用可以使用alter user username account lock将用户锁定。

6.ORACLE的基本数据类型有哪些?

Char()存储定长字符,定义的时候可以不为他指定长度但是如若往里插入值则会出错;

varchar2()存储变长字符定义的时候必须指定长度,date存储时间日期;Number()数字类型,包括整型,浮点型等;clob()大容量字符串;blob()大二进制对象

7.列举几种表的连接方式

Answer:等连接(内连接)、非等连接、自连接、外连接(左、右、全)

Or hash join/merge join/nest loop(cluster join)/index join ??

ORACLE 8i,9i 表连接方法。

一般的相等连接:select * from a, b where a.id = b.id; 这个就属于内连接。

对于外连接:

Oracle中可以使用“(+) ”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN

LEFT OUTER JOIN:左外关联

SELECT https://www.360docs.net/doc/ca8046513.html,st_name, e.department_id, d.department_name

FROM employees e

LEFT OUTER JOIN departments d

ON (e.department_id = d.department_id);

等价于

SELECT https://www.360docs.net/doc/ca8046513.html,st_name, e.department_id, d.department_name

FROM employees e, departments d

WHERE e.department_id=d.department_id(+)

结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录。

RIGHT OUTER JOIN:右外关联

SELECT https://www.360docs.net/doc/ca8046513.html,st_name, e.department_id, d.department_name

FROM employees e

RIGHT OUTER JOIN departments d

ON (e.department_id = d.department_id);

等价于

SELECT https://www.360docs.net/doc/ca8046513.html,st_name, e.department_id, d.department_name

FROM employees e, departments d

WHERE e.department_id(+)=d.department_id

结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。

FULL OUTER JOIN:全外关联

SELECT https://www.360docs.net/doc/ca8046513.html,st_name, e.department_id, d.department_name

FROM employees e

FULL OUTER JOIN departments d

ON (e.department_id = d.department_id);

结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录和没有任何员工的部门记录。

ORACLE8i是不直接支持完全外连接的语法,也就是说不能在左右两个表上同时加上(+),下面是在ORACLE8i可以参考的完全外连接语法

select t1.id,t2.id from table1 t1,table t2 where t1.id=t2.id(+)

union

select t1.id,t2.id from table1 t1,table t2 where t1.id(+)=t2.id

连接类型

定义图示例子

内连接只连接匹配的行select A.c1,B.c2 from A join B on A.c3 = B.c3;

左外连接包含左边表的全部行(不管右边的表中是否存在与它们匹配的行)以及右边表中全部匹配的行select A.c1,B.c2 from A left join B on A.c3 = B.c3;

右外连接包含右边表的全部行(不管左边的表中是否存在与它们匹配的行)以及左边表中全部匹配的行select A.c1,B.c2 from A right join B on A.c3 = B.c3;

全外连接包含左、右两个表的全部行,不管在另一边的表中是否存在与它们匹配的行select A.c1,B.c2 from A full join B on A.c3 = B.c3;

(theta)连接使用等值以外的条件来匹配左、右两个表中的行select A.c1,B.c2 from A join B on A.c3 != B.c3;

交叉连接生成笛卡尔积——它不使用任何匹配或者选取条件,而是直接将一个数据源中的每个行与另一个数据源的每个行一一匹配select A.c1,B.c2 from A,B;

8.如何修改表名?

alter table old_table_name rename to new_table_name;

9、如何统计两个表的记录总数

select (select count(id) from table_nameA)+(select count(id) from table_nameB)总数from dual;

10 、日期的各部分的常用的的写法

select to_char(sysdate,’yyyy’) from dual;

取时间点的月份的写法:

select to_char(sysdate,’mm’) from dual;

取时间点的日的写法:

select to_char(sysdate,’dd’) from dual;

取时间点的时的写法:

select to_char(sysdate,’hh24′) from dual;

取时间点、分的写法:

select to_char(sysdate,’mi’) from dual;

取时间点、秒的写法:

select to_char(sysdate,’ss’) from dual;

取时间点的日期的写法:

select trunc(sysdate) from dual;

取时间点的时间的写法:

select to_char(sysdate,’hh24:mi:ss’) from dual;

日期,时间形态变为字符形态

select to_char(sysdate) from dual;

将字符串转换成日期或时间形态:

select to_date(’2003/08/01′) from dual;

select to_char(sysdate,’d') from dual;

返回参数一年中的第几天的写法:

select to_char(sysdate,’ddd’) from dual;

返回午夜和参数中指定的时间值之间的秒数的写法:

select to_char(sysdate,’sssss’) from dual;

返回参数中一年的第几周的写法:

select to_char(sysdate,’ww’) from dual;

currval和nextval为表创建序列

create sequence empseq … ;

select empseq.currval from dual ;

自动插入序列的数值

insert into emp values (empseq.nextval, ‘lewis’, ‘clerk’, 7902, sysdate, 1200, null,20) ;

三操作题(2*20=40)

1、查询EMP表显示在1981年2月1日到1981年5月1日之间雇佣的雇员名、岗位及雇佣日期,并以雇佣日期进行排序。(注意日期转换的知识点)

select ename, job, hiredate

from emp

where hiredate > to_date('1981/2/1', 'YYYY/MM/DD')

and hiredate < to_date('1981/5/1', 'YYYY/MM/DD')

order by hiredate;

2、列出至少有一个雇员的所有部门。

select d.deptno, d.dname, count(e.empno)

from emp e, dept d

where e.deptno(+) = d.deptno

group by d.deptno, d.dname

having count(e.empno) >= 1

3、列出与“SCOTT”从事相同工作的所有雇员。(注意关于exist的东西,因为in的执行效率比较低,虽然写起来简单)

select * from emp e where e.job in (select distinct p.job from emp p where p.ename='SC OTT');

select * from emp e where exists (select 1 from emp p where p.job = e.job and p.ename ='SCOTT');

4、列出薪金等于在部门30工作的所有雇员的薪金的雇员的姓名和薪金。(注意考虑

e.deptno is null这种情况及exist的写法)

select * from emp e where e.sal in (select p.sal from emp p where p.deptno = 30) and (e. deptno <> 30 or e.deptno is null);

select * from emp e where exists (select 1 from emp p where p.sal = e.sal and p.deptno= 30 and (e.deptno<>30 or e.deptno is null) );

5、列出在每个部门工作的雇员的数量以及其他信息。

select d.deptno,d.loc,d.dname ,count(e.empno) from emp e ,dept d where e.deptno (+)= d.deptno group by d.deptno,d.loc,d.dname;

select e.*,d.deptno,count(e.empno) over(partition by d.deptno) from emp e ,dept d where e.deptno (+)= d.deptno

6、找出各月倒数第3天受雇的所有员工.

select e.* from emp e where last_day(e.hiredate)= e.hiredate+2;

7、找出早于12年前受雇的员工.

select *

from emp

where hiredate < trunc(sysdate)+(INTERVAL '-12' YEAR);

8、显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面.

select ename,

extract(YEAR from hiredate) 年,

extract(MONTH from hiredate) 月

from emp

order by 月, 年;

select e.ename,

to_char(e.hiredate, 'yyyy') 年,

to_char(e.hiredate, 'mm') 月

from emp e

order by 月, 年;

9、对于每个员工,显示其加入公司的天数. (注意如果select后面的字段中除了emp表中原有字段还有其他字段,那么需要将emp重命名)

select e.*,ceil(sysdate-e.hiredate) "入职天数" from emp e ;

select ename, trunc(sysdate-hiredate) from emp;

如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。

union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

Union All:对两个结果集进行并集操作,包括重复行,不进行排序;

Select1 union select2 取两个select 去除重复的

Select1 union all select 不去除重复的

Select1 intersect select2 取交集

Select1 minus select2 取差集

10、用一个查询语句,实现查询各个岗位的总工资和各个部门的总工资和所有雇员的总工资

(方法1)-- union all !!

select e.job||'岗位总工资' "总工资",sum(e.sal) from emp e group by e.job

union all

select e.deptno||'部门总工资',sum(e.sal) from emp e group by e.deptno

union all

select '雇员总工资',sum(e.sal) from emp e;

(方法2)grouping sets!!

select e.job,e.deptno,sum(e.sal) from emp e group by grouping sets((e.job),(e.deptno),( null));

(方法3)

select distinct

sum(e.sal) over(partition by e.job) 岗位总工资,

sum(e.sal) over(partition by e.deptno) 部门总工资,

sum(e.sal) over() 雇员总工资

from emp e;

(方法3)grouping sets(不重要)

select sum(e.sal),

decode(grouping_id(e.job), 1, 'deptno合计', e.job) job,

decode(grouping_id(e.deptno), 1, 'job合计', e.deptno) deptno,

decode(grouping_id(e.job),

1,

decode(grouping_id(e.deptno), 1, '总计')) sal_sum

from emp e

group by grouping sets((e.job),(e.deptno),(null));

(方法4)cube (不重要)

select *

from (select sum(e.sal),

decode(grouping_id(e.job), 1, '合计', e.job) job,

decode(grouping_id(e.deptno), 1, '合计', e.deptno) deptno

from emp e

group by cube(e.job, e.deptno)) a

where a.job = '合计'

or(a.job is not null and a.deptno ='合计')

11、一个面试中遇到的SQL语句的查询问题

--表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B 列大于C列时选择B列否则选择C列。

create table compare(A number(2),B number(2), C number(2));

insert into compare values (70, 80, 98);

select * from compare;

答案:

select (case when a > b then a else b end),

(case when b > c then b else c end)

from compare

12、有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路):

大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。

显示格式:

语文数学英语

及格优秀不及格

*/

------------------------------------------

create table exam("语文" number(2),"数学" number(2), "英语" number(2));

insert into exam values (70, 80, 58);

select * from exam;

答案:

select case

when 语文>= 80 then '优秀'

when 语文>= 60 then '及格'

else '不及格'

end 语文,

case

when 数学>= 80 then '优秀'

when 数学>= 60 then '及格'

else '不及格'

end 数学,

case

when 英语>= 80 then '优秀'

when 英语>= 60 then '及格'

else '不及格'

end 英语

from exam;

13、查询每个部门的员工数量,只找大于4个的

select deptno,sum(sal) from emp

group by deptno

select deptno,count(*) from emp

group by deptno having count(*)>4

14、查询每个部门的员工数量,没有的也要显示,部门要显示名称

select d.deptno,count(e.empno) from emp e,dept d where e.deptno(+)=d.deptno

group by d.deptno having count(e.empno)>=1;

15、查询高于平均工资的员工工资

select ename from emp

where sal>(select avg(sal) from emp);

ALL和any

select ename,sal,deptno from emp

where sal < all(select sal from emp where deptno=10)

;

select ename,sal,deptno from emp

where sal < any(select sal from emp where deptno=10)

16、查询每个部门中每个岗位收入和

select deptno,job, sum(sal) from emp

group by job,deptno order by deptno

17、查询工资最高的前两名

select * from (select e.*,rank() over(order by sal desc) rank from emp e) where rank<=2

18、列出在部门"SALES"(销售部)工作的员工的姓名,假定不知道销售部的部门编号.

a.通过dept表查询出销售部的部门编号

select deptno from dept where dname like 'SALES'

b.将之前的查询作为子查询:

select ename from emp where deptno =

(select deptno from dept where dname like 'SALES')

19、给任职超过十年的加薪10%(这个问题是个批量更新)

update emp set sal=sal*1.1 where months_between(sysdate,hiredate)/12 >20;

20、列出薪金高于部门30中员工的薪金的所有员工的姓名和薪金,部门名称

第一步:查询部门30中员工的薪金

select sal from emp where deptno='30';

第二步:查询高于上述薪金的员工姓名和薪金

select e.ename,e.sal

from emp e

where e.sal >all(select sal from emp where deptno='30');

第三步:查询部门

select e.ename,e.sal,d.dname

from emp e,dept d

where e.sal >all(select sal from emp where deptno='30') and e.deptno=d.deptno;

ORACLE数据库期末考试题目及答案

期末考试卷(卷) 课程名称:数据库考试方式:开卷()闭卷(√) 、本试卷共4 页,请查看试卷中是否有缺页。 2、考试结束后,考生不得将试卷、答题纸带出考场。 1、以下(a )内存区不属于SGA。 A.PGA B.日志缓冲区 C.数据缓冲区 D.共享池 2、d )模式存储数据库中数据字典的表和视图。 (A.DBA B.SCOTT C.SYSTEM D.SYS 3、Oracle 中创建用户时,在若未提及DEFAULT TABLESPACE 关键字,Oracle 就将 c )则(表空间分配给用户作为默认表空间。A.HR B.SCOTT C.SYSTEM D.SYS

4、a )服务监听并按受来自客户端应用程序的连接请求。(A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 5、b )函数通常用来计算累计排名、移动平均数和报表聚合等。(A.汇总B.分析C.分组D.单行 6、b)SQL 语句将为计算列SAL*12 生成别名Annual Salary (A.SELECT ename,sal*12 …Annual Salary? FROM emp; B.SELECT ename,sal*12 “Annual Salary” FROM emp; C.SELECT ename,sal*12 AS Annual Salary FROM emp; D.SELECT ename,sal*12 AS INITCAP(“Annual Salary”) FROM emp; 7、锁用于提供(b )。 A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 8、( c )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除行。 A.行共享B.行排他C.共享D.排他 9、带有( b )子句的SELECT 语句可以在表的一行或多行上放置排他锁。 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH

oracle练习题及答案

WORD格式 1.找出各月倒数第3天受雇的所有员工 selectenamefromempwherelast_day(hiredate)-2=hiredate; 2.找出早于12年前受雇的员工 selectenamefromempwheremonths_between(sysdate,hiredate)>=144; 3.以首字母大写的方式显示所有员工的姓名 selectinitcap(ename)fromemp; 4.显示正好为5个字符的员工的姓名 selectenamefromempwherelength(ename)=5; 5.显示不带有“R”的员工姓名 selectenamefromempwhereinstr(ename,'R',1,1)=0; 6.显示所有员工姓名的前三个字符 selectsubstr(ename,1,3)fromemp; 7.显示所有员工的姓名,用“a”替换所有的“A” selectename,replace(ename,'A','a')fromemp; 8.显示满10年服务年限的员工的姓名和受雇日期 selectename,hiredatefromempwheremonths_between(sysdate,hiredate)>=120; 9.显示员工的详细资料,按姓名排序 select*fromemporderbyenamedesc; 10.显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面selectename,hiredatefromemporderbyhiredate; 11.显示所有员工的姓名、工作和薪金,按照工作的降序排序,若工作相同则按薪金排序selectename,job,salfromemporderbyjobdesc,sal; 12.显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份 相同则将最早年份的员工排在最前面 selectename,to_char(hiredate,'yyyy')h,to_char(hiredate,'mm')m fromemporderbym,h; 13.显示在一个月为30天的情况所有员工的日薪金,忽略余数 selecttrunc(sal/30)fromemp; 14.找出在(任何年份的)2月受聘的所有员工 selectenamefromempwhereto_char(hiredate,'mm')=2; 15.对于每个员工显示其加入公司的天数 selectename,sysdate-hiredatefromemp; 16.显示姓名字段的任何位置包含“A”的所有员工姓名 selectenamefromempwhereinstr(ename,'A',1,1)<>0; selectenamefromempwhereenamelike'%A%'; 专业资料整理

2019年oracle期末考试试题及答案

A.PGA B.日志缓冲区C.数据缓冲区D.共享池 2、()模式存储数据库中数据字典的表和视图。 A.DBA B.SCOTT C.SYSTEM D.SYS 3、在Oracle中创建用户时,若未提及DEFAULT TABLESPACE关键字,则Oracle就将() 表空间分配给用户作为默认表空间。 A.HR B.SCOTT C.SYSTEM D.SYS 4、()服务监听并按受来自客户端应用程序的连接请求。 A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 5、()函数通常用来计算累计排名、移动平均数和报表聚合等。 A.汇总B.分析C.分组D.单行 6、()SQL语句将为计算列SAL*12生成别名Annual Salary A.SELECT ename,sal*12 ‘Annual Salary’ FROM emp; B.SELECT ename,sal*12 “Annual Salary” FROM emp; C.SELECT ename,sal*12 AS Annual Salary FROM emp; D.SELECT ename,sal*12 AS INITCAP(“Annual Salary”) FROM emp; 7、锁用于提供( )。 A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 8、( )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除 行。 A.行共享B.行排他C.共享D.排他 9、带有( )子句的SELECT语句可以在表的一行或多行上放置排他锁。 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH 10、使用( )命令可以在已分区表的第一个分区之前添加新分区。 A.添加分区B.截断分区 C.拆分分区D.不能在第一个分区前添加分区 11、( )分区允许用户明确地控制无序行到分区的映射。 A.散列B.范围C.列表D.复合 12、可以使用()伪列来访问序列。 A.CURRVAL和NEXTVAL B.NEXTVAL和PREVAL C.CACHE和NOCACHE D.MAXVALUE和MINVALUE 13、带有错误的视图可使用()选项来创建。 A.FORCE B.WITH CHECK OPTION C.CREATE VIEW WITH ERROR D.CREATE ERROR VIEW

oracle考试试题及答案

试题一 一、填空题(每小题4分,共20分) 1、数据库管理技术经历了人工管理、文件系统、数据库系统三个阶段 2、数据库三级数据结构是外模式、模式、内模式 3、Oracle数据库中,SGA由数据库缓冲区,重做日志缓冲区,共享池组成 4、在Oracle数据库中,完正性约束类型有Primay key约束。Foreign key约束,Unique约束,check约束,not need约束 5、PL/SQL中游标操作包括声明游标,打开游标,提取游标,关闭游标 二、正误判断题(每小题2分,共20分) 1、数据库中存储的基本对象是数据(T) 2、数据库系统的核心是DBMS(T) 3、关系操作的特点是集合操作(T) 4、关系代数中五种基本运算是并、差、选择、投影、连接(F) 5、Oracle进程就是服务器进程(F) 6、oraclet系统中SGA所有用户进程和服务器进程所共享(T) 7、oracle数据库系统中数据块的大小与操作系统有关(T) 8、oracle数据库系统中,启动数据库和第一步是启动一个数据库实例(T) 9、PL/SQL中游标的数据是可以改变的(F) 10、数据库概念模型主要用于数据库概念结构设计() 三、简答题(每小题7分,共35分) 1、何谓数据与程序的逻辑独立性和物理独立性? 2、试述关系代数中等值连接与自然连接的区别与联系? 3、何谓数据库,数据库设计一般分为哪些阶段? 4、简述Oracle逻辑数据库的组成?

5、试任举一例说明游标的使用方法? 五、设有雇员表emp(empno,ename,age,sal,tel,deptno), 其中:empno-----编号,name------姓名,age -------年齡,sal-----工资,tel-----电话 deptno-----部门号。 请按下列要求分别晨SQL*PLUS下编程。(每小题3分,共15分)?1、查询家有电话的职工信息。 ?2、查询工资在500至800元之间的雇员信息 ?3、按年龄递增顺序显示雇员编号、姓名、年龄、工资 ?4、求部门号为D_01的平均工资 ?5、查找部门号为D_01的40岁以上而工资在400元以下的雇员名单。 1、SQL>SELECT * FROM emp WHERE tel NOT NULL; 2、SQL>SELECT * FROM emp WHERE BETWEEN 500 AND 800; 3、SQL>SELECT empno,ename,age,sal FROM emp ORDER BY age ASC; 4、SQL>SELECT AVG(sal) FROM emp WHERE deptno='D_01'; 5、SQL>SELECT ename FROM emp WHERE deptno='D_01' AND age>40 AND Sal<400; ? 试题一答案 一、填空题 1、人工管理、文件系统、数据库系统 2、外模式、模式、内模式 3、数据库缓冲区,重做日志缓冲区,共享池 4、Primay key约束。Foreign key约束,Unique约束,check约束,not need 约束 5、声明游标,打开游标,提取游标,关闭游标 二、正误判断题 1、T 2、T 3、T 4、F 5、F 6、T 7、T 8、T 9、F 三、(略) 五、 1、SQL>SELECT * FROM emp WHERE tel NOT NULL; 2、SQL>SELECT * FROM emp WHERE BETWEEN 500 AND 800; 3、SQL>SELECT empno,ename,age,sal FROM emp ORDER BY age ASC; 4、SQL>SELECT AVG(sal) FROM emp WHERE deptno='D_01'; 5、SQL>SELECT ename FROM emp WHERE deptno='D_01' AND age>40 AND Sal<400; 试题二

Oracle面试题笔试题及参考答案

一套Oracle面试题笔试题及参考答案 Oracle, 笔试, 面试 完成下列操作,写出相应的SQL语句 1.创建表空间neuspace,数据文件命名为neudata.dbf,存放在d:\data 目录下,文件大小为200MB,设为自动增长,增量5MB,文件最大为 500MB。(8分) 答:create tablespace neuspace datafile ‘d:\data\neudata.dbf’ size 200m auto extend on next 5m maxsize 500m; 2. 假设表空间neuspace已用尽500MB空间,现要求增加一个数据文件,存放在e:\appdata目录下,文件名为appneudata,大小为500MB,不自动增长。(5 分) 答:alter tablespace neuspace add datafile ‘e:\appdata\appneudata.dbf’ size 500m; 3. 以系统管理员身份登录,创建账号tom,设置tom的默认表空间为neuspace。为tom分配connect和resource系统角色,获取基本的系统权限。然后为tom 分配对用户scott的表emp的select权限和对SALARY, MGR属性的update权限。 (8分) 答:create user tom identified by jack default tablespace neuspace; Grant connect, resource to tom; Grant select, update(salary, mgr) on scott.emp to tom;

Oracle数据库试题及答案

Oracle数据库试题 一、选择题 1、段是表空间中一种逻辑存储结构,以下( D )不是ORACLE数据库使用的段类型。(A)索引段(B)临时段(C)回滚段(D)代码段 2、 ORACLE数据库物理结构包括以下三种文件,以下不属于的是( A )。 ?(A)系统文件(B)日志文件(C)数据文件(D)控制文件 3、数据库中有两个用户scott和muuser,物资表wz是属于myuser用户的,但当前用户是scott,要求查询物资表wz(wno,wname,wtype,wunit)物资单位wunit列为null的记录,取结果的前5条记录显示,以下正确的SQL语句是( C ) (A)select*from scott.wz where wunit is null and rownum<5; (B)select*from myuser.wz where wunit = null and rownum<5; (C) select*from myuser.wz where wunit is null and rownum<6; (D)select*form scott.wz where wunit is null and rownum<6; ?4、若当前日期为’25-5月-06’,以下( D? )表达式能计算出5个月后那一天所在月份的最后一天的日期。 (A)NEXT_DAY(ADD_MONTHS(28-5月-06,5)) (B)NEXT_DAY(MONTHS_BETWEEN(28-5月-06,5)) (C)NEXT_DAY(MONTHS_BETWEEN(’28-5月-06’,5)) (D)NEXT_DAY(ADD_MONTHS(’28-5月-06’,5)) 5、下列叙述中正确的是_C_。 A、数据库是一个独立的系统,不需要操作系统的支持 B、数据库设计是指设计数据库管理系统 C、数据库技术的根本目标是要解决数据共享的问题 D、数据库系统中,数据的物理结构必须与逻辑结构一致 6、SQL语句中修改表结构的命令是 ???C?? ?。 A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE 7、数据库DB、数据库系统DBS、数据库管理系统DBMS三者之间的关系是__ A___。 A、DBS包括DB和DBMS B、DBMS包括DB和DBS C、DB包括DBS和DBMS D、DBS就是DB,也就是DBMS 8、要控制两个表中数据的完整性和一致性可以设置"参照完整性",要求这两个表_A___。 A、是同一个数据库中的两个表 B、不同数据库中的两个表 C、两个自由表 D、一个是数据库表另一个是自由表 9、在关系模型中,实现"关系中不允许出现相同的元组"的约束是通过__B_ __。 A、候选键 B、主键 C、外键 D、超键 10、索引字段值不唯一,应该选择的索引类型为___ B__。 A、主索引 B、普通索引 C、候选索引 D、唯一索引 11、从数据库中删除表的命令是___C __。 A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE 12、 DELETE FROM S WHERE 年龄>60语句的功能是___B___。 A、从S表中彻底删除年龄大于60岁的记录 B、S表中年龄大于60岁的记录被加上删除标记

Oracle数据库试题及答案word版本

O r a c l e数据库试题及 答案

Oracle数据库试题 一、选择题 1、段是表空间中一种逻辑存储结构,以下( D )不是ORACLE数据库使用的段类型。 (A)索引段(B)临时段(C)回滚段(D)代码段 2、 ORACLE数据库物理结构包括以下三种文件,以下不属于的是( A )。(A)系统文件(B)日志文件(C)数据文件(D)控制文件 3、数据库中有两个用户scott和muuser,物资表wz是属于myuser用户的,但当前用户是scott,要求查询物资表wz(wno,wname,wtype,wunit)物资单位wunit列为null的记录,取结果的前5条记录显示,以下正确的SQL语句是( C ) (A)select*from scott.wz where wunit is null and rownum<5; (B)select*from myuser.wz where wunit = null and rownum<5; (C) select*from myuser.wz where wunit is null and rownum<6; (D)select*form scott.wz where wunit is null and rownum<6; 4、若当前日期为’25-5月-06’,以下( D )表达式能计算出5个月后那一天所在月份的最后一天的日期。 (A)NEXT_DAY(ADD_MONTHS(28-5月-06,5)) (B)NEXT_DAY(MONTHS_BETWEEN(28-5月-06,5)) (C)NEXT_DAY(MONTHS_BETWEEN(’28-5月-06’,5)) (D)NEXT_DAY(ADD_MONTHS(’28-5月-06’,5))

Oracle测试题及答案.doc

Oracle 式 学号_____________________________________ 姓名________________ 分数_ (一)按照题意写出SQL语句(45分每题3分) 本题用到下而三个关系表: 借书卡card (eno卡号,name姓名,class班级) 图书books (bno书号,bname书名,author作者,price单价,quantity库存册数) 借书记录borrow (eno借书卡号,bno书号,rdate还书曰期) 注:限定每人每种书只能借一本;库存册数随借书、还书而改变。 1.写出建立borrow表的SQL语句,要求定义主码完整性约束和引用完整性约束 create table card (eno char (6) primary key, name varchar2(10), class varchar2(12) ); create table books (bno char (8) primary key, bname varchar2(50), author varchar2(10), price number(5,3), quantity number(4) ); create table borrow (eno char (6) references card(eno) on delete cascade, bno char (8) references books (bno) on delete cascade, rdate date, primary key (eno, bno) ); 2.找出借书超过5本的读者,输出借书卡号及所借图书册数。 select eno, count (*)册数 from borrow group by eno having count(*)>5; 3.查询借阅了“水浒’’一书的读者,输出姓名及班级。 select name, class from card where eno in ( select eno from borrow where bno=( select bno from books where bname=’ 水游, ) ) 1.杏询过期未还图书,输出借阅者(卡号)、书号及还书曰期。

Oracle笔试题及答案

一、选择题(每题1分) 1.Oracle发出下列select语句: SQL> select e.empno, e.ename, d.loc 2 from emp e, dept d 3 where e.deptno = d.deptno 4 and substr(e.ename, 1, 1) = ‘S’; 下列哪个语句是Oracle数据库中可用的ANSI兼容等价语句? A.select empno, ename, loc from emp join dept on emp.deptno = dept.deptno where substr(emp.ename, 1, 1) = ‘S’; B.select empno, ename, loc from emp, dept on emp.deptno = dept.deptno where substr(emp.ename, 1, 1) = ‘S’; C.select empno, ename, loc from emp join dept where emp.deptno = dept.deptno and substr(emp.ename, 1, 1) = ‘S’; D.select empno, ename, loc from emp left join dept on emp.deptno = dept.deptno and substr(emp.ename, 1, 1) = ‘S’; 2.你要对操纵Oracle数据库中的数据。下列哪个选项表示Oracle中select语句的功能, 并且不需要使用子查询? A.可以用select语句改变Oracle中的数据 B.可以用select语句删除Oracle 中的数据 C.可以用select语句和另一个表的内容生成一个表 D.可以用select语句对表截断 3.Oracle数据库中发出一个查询。下列哪个选项不能查询对用户定义静态表达式执行数学 运算时的查询组件? A.列子句 B.表子句 C.DUAL表 D.where子句 4.你要操纵Oracle数据,下列哪个不是SQL命令? A.select * from dual; B.set define C.update emp set ename = 6543 where ename = ‘SMITHERS’; D.create table employees(empid varchar2(10) primary key); 5.你要在Oracle中定义SQL查询。下列哪个数据库对象不能直接从select语句中引用?A.表 B.序列 C.索引 D.视图 6.你要根据PRODUCT_NAME列从PROFITS表查询中过滤返回的数据。下列哪个子句包含相 应过滤条件的引用? A.select B.from C.where D.having 7.下列代码显示了PROFITS表输出的局部: PRODUCT_NAME PRODUCT_TYPE QTR_END_DATE PROFIT ------------ ------------ ------------ ------------- BARNEY DOLL TOY 31-MAR-2001 6575430.30 GAS GRILL APP 31-MAR-2001 1234023.88

Oracle数据库基础题库【含答案】

1、判断题,正确请写写"T",错误请写写"F", 1、oracle数据库系统中,启动数据库的第一步是启动一个数据库实 例。( T )2、Oracle服务器端的监听程序是驻留在服务器上的单独 进程,专门负责响应客户机的连接请求。( F) 3、oracle数据库中实例和数据库是一一对应的(非ORACLE并行服务, 非集群)。( T) 4、系统全局区SGA 是针对某一服务器进程而保留的内存区域,它是不 可以共享的。( F ) 5、数据库字典视图ALL_***视图只包含当前用户拥有的数据库对象信 息。( F ) 8、数据字典中的内容都被保存在SYSTEM表空间中。( T ) 9、HAVING后面的条件中可以有聚集函数,比如SUM(),AVG()等, WHERE 后面的条件中也可以有聚集函数。( F ) 10、"上海西北京" 可以通过like ‘%上海_’查出来。( F ) 11、表空间是oracle 最大的逻辑组成部分。Oracle数据库由一个或多 个表空间组成。一个表空间由一个或多个数据文件组成,但一个数据文 件只能属于一个表空间。( T ) 12、表空间分为永久表空间和临时表空间两种类型。( T ) 13、truncate是DDL操作,不能 rollback。( T ) 14、如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使 用WHERE语句。( F ) 15、Oracle数据库中字符串和日期必须使用双引号标识。( F ) 16、Oracle数据库中字符串数据是区分大小写的。( T ) 17、Oracle数据库中可以对约束进行禁用,禁用约束可以在执行一些特 殊操作时候保证操作能正常进行。( F ) 18、为了节省存储空间,定义表时应该将可能包含NULL值的字段放在字 段列表的末尾。( T )  20、在连接操作中,如果左表和右表中不满足连接条件的数据都出现在 结果中,那么这种连接是全外连接。( T ) 21、自然连接是根据两个表中同名的列而进行连接的,当列不同名时, 自然连接将失去意义。( T ) 23、PL/SQL代码块声明区可有可无。( T ) 24、隐式游标与显式游标的不同在于显式游标仅仅访问一行,隐式的可 以访问多行。( F )

Oracle面试题及答案整理

Oracle面试题及答案整理

Oracle面试题及答案整理 1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。 select fclass,max(fscore) from table1 group by fclass,fid 2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。 类如: 101a1001 101a1001 102a1002 102a1003 103a1004 104a1005 104a1006 105a1007 105a1007 105a1007 结果: 102a1002

102a1003 104a1005 104a1006 select t2.* from table1 t1, table1 t2 where t1.fid = t2.fid and t1.fno <> t2.fno; 3、有员工表empinfo ( Fempno varchar2(10) not null pk, Fempname varchar2(20) not null, Fage number not null, Fsalary number not null ); 假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQL计算以下四种人: fsalary>9999 and fage > 35 fsalary>9999 and fage < 35 fsalary <9999 and fage > 35 fsalary <9999 and fage < 35 每种员工的数量; select sum(case when fsalary > 9999 and fage > 35 then 1 else 0end) as "fsalary>9999_fage>35",

oracle数据库期末考试试题及答案剖析

oracle数据库期末考试试题及答案 A1、以下()内存区不属于SGA。 A.PGA B.日志缓冲区C.数据缓冲区D.共享池 D2、()模式存储数据库中数据字典的表和视图。 A.DBA B.SCOTT C.SYSTEM D.SYS C3、在Oracle中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle就将()表空间分配给用户作为默认表空间。A.HR B.SCOTT C.SYSTEM D.SYS A4、()服务监听并按受来自客户端应用程序的连接请求。A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer B5、()函数通常用来计算累计排名、移动平均数和报表聚合等。A.汇总B.分析C.分组D.单行 B6、()SQL语句将为计算列SAL*12生成别名Annual Salary A.SELECT ename,sal*12 ‘Annual Salary' FROM emp; B.SELECT ename,sal*12 “Annual Salary”FROM emp; C.SELECT ename,sal*12 AS Annual Salary FROM emp; ) FROM

”Annual Salary“SELECT ename,sal*12 AS INITCAP(.D. emp; B7、锁用于提供( )。 A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 C8、( )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除行。 A.行共享B.行排他C.共享D.排他 B9、带有( )子句的SELECT语句可以在表的一行或多行上放置排他锁。 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH C10、使用( )命令可以在已分区表的第一个分区之前添加新分区。A.添加分区B.截断分区 C.拆分分区D.不能在第一个分区前添加分区 C11、( )分区允许用户明确地控制无序行到分区的映射。 A.散列B.范围C.列表D.复合 C12、可以使用()伪列来访问序列。 A.CURRVAL和NEXTVAL B.NEXTVAL和PREVAL

Oracle期末考试试题及答案

Oracle期末考试试题及答案

考 生 信 息 栏 装 订 线 一、选择题:(本题共20个小题,每小题2分,共40分) 1当Oracle 服务器启动时,下列哪种文件不是必须的 ( ) 。 A. 数据文件 B. 控制文件 C. 日志文件 D. 归档日志文件 2. 在Oracle 中,一个用户拥有的所有数据库对象统称为 ( )。 A. 数据库 B. 模式 C. 表空间 D. 实例 3.在 Oracle 数据库的逻辑结构中有以下组件: 1. 表空间 2. 数据块 3. 区 4. 段 这些组件从大到小依次是( )。 A. 1→2→3→4 B.1→4→3→2 C.1→3→2→4 D. 4→1→3→2 4.下列哪个子句实现对一个结果集进行分组和汇总( )。 A.HAVING B.ORDER BY C.WHERE D.GROUP BY 5. 在Oracle 数据库中,( )用户模式存储数据字典表和视图对象。 A. SYS B. SYSTEM C. SCOTT D. SYSDBA 6.以下不属于命名的PL/SQL 块的是( )。 A .程序包 B .过程 C .游标 D .函数 7.在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将( )表空间分配给用户作为默认表空间。 A .HR B .SCOTT C .SYSTEM D .SYS

8.在Windows操作系统中,Oracle的( )服务是使用iSQL*Plus必须的。 A.OracleHOME_NAMETNSListener B. OracleServiceSID C. OracleHOME_NAMEAgent D. OracleHOME_NAMEHTTPServer 9.下列哪个语句可以在SQL*Plus 中直接调用一个过程( )。 A. RETURN B. CALL C. SET D. EXEC 10.如果服务器进程无法在数据缓冲区中找到空闲块,为添加从数据文件中读出的数据块,则系统会启动如下哪一个进程( ) A.CKPT B. DBWR C.LGWR D. SMON 11.下列哪一个锁模式不属于Oracle( )。 A.死锁 B.排他锁 C.行级共享锁 D.共享锁 12.有字符串数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其实际存储长度为( ) A. 10 4 B. 4 4 C. 10 10 D. 4 10 13.在Oracle中,当控制一个显式游标时,下面哪种命令包含INTO子句( )。 A. FETCH B. CLOSE C. OPEN D. CURSOR 14. ORACLE中,用来判断列值是否为空的操作符是( )。 A. ==NULL B. NULLIS C. AS NULL D. IS NULL 15.查询一个表的总记录数,可以采用( )统计函数。 A. AVG(*) B. SUM(*) C. COUNT(*) D. MAX(*) 16.以下的哪个命令可以将SQL 命令的运行结果保存到文件中( )。 A.SAVE B.SPOOL C.GET D.INPUT 17.为了去除结果集中重复的行,可在SELECT 语句中使用下列哪个关键字( ) 。 A.ALL B.DISTINCT C.SPOOL D.HAVING 18.关于模式的描述下列哪一项不正确( )。 A.表或索引等模式对象一定属于某一个模式 B.在Oracle 数据库中,模式与数据库用户是一一对应的 C.一个表可以属于多个模式 D.一个模式可以拥有多个表 19.下列SELECT 语句中,哪些子句可以包含子查询( )。 A.SELECT B.GROUP BY C.WHERE D.ORDER BY 20.在下列模式对象中,哪个对象不会占用实际的存储空间( )。

oracle模拟试题答案汇总

备注:题号相同的题目或者增加的一些题目是11级网络的模拟试题 第 1 题,选择题(2分): ORACLE中,游标可以分为三类,下面不是Oracle游标的是( 1 )。 (1) 系统游标 (2) 显式游标 (3)隐式游标 (4) REF游标 第 2 题,选择题(2分):PL/SQL块中定义了一个带参数的游标:CURSOR emp_cursor(dnum NUMBER) IS SELECT sal,comm FROM emp WHERE deptno=dnum; 那么正确打开此游标的语句是(1) (1) OPEN emp_cursor(20); (2) OPEN emp_cursor FOR 20; (3) OPEN emp_cursor USING 20; (4) FOR rmp_rec IN emp_cursor[20] LOOP ... END LOOP; 第 3 题,选择题(2分): 有关ORACLE索引说法正确的是(A ) (1) 索引的数据和表的数据分开存储,但索引组织表除外 (2) 所有索引中的数据是顺序排序 (3) 分区表的索引必须统一存储 (4) 只能对分区表的索引进行分区 第 4 题,选择题(2分): 下列有关包的使用说法错误的是( A) (1) 必须先创建包头,然后创建包体 (2) 在不同的包内模块可以重名 (3) 包的私有过程不能被外部程序调用 (4) 包体中的全局过程和函数必须在包 第 5 题,选择题(2分): 以下定义的哪个变量是非法的?( A) (1) var_ab number default:=1; var_ab number default 1; (2) var_ab number not null :='0'; (3) var_ab number; (4) var_ab number:=3; 第 6 题,选择题(2分): PL/SQL块中不能直接使用的SQL命令是(A) (1) drop (2) insert (3) update

oracle期末考试题及答案

1、以下()内存区不属于SGA。 A.PGA B.日志缓冲区 C.数据缓冲区 D.共享池 2、()模式存储数据库中数据字典的表和视图。 A.DBA B.SCOTT C.SYSTEM D.SYS 3、在Oracle中创建用户时,若未提及DEFAULT TABLESPACE关键字, 则Oracle就将()表空间分配给用户作为默认表空间。 A.HR B.SCOTT C.SYSTEM D.SYS 4、()服务监听并按受来自客户端应用程序的连接请求。 A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 5、()函数通常用来计算累计排名、移动平均数和报表聚合等。 A.汇总 B.分析 C.分组 D.单行 6、()SQL语句将为计算列SAL*12生成别名Annual Salary A.SELECT ename,sal*12 ‘Annual Salary’ FROM emp; B.SELECT ename,sal*12 “Annual Salary” FROM emp; C.SELECT ename,sal*12 AS Annual Salary FROM emp; D.SELECT ename,sal*12 AS INITCAP(“Annual Salary”) FROM emp; 7、锁用于提供( )。

A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 8、( )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不 允许插入、更新和删除行。 A.行共享 B.行排他 C.共享 D.排他 9、带有( )子句的SELECT语句可以在表的一行或多行上放置排他锁。 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH 10、使用( )命令可以在已分区表的第一个分区之前添加新分区。 A.添加分区 B.截断分区 C.拆分分区 D.不能在第一个分区前添加分区 11、( )分区允许用户明确地控制无序行到分区的映射。 A.散列 B.范围 C.列表 D.复合 12、可以使用()伪列来访问序列。 A.CURRVAL和NEXTVAL B.NEXTVAL和PREVAL C.CACHE和NOCACHE D.MAXVALUE和MINVALUE 13、带有错误的视图可使用()选项来创建。 A.FORCE B.WITH CHECK OPTION

oracle习题及答案

1.查询工资大于12000的员工姓名和工资 Select last_name||' '||first_name,salary from employees where salary >12000; 2.查询员工号为176的员工的姓名和部门号 Select last_name||' '||first_name,department_id from employees where employee_id=176; 3.选择工资不在5000到12000的员工的姓名和工资 Select last_name||' '||first_name,salary from employees where salary not between 5000 and 12000; 4.选择雇用时间在1998-02-01到1998-05-01之间的员工姓名,job_id 和雇用时间 Select last_name||' '||first_name,job_id,hire_date from employees where hire_date between '1-2月-98' and '1-5月-98'; 5.选择在20或50号部门工作的员工姓名和部门号 Select last_name||' '||first_name,department_id from employees where department_id in (20,50); 6.选择在1994年雇用的员工的姓名和雇用时间 Select last_name||' '||first_name,hire_date from employees where hire_date like '%94'; 7.选择公司中没有管理者的员工姓名及job_id Select last_name||' '||first_name,job_id from employees where Manger_id is null;

oracle 上机考试试题与答案

1、写一个pl/sql程序块:直接使用数据类型定义两个变量v_empno 和v_ename,从scott模式下的emp表中检索某个员工的编号empno 和姓名ename,存储到v_empno和v_ename,并输出此员工的编号和姓名。 set serveroutput on declare type merchandise is record( v_empno number(30), v_ename varchar2(30)); record_merchandise merchandise; begin select empno,ename into record_merchandise from emp where empno='7369';

dbms_output.put_line(record_merchandise.v_empno); dbms_output.put_line(record_merchandise.v_ename); end; 2、写一个pl/sql程序块:根据scott模式下的emp表中的部门编号deptno字段的值,为姓名为SCOTT的雇员修改工资;若他所在部门号为10,则工资加100;若部门号为20,则工资加300;否则工资加400。 set serveroutput on declare v_deptno emp.deptno%type; addsal emp.sal%type; sal number;

begin select deptno into v_deptno from emp where ename='SCOTT'; if v_deptno='10' then addsal:=100; elsif v_deptno='20' then addsal:=300; else addsal:=400; end if; update emp set sal=sal+addsal where ename='SCOTT'; dbms_output.put_line(sal); end; 3、写一个pl/sql程序块:定义一个游标类型type_cursor,然后使用type_cursor定义变量ref_cur;根据scott模式下的emp表和dept表,使用游标变量ref_cur检索员工姓名和工作信息,并输出员工姓名和工作信息;使用游标变量ref_cur检索部门编号和部门名称信息,并输出部门编号和部门名称信息。

相关文档
最新文档