文档库 最新最全的文档下载
当前位置:文档库 › ORACLE练习

ORACLE练习

ORACLE练习
ORACLE练习

1.选择在部门30中员工的所有信息

2.列出职位为(MANAGER)的员工的编号,姓名

3.找出奖金高于工资的员工

4.找出每个员工奖金和工资的总和

5.找出部门10中的经理(MANAGER)和部门20中的普通员工(CLERK)

6.找出部门10中既不是经理也不是普通员工,而且工资大于等于2000的员工

7.找出有奖金的员工的不同工作

8.找出没有奖金或者奖金低于500的员工

9.显示雇员姓名,根据其服务年限,将最老的雇员排在最前面

10.找出每个月倒数第三天受雇的员工(如:2009-5-29)

11.找出25年前雇的员工

12.所有员工名字前加上Dear ,并且名字首字母大写

13.找出姓名为5个字母的员工

14.找出姓名中不带R这个字母的员工

15.显示所有员工的姓名的第一个字

16.显示所有员工,按名字降序排列,若相同,则按工资升序排序

17.假设一个月为30天,找出所有员工的日薪,不计小数

18.找到2月份受雇的员工

19.列出员工加入公司的天数(四舍五入)

20.分组统计各部门下工资>500的员工的平均工资

21.统计各部门下平均工资大于500的部门

22.算出部门30中得到最多奖金的员工奖金

23.算出部门30中得到最多奖金的员工姓名

24.算出每个职位的员工数和最低工资

25.算出每个部门,,每个职位的平均工资和平均奖金(平均值包括没有奖金),如果平均奖金大于300,显

示“奖金不错”,如果平均奖金100到300,显示“奖金一般”,如果平均奖金小于100,显示“基本没有奖金”,按部门编号降序,平均工资降序排列

26.列出员工表中每个部门的员工数,和部门no

27.得到工资大于自己部门平均工资的员工信息

28.分组统计每个部门下,每种职位的平均奖金(也要算没奖金的人)和总工资(包括奖金)

29.列出员工表中每个部门的员工数,和部门no

30.列出员工表中每个部门的员工数(员工数必须大于3),和部门名称

31.找出工资比jones多的员工

32.列出所有员工的姓名和其上级的姓名

33.以职位分组,找出平均工资最高的两种职位

34.查找出不在部门20,且比部门20中任何一个人工资都高的员工姓名、部门名称

35.得到平均工资大于2000的工作职种

36.分部门得到工资大于2000的所有员工的平均工资,并且平均工资还要大于2500

37.得到每个月工资总数最少的那个部门的部门编号,部门名称,部门位置

38.分部门得到平均工资等级为2级(等级表)的部门编号

39.查找出部门10和部门20中,工资最高第3名到工资第5名的员工的员工名字,部门名字,部门位置

40.查找出收入(工资加上奖金),下级比自己上级还高的员工编号,员工名字,员工收入

41.查找出工资等级不为4级的员工的员工名字,部门名字,部门位置

42.查找出职位和'MAR TIN' 或者'SMITH'一样的员工的平均工资

43.查找出不属于任何部门的员工

44.按部门统计员工数,查处员工数最多的部门的第二名到第五名(列出部门名字,部门位置)

45.查询出king所在部门的部门号\部门名称\部门人数

46.查询出king所在部门的工作年限最大的员工名字

47.查询出工资成本最高的部门的部门号和部门名称

面试题

面试题一(厦门)

Table: (员工emp1)

id name

1 a

2 b

3 c

4 d

Table:( 性别sext)

id sex

1 男

4 女

5 男

找出忘记填写性别的员工(用Oracle的两种方式)

select id ,name from emp1 e where e.id not in(select id from sext);

select id from emp1 minus select id from sext;

select * from emp1 e where e.id <> all(select id from sext);

select e.* from emp1 e,(select id from emp1 minus select id from sext) s where e.id = s.id;

select e.id,https://www.wendangku.net/doc/2a15663306.html, from emp1 e,sext s where e.id=s.id(+) and s.sex is null;

select * from emp1 left outer join sext on emp1.id = sext.id where sext.sex is null;

select * from emp1 e where not exists(select * from sext s where e.id = s.id);

select * from emp1 where id not in (select emp1.id from emp1, sext where emp1.id = sext.id); select name from emp1 where id not in (select id from emp1 intersect select id from sext); SELECT *FROM emp1 e

WHERE

(SELECT

COUNT(*)

FROM

(SELECT id FROM emp1 UNION ALL SELECT id FROM sext) t

WHERE t.id = e.id) <2;

面试题二(上海)

表一(AAA)

商品名称mc 商品总量sl

A 100

B 120

表二(BBB)

商品名称mc 出库数量sl

A 10

A 20

B 10

B 20

B 30

用一条Transact-SQL语句算出商品A,B目前还剩多少?

select

AAA.mc,

sl-e.sum_sl as leave

from

AAA,

(select sum(sl) sum_sl,mc from BBB group by mc) e

where

AAA.mc = e.mc

select AAA.mc,AAA.sl-(select sum(BBB.sl) from BBB where BBB.mc=AAA.mc) from AAA;

面试题三(上海)

人员情况表(employee)中字段包括,员工号(ID),姓名(name),年龄(age),文化程度(wh):包括四种情况(本科以上,大专,高中,初中以下),现在我要根据年龄字段查询统计出:表中文化程度为本科以上,大专,高中,初中以下,各有多少人,占总人数多少。结果如下:

学历年龄人数百分比

本科以上20 34 14

大专20 33 13

高中20 33 13

初中以下20 100 40

本科以上21 50 20

。。。。。。

Transact-SQL查询语句如何写?

select wh,age,trunc(count(*)/(select count(*) from employee)*100)

from employee

group by wh,age;

面试题四(上海)

1. Here's two table STUDENT and SCORE_RANK, write a SQL, list all student's name who ranks 'A'

Table STUDENT

COLUMN NAME COLUMN TYPE Comment

ID char(9) not nullable Student?s ID

NAME Varchar(30) not nullable Student?s Name

SCORE Int nullable Student?s score

Table SCORE_RANK

COLUMN NAME COLUMN TYPE Comment

LO_SCORE Int not nullable Low score

HI_SCORE Int not nullable High score

RANK Char(1) nullable rank

Select name from student,score_rank where score between lo_score and hi_score and rank=?A; 2. Here?s two table STUDENT and SCORES, a student who have 3 or more courses rank …A? is a …GOOD LEARNER?, write a SQL, list all …GOOD LEARNER?…s name.

Table STUDENT

COLUMN NAME COLUMN TYPE Comment

ID char(9) not nullable Student?s ID

NAME Varchar(30) not nullable Student?s Name

Table SCORE

COLUMN NAME COLUMN TYPE Comment

STUDENT_ID char(9) not nullable Student?s ID

COURSE_ID Int not nullable Course ID

SCORE Int not nullable Stuend?s score of this course

Select name from student,(Select student_id from score,rank where score between lo_score and

hi_score and rank=?A?group by student_id having count(course_id)>=3) e where id=e.student_id;

面试题五(福州)

四张表学生表student(sid,sname),

教师表teacher(tid,tname),

课程表course(cid,cname,ctype),

选课表choose_course(ccid,sid,tid,cid)

insert into student values(1,'小明');

insert into student values(2,'小花');

insert into teacher values(1,'陈红');

insert into teacher values(2,'陈白');

insert into course values(1,'语文','文科');

insert into course values(2,'数学','理科');

--小明选了陈红老师的语文

insert into choose_course values(1,1,1,1);

--小明选了陈红老师的数学

insert into choose_course values(2,1,1,2);

--小花选了陈红老师的数学

insert into choose_course values(3,2,1,2);

--小明选了陈白老师的语文

insert into choose_course values(1,1,2,1);

--小花选了陈红老师的语文

insert into choose_course values(4,2,1,1);

1.查找陈红老师教的学生是那些?

select *

from student stu

where stu.sid in

(select distinct cc.sid

from teacher t,choose_course cc

where t.tid = cc.tid and t.tname='陈红');

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

select distinct s.sid,s.sname

from

teacher t,choose_course cc ,student s where

t.tid = cc.tid

and t.tname='陈红'

and s.sid = cc.sid;

2.找学生小明所有的文科老师?

select *

from teacher

where tid in

(

select distinct tid

from choose_course cc,student s,course c

where cc.sid = s.sid

and cc.cid = c.cid

and s.sname = '小明'

and c.ctype = '文科'

);

3.找出没有选修陈红老师的学生

select *

from student stu

where stu.sid not in

(select cc.sid

from teacher t,choose_course cc

where t.tid = cc.tid and t.tname='陈红');

4.教的学生最少的老师?

select t.tid,t.tname,t2.cou from teacher t,

(

select tid,cou from

(select tid,count(distinct sid) cou

from choose_course group by tid order by cou) t1

where rownum=1) t2

where

t.tid = t2.tid;

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

select t.* from teacher t where t.tid =

(

select tid from

(select tid,count(distinct sid) cou

from choose_course group by tid order by cou) t1where rownum=1); 面试题六(厦门)

8:00--12:00 为迟到, 12:00--18:00为早退

打卡表card

SQL> create table card(

cid number(20),

ctime date,

cuser number(20));

人员表person

create table person(

pid number(20),

name varchar2(10)

)

--插入人员表的数据

insert into person values(1,'a');

insert into person values(2,'b');

--插入打卡的数据

insert into card values(1,to_date('20090719080200','yyyymmddhh24miss'),1);

insert into card values(2,to_date('20090719180200','yyyymmddhh24miss'),1);

insert into card values(3,to_date('20090719090200','yyyymmddhh24miss'),2);

insert into card values(4,to_date('20090719170200','yyyymmddhh24miss'),2);

insert into card values(5,to_date('20090720080200','yyyymmddhh24miss'),1);

insert into card values(6,to_date('20090720160200','yyyymmddhh24miss'),1);

insert into card values(7,to_date('20090720070200','yyyymmddhh24miss'),2);

insert into card values(8,to_date('20090720200200','yyyymmddhh24miss'),2);

--分析:先分组统计出每个人,每天的上班时间和下班时间即(id,day,mindate,maxdate) select p.pid as id,

to_char(c.ctime,'yyyymmdd') as day,

to_char(min(c.ctime),'hh24mi') as mindate,

to_char(max(c.ctime),'hh24mi') as maxdate

from card c,person p where c.cuser = p.pid group by p.pid,to_char(c.ctime,'yyyymmdd');--把上面的分析做成一个视图,判断上班时间是否为迟到和下班时间是否为早退

--如果判断前10天的打卡记录,就改成

to_char(c.ctime,'yyyymmdd')<=to_char(sysdate-10,'yyyymmdd')

select https://www.wendangku.net/doc/2a15663306.html, as person_name,

e1.day as work_day,

e1.mindate as AM,

e1.maxdate as PM,

--判断迟到

case

when e1.mindate between '0800' and '1200' then 'yes'

else 'no'

end as later,

--判断早退

case

when e1.maxdate between '1201' and '1800' then 'yes'

else 'no'

end as leave_early

from

person p,

--上面那张视图表

(select

p.pid as id,

to_char(c.ctime,'yyyymmdd') as day,

to_char(min(c.ctime),'hh24mi') as mindate,

to_char(max(c.ctime),'hh24mi') as maxdate

from card c,person p

where

c.cuser = p.pid and

to_char(c.ctime,'yyyymmdd')<=to_char(sysdate-1,'yyyymmdd')

group by p.pid,to_char(c.ctime,'yyyymmdd')

) e1

where p.pid = e1.id;

面试题七(福州)

删除一张表重复记录(ID是自增唯一,重复记录:其他字段都是一样)

非常经典的一道面试题(可能存在很多数据,要求性能比较高)

1 louis 20

2 louis 20

3 jimmy 30

4 louis 20

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

delete from aa where id not in(select min(id) from aa group by name,age);

select a1.id

from a a1,

a a2

where a1.id>a2.id and https://www.wendangku.net/doc/2a15663306.html,=https://www.wendangku.net/doc/2a15663306.html, and a1.age=a2.age and a1.sex=a2.sex

面试题八(福州)

用一条SQL语句查询出每门课都大于80分的学生姓名name kecheng fenshu 张三语文81 张三数学75 李四语文76 李四数学90 王五语文81 王五数学100 王五英语90

select Distinct name from TEST A Where Not Exists(Select * from TEST Where Name=https://www.wendangku.net/doc/2a15663306.html, And fenshu<=80) select name from test group by name having min(fenshu)>80

select name from test where name not in(select name from test where fenshu<=80)

面试题九(福州)

有一表table1有两个字段FID,Fno,写一个SQL语句列出该表中一个FID对应多个不同的Fno 的纪录。类如:

101 1001

101 1001

102 1002

102 1003

103 1004

104 1005

104 1006

105 1007

105 1007

105 1008

结果:

102 1002

102 1003

104 1005

104 1006

105 1007

105 1008

select distinct fid,fno from table1 where fid in

(select fid from table1 group by fid having count(distinct fno)>1)

面试题十(福州)

有员工表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 tt.fsalary>9999 and fage > 35 then 1 else 0 end) as "fsalary>9999 and fage > 35", sum(case when tt.fsalary>9999 and fage < 35 then 1 else 0 end) as "fsalary>9999 and fage < 35",sum(case when tt.fsalary<9999 and fage > 35 then 1 else 0 end) as "fsalary<9999 and fage > 35", sum(case when tt.fsalary<9999 and fage < 35 then 1 else 0 end) as "fsalary>9999 and fage < 35" from empinfo tt;

面试题十一(上海)

表内容:

2005-05-09 胜

2005-05-09 胜

2005-05-09 负

2005-05-09 负

2005-05-10 胜

2005-05-10 负

2005-05-10 负

如果要生成下列结果, 该如何写sql语句?

胜负

2005-05-09 2 2

2005-05-10 1 2

1) select rq, sum(case when shengfu='胜' then 1 else 0 end)'胜',sum(case when shengfu='负' then 1 else 0 end)'负' from #tmp group by rq

3)select a.col001,a.a1 胜,b.b1 负from

(select col001,count(col001) a1 from temp1 where col002='胜' group by col001) a,

(select col001,count(col001) b1 from temp1 where col002='负' group by col001) b

where a.col001=b.col001

面试题十二(上海)

请用一个sql语得出结果

从table1,table2中取出如table3所列格式数据

table1

月份mon 部门dep 业绩yj

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

一月份01 10

一月份02 10

一月份03 5

二月份02 8

二月份04 9

三月份03 8

table2

部门dep 部门名称dname

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

01 国内业务一部

02 国内业务二部

03 国内业务三部

04 国际业务部

05 其他部门

table3 (result)

部门dep 部门名称一月份二月份三月份

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

01国内业务一部10 0 0

02国内业务二部10 8 0

03国内业务三部0 5 8

04国际业务部0 0 9

05 其他部门

select a.dep,a.dname

sum(case when b.mon='一月份' then b.yj else 0 end) as '一月份',

sum(case when b.mon='二月份' then b.yj else 0 end) as '二月份',

sum(case when b.mon='三月份' then b.yj else 0 end) as '三月份',

from table2 a left join table1 b on a.dep=b.dep

面试题十二(上海)

华为一道面试题

一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数。select id, Count(*) from tb group by id having count(*)>1

1.scott下面创建一个表

emp1

empno number(10)

ename varchar2(50)

create table emp1(empno number(10),ename varchar2(50));

2.添加一个字段

sal number(10,2)

alter table emp1 add sal number(10,2);

3.修改字段ename varchar(100)

alter table emp1 modify ename varchar(100);

4.删除字段sal

alter table emp1 drop column sal;

5.把表emp1改成emp2

rename emp1 to emp2; Oracle

6.删除表emp2

drop table emp2;

7.创建一个和emp结构一样的表,并同时插入工资大于1000的数据

create table emp3 as select * from emp where sal>1000;

8.清空表数据(用truncate)

truncate table emp3;

13.5、练习

1.往emp表中插入empno,ename,sal数据(111,'1',1000)(222,'2',2000)

insert into emp(empno,ename,sal) values(111,'1',1000);

insert into emp(empno,ename,sal) values(222,'2',2000);

2.把empno=111的员工comm改成100

update emp set comm=100 where empno=111;

3.往dept表中插入dept表中deptno=100的数据

insert into dept select * from dept where deptno=100;

4.删除empno=111的数据

delete from emp where empno=111;

5.为所有人长工资,标准是:10部门长10%;20部门长15%;30部门长20%其他部门长18%(要求用DECODE函数)

update emp

set sal=decode(deptno,'10',sal*(1+0.1), '20',sal*(1+0.15), '30',sal*(1+0.2),sal*(1+0.18));

6.根据工作年限长工资,标准是:为公司工作了几个月就长几个百分点。

update emp set sal= round(sal * (1+(sysdate - hiredate)/365/12/100),2);

14.10、练习

1.创建一张表student

id number

name varchar2(10)

age number(10)

tel varchar2(10)

给id字段添加主键约束

给name字段添加非空约束

给age字段添加check约束(age必须大于18岁)

给tel添加唯一非空约束

create table student(

id number primary key,

name varchar2(10) not null,

age number(10) check(age > 18),

tel varchar2(10) unique not null

);

2.创建一张学员兴趣爱好表hobby

id number(10)

hobby_name varchar2(10)

sid number --学生id

给sid字段添加外键约束,并且要带级联删除

create table hobby(

id number(10),

hobby_name varchar2(10),

sid number references student(id) on delete cascade

);

3.删除掉student表中tel字段的唯一约束(先写出查看该表约束的sql)

select constraint_name, constraint_type from all_constraints where user_table = upper('student'); alter table student drop constraint unique(tel);

4.手动添加student表中tel字段的唯一约束(约束名为:MY_CONSTRAINT_1)

alter table student add constraint MY_CONSTRAINT_1 unique(tel);

5.禁用约束MY_CONSTRAINT_1

alter table student disable constraint MY_CONSTRAINT_1;

6.启用约束MY_CONSTRAINT_1

alter table student enable constraint MY_CONSTRAINT_1;

Oracle实验报告

Oracle数据库实验报告 实验一:Oracle 10g安装卸载及相关工具配置 一、实验目标: 安装Oracle 10g,了解OEM,通过DBCA安装数据库,通过DBCA删除数据库,sqldeveloper连接数据库,卸载oracle 10g。 二、实验学时数 2学时 三、实验步骤和内容: 1、安装Oracle10g(默认安装数据库) 双击setup.exe, 选择基本安装,安装目录D:盘,标准版,默认数据库orcl,口令bhbh。 进入先决条件检查界面时:网络配置需求选项不用打勾,直接下一步,是。 直到安装成功。 2、登陆和了解OEM 主要是已网页的形式来对数据库进行管理。

http://主机IP:1158/em 用户名:sys 口令:bhbh 身份:sysdba 或者 用户名:system 口令:bhbh 身份:normal 3、通过DBCA删除已安装的默认数据库orcl 程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant->删除数据库->…… 4、通过DBCA安装数据库xscj 程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant->创建数据库->…… 5、sqldeveloper连接数据库 打开sqldeveloper,新建连接 连接名:system_ora 用户名:system 口令:bhbh 主机名:本机计算机名 SID:xscj 测试,显示成功,连接,保存。

6、卸载oracle 10g Windows下 1>停止所有Oracle服务,点Universal Installer卸载 2>删除注册表中的所有关于Oracle项 在HKEY_LOCAL_MACHINE\SOFTWARE下,删除Oracle目录 3>删除硬盘上所有Oracle文件。 (1)Oracle安装文件 (2)系统目录下,在Program files文件夹中的Oracle文件 四、上机作业 根据实验步骤完成逐个实验目标中的任务。 五、心得体会 通过这次的实验,我了解了oracle数据库的情况。懂得了数据库就是把数据存储在一个类似与仓库的地方,需要用时才从数据库里调出来。通过上机实践,知道了装数据库和卸载数据库,并且学会了怎样连数据库。 实验二:Oracle 10g手工建数据库 一、实验目标: 安装Oracle 10g数据库环境,手工建立数据库;通过Net Configuration Assistant建立监听,使用sqldeveloper连接数据库测试。 二、实验学时数 2学时 三、实验步骤和内容: 先安装好Oracle 10g数据库环境(不安装默认数据库)。 1.创建好相关的目录

(Oracle管理)oracle项目设计报告

成都东软学院 课程结业设计报告 课程: oracle数据管理与开发 项目名称:项目管理系统 作者:xxxxx 学号:xxxxx 专业班级: xxxxx 指导教师:xxxxx 2011年12月

目录 第一部分:项目概述 ........................................................................................- 1 -1.1内容 .................................................................................................................. - 1 -1.2目的 .................................................................................................................. - 1 -1.3功能 .................................................................................................................. - 2 -1.4意义 .................................................................................................................. - 2 -第二部分:E-R图..............................................................................................- 3 -第三部分:表图................................................................................................- 3 -第四部分:创建表的脚本: .............................................................................- 5 -第五部分:样本数据 ........................................................................................- 6 -第六部分:数据库测试.....................................................................................- 7 -6.1数据操纵........................................................................................................... - 7 - 6.1.1查询.................................................................................................................................... - 7 - 6.1.2插入.................................................................................................................................... - 8 - 6.1.3更新.................................................................................................................................... - 8 - 6.1.4删除.................................................................................................................................... - 8 -6.2问题总结........................................................................................................... - 9 -第七部分:项目总结 ........................................................................................- 9 - 7.1结论 ................................................................................................................... - 9 -7.2心得 ................................................................................................................. - 10 -

ORACLE试题

ORACLE 选择 B52X0001ORACLE7数据库中,命令lsnrctl start用到的参数文件是:() A、tnsnames.ora B、sqlnet.ora C、listener.ora D、以上都不对 正确答案:C B52X0002在将格式化的文本文件导入ORACLE时我们经常采用的是SQLLOAD命令,请选择正确的写法() A、sqlldr username/password control=data_file B、sqlldr username/password rows=128control=data_file C、sqlldr username/password control=data_file rows=64 D、sqlldr username/password control=data_file.ctl 正确答案:D B52X0003在Oracle维护过程中,第一步应查看数据库管理系统的运行日志,其日值文件名为:() A、error_'SID'.log B、Alert_'SID'.log C、trace_'SID'.log E、logtail_'SID'.log 正确答案:B B52X0004SGA(System Global Area)是ORACLE系统为实例分配的一组共享缓冲存储区,SGA分为几个部分。() A、4 B、5 C、6 D、7 正确答案:A库缓冲区、数据字典缓冲区、数据块高速缓冲区、重做日志缓冲区 B52X0005Oracle逻辑结构可分解为:表空间、数据库块、物理块、分类段、范围。它们之间的大小关系正确的是() A、表空间≥范围≥分类段≥数据库块≥物理块 B、表空间≥范围≥分类段≥物理块≥数据库块 C、表空间≥数据库块≥物理块≥分类段≥范围 D、表空间≥分类段≥范围≥数据库块≥物理块 正确答案:D B52X0006ORACLE中模式为模式对象的集合,为一个数据库用户所占有,模式名为与该用户名同名,下列属于模式对象的有() A、表 B、视图 C、快照 D、用户环境文件

Oracle实验六

湖南科技学院计算机与通信工程系 实验报告

loop dbms_output.put_line('员工姓名:'||varname||',员工职务:'||vartitle||''); fetch mycur into varname,vartitle; end loop; close mycur; end; 执行结果如下: (2)创建存储过程GetGrade,查询指定员工的工资,使用CASE语句输出其工资等级。工资小于等于3000,等级为“低”;工资大于3000,小于5000,等级为”中”;工资大于等于5000,等级为高。并执行该存储过程。 创建存储过程代码如下: SQL>create or replace procedure zyn_33.GetGrade (v_depid in number) as v_wage zyn_33.employees.wage%type; v_str varchar2(5); Begin select wage into v_wage from zyn_33.employees where emp_id=v_depid; v_str:=case when v_wage<=3000 then '低' when v_wage>3000 and v_wage<5000 then '中' when v_wage>=5000 then '高' end; dbms_output.put_line('该员工工资等级为'||v_str); end; 执行存储过程代码如下: SQL>Execute zyn_33.GetGrade(3,’夏小冉’); SQL>commit; 执行结果如下: (3)创建触发器MyTrigger,它的作用是当dhb.Departments中Dep_id列的值发生变化时,自动更新表Employees中的Dep_id列的值,从而保证数据完整性。程序代码如下: SQL>create or replace trigger zyn_33.mytrigger after update on zyn_33.departments

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数据库设计指南

数据库设计核心原则 罗代均 一、3NF第三范式 通常认为,第三范式在性能,扩展性和数据完整性方面达到了最好平衡. 通常认为,第三范式在性能,扩展性和数据完整性方面达到了最好平衡. 有以下几个要点。有以下几个要点。 1.一个表只描述一个单一的事物(实体)。一个表只描述一个单一的事物 2.表内的每一个值在整个数据库只出现一次(外键除外) 2.表内的每一个值在整个数据库只出现一次(外键除外)。表内的每一个值在整个数据库只出现一次 3.表内的每一行都应该被唯一的标识(有唯一主键)。 3.表内的每一行都应该被唯一的标识(有唯一主键)。表内的每一行都应该被唯一的标识 4.表内不存储与主键无关的信息。表内不存储与主键无关的信息 二、字段设计技巧 1.确保表中没有计算字段 计算字段的值,是由其他字段的值计算而来,当你更新其他字段的时候,很容易忽略同时更新这个计算字段,造成数据的错误。 2.确保这个字段的值只有一个 例如下表Users: 用户ID 用户名称电话号码 001 robin 1358888888/028-*******/… 电话号码的值就不只一个,因此电话字段不能放在users表中,解决办法是增加一个表Phone 电话号码ID 用户ID 电话号码 001 001 13588888 002 001 028-888888 这个表就是Users的从表,用户ID是外键. 还有地址address,和电话的情况类似。 3.尽可能地细分字段 如下雇员表(employee) 雇员ID 雇员名称地址 emp_id emp_name emp_address 001 Robin 四川省成都市高新区天泰路1号 这里的emp_address就可以细分,改进的表如下 雇员ID 雇员名称国家省/直辖市地/市 001 罗代均china 四川成都区/县高新区街道天泰路1号 这样更方便我们编辑和统计,有利于保证数据的完整性。 三数据表设计技巧 1.为表内的每一个字段添加表名缩写 例如客户表 customer cust_id cust_name cust_type cust_city ... 这样书写SQL语句时,很容易就知道这个字段属于哪个表,代表什么含义。 例如cust_city ,就不会和employee表的emp_city混淆了。

Oracle数据库简答题-考试重点

1.简单描述Oracle数据库体系结构的组成及其关系? 答:Oracle数据库体系结构由物理存储结构、逻辑存储结构和实例组成。其中物理存储结构描述了操作系统层次数据的存储与管理,包括数据文件、日志文件、重做日志文件等组成。逻辑结构描述了数据库内部数据的组织与管理,由表空间、段、区、块组成。实例是数据库运行的软件结构,由内存结构和后台进程组成。数据库运行过程中,用户的操作在内存区中进行,最终通过后台进行转化为对数据库的操作。 2、说明Oracle数据库物理存储结构的组成? Oracle数据库物理结构包括数据文件、控制文件、重做日志文件、初始化参数文件、归档文件、口令文件等。在控制文件中记录了当前数据库所有的数据文件的名称与位置、重做日志文件的名称与位置,以及数据文件、重做日志文件的状态等。 3、说明Oracle数据库数据文件的作用? 数据文件中保存了数据库中的所有数据,包括数据字典以及用户数据。 4、说明Oracle数据库控制文件的作用? 控制文件保存数据库的物理结构信息,包括数据库名称、数据文件的名称与状态、重做日志文件的名称与状态等。在数据库启动时,数据库实例依赖初始化参数定位控制文件,然后根据控制文件的信息加载数据文件和重做日志文件,最后打开数据文件和重做日志文件。 5、说明Oracle数据库重做日志文件的作用? 重做日志文件是以重做记录的形式记录、保存用户对数据库所进行的修改操作,包括用户执行DDL、DML语句的操作。如果用户只对数据库进行查询操作,那么查询信息是不会记录到重做日志文件中的。 6、说明数据库逻辑存储结构的组成和相互关系。 Oracle9i数据库的逻辑存储结构分为数据块、区、段和表空间四种。其中,数据块是数据库中的最小I/O单元,由若干个连续的数据块组成的区是数据库中最小的存储分配单元,由若干个区形成的段是相同类型数据的存储分配区域,由若干个段形成的表空间是最大的逻辑存储单元,所有的表空间构成一个数据库。 7、说明数据库表空间的种类,以及不同类型表空间的作用。 数据库表空间分为系统表空间和非系统表空间两类,其中非系统表空间包括撤销表空间、临时表空间和用户表空间等。 SYSTEM表空间主要用于存储数据库的数据字典、PL/SQL程序的源代码和解释代码、数据库对象的定义。撤销表空间专门进行回退信息的自动管理。临时表空间是专门进行临时段管理的表空间。用户表空间用于分离不同应用的数据,而且能够减少读取数据文件时产生的I/O冲突。 8、说明数据库、表空间、数据文件以及数据库对象之间的关系。 一个数据库由一个或多个表空间构成,不同的表空间用于存放不同应用的数

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数据库试题

ORACLE数据库试题 74 姓名:戴希引 一、选择题(总分50分,每题1分,*为多选)42 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中,当FETCH语句从游标获得数据时,下面叙述正确的是( C ) A 游标打开 B游标关闭 C当前记录的数据加载到变量中 D创建变量保存当前记录的数据 5. 在Oracle中,下面关于函数描述正确的是( A D)* A SYSDATE函数返回Oracle服务器的日期和时间 B ROUND数字函数按四舍五入原则返回指定十进制数最靠近的整数 C ADD_MONTHS日期函数返回指定两个月份天数的和 D SUBSTR函数从字符串指定的位置返回指定长度的子串 6. 阅读下面的PL/SQL程序块: BEGIN INSERT INTO employee(salary,last_name,first_name)VALUES(35000,’Wang’,'Fre d ’); SAVEPOINT save_a; INSERT INTO employee(salary,last_name,first_name) VALUES(40000,’Woo’,'David’); SAVEPOINT save_b; DELETE FROM employee WHERE dept_no=10; SAVEPOINT save_c; INSERT INTO employee(salary,last_name,first_name) VALUES(25000,’Lee’,'Bert’); ROLLBACK TO SAVEPOINT save_c;

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应用系统设计设计题目:音像店信息管理系统 专业:计算机科学与技术 班级:计131 组员:李霆桑珠扎西虞洲 学号: 130761 130767 130762 日期: 2016-03-04 信息工程学院计算机科学与技术

目录 一.课程目的………………………………………………………. 二.题目要求……………………………………………………… 三.日期安排………………………………………………………. 四.组内分工……………………………………………………… 五.实验条件......................................................... ........................... 六.实验内容......................................................... ........................... (1)第一部分:Oracle管理技术……………………………………… 1.数据库管理…………………………………………………….. 2.角色和用户管理………………………………………………... 3.表和视图管理………………………………………………….. 4.索引和序列管理………………………………………………... 5.PL/SQL编程…………………………………………………… 6.使用游标、存储过程和触发器………………………………… 7.表空间管理……………………………………………………… 8.文件管理………………………………………………………… (2)第二部分:Oracle开发技术……………………………………….. ①数据库设计………………………………………………………………… ②界面设计.................................................... ③结果测试…………………………………………………………………… 七.问题及解决…………………………………………………….. 八.总结...............................................

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实验指导书

实验一 Oracle查询工具的使用 一、目的和要求: 1.掌握SQL*Plus工具的使用 2.掌握iSQL*Plus工具的使用 二、实验内容: 1.点击“开始”->“运行”,输入cmd命令进入DOS环境,然后执行SQL PLUS命令登录 数据库,并使用CONNECT命令切换当前的连接用户,具体操作如下: (1) SQL PLUS system/密码 (2) Connect sys/密码 as sysdba (3) Alter user scott account unlock identified by tiger; (4) Connect scott/tiger@orcl (5) Exit 2.在浏览器中输入以下网址: http://localhost:5560/isqlplus 三、分析与思考

实验二 SQL语句基本查询语句 一、实验目的: 1.掌握select语句的基本语法 2.掌握常用函数的使用 3.了解格式化查询结果的常用命令 二、实验内容: 使用scott下的emp表和dept表,完成以下操作: 1.查询部门编号是20的员工信息。 2.查询工作为CLERK的员工的员工号、员工名和部门号。 3.查询奖金COMM高于工资sal的员工信息。 4.查询奖金高于工资20%的员工信息。 5.查询部门编号是10并且工作为MANAGER的员工和部门编号是20并且工作为CLERK 的员工的信息。 6.查询工作不是MANAGER和CLERK,并且工资大于或等于2000的员工信息。 7.查询有奖金的员工信息。 8.查询所有员工的人数和他们的平均工资。 9.查询没有奖金或奖金低于100的员工信息。 10.查询最近两年入职的员工信息。 11.查询工龄大于或等于10年的员工信息。 12.查询员工信息,要求以首字母大写的方式显示所有员工的姓名。 13.查询员工名正好为6个字母的员工信息。 14.查询员工名字中不包含字母S的员工。 15.查询员工姓名的第二个字母为M的员工信息。 16.查询所有员工姓名的前三个字符。 17.查询所有员工的姓名,如果包含字母s,则用S替换。 18.查询员工的的姓名和入职日期,并按入职日期从先到后进行排序。 19.显示所有员工的项目、工作、工资,按工作降序排序,若工作相同则按工资升序排序。 20.显示所有员工的姓名、入职的年份和月份,按入职日期所在的月份排序,若月份相同则 按入职的年份排序。 21.查询每个部门中的员工数量、平均工资和平均工作年限。 22.查询各个部门的人数及平均工资。 23.查询各种工作的最低工资,并输出最低工资低于3000的工作名称。 24.查询各个部门中不同工种的最高工资。 25.统计各个工种的员工人数与平均工资。 三、分析与思考

Oracle笔试卷试题目带标准答案.doc

1.( ) 程序包用于读写操作系统文本文件。(选一项) A、 Dbms_output B、 Dbms_lob C、 Dbms_random D、 Utl_file 2.( ) 触发器允许触发操作的语句访问行的列值。(选一项)A、行 级 B、语句级 C、模式 D、 数据库级 3.( )是oracle在启动期间用来标识物理文件和数据文件的二进制文件。(选一项) A、控制文件 B、参数文件 C、数据文件 D、可执行文件 4.CREATE TABLE语句用来创建(选一项) A、表 B、视图 C、用户 D、函数 5.imp 命令的哪个参数用于确定是否要倒入整个导出文件。(选一项) A、 constranints B、 tables C、 full D、 file 6.ORACLE表达式 NVL(phone, '0000-0000') 的含义是(选一项) A、当 phone 为字符串 0000-0000 时显示空值 B、当 phone 为空值时显示0000-0000 C、判断phone 和字符串0000-0000 是否相等 D、将 phone 的全部内容替换为0000-0000 7.ORACLE交集运算符是(选一项) A、 intersect B、 union C、 set D、 minus 8.ORACLE使用哪个系统参数设置日期的格式(选一项) A、 nls_language

B、 nls_date C、 nls_time_zone D、 nls_date_format 9.Oracle 数据库中,通过()访问能够以最快的方式访问表中的一行(选一项) A、主键 B、 Rowid C、 唯一索引D、整 表扫描 10.Oracle 数据库中,下面()可以作为有效的列名。(选一项) A、 Column B、 123_NUM C、 NUM_#123 D、 #NUM123 11.Oracle 数据库中,以下()命令可以删除整个表中的数据,并且无法回滚(选一项) A、 drop B、 delete C、 truncate D、 cascade 12. Oracle中, ( )函数将char或varchar数据类型转换为date 数据类型。(选一项) A、 date B、 to_date C、 todate D、 ctodate 13. ORACLE中,执行语句: SELECTaddress1||','||address2||','||address2"Address"FROM employ ;将会返回()列(选一项) A、 0 B、 1 C、 2 D、 3 14. Oralce数据库中,以下()函数可以针对任意数据类型进行操作。(选一项) A、 TO_CHAR B、 LOWER C、 MAX D、 CEIL 15. partition by list(msn_id) 子句的含义是(选一项) A、按 msn_id 列进行范围分区 B、按 msn_id 列进行列表分区

Oracle方案设计

3.1方案拓扑图 如上图所示前端四台IBM X3850M2服务器做集群应用,运行Oracle数据库,Oracle 库的数据文件存储在后端磁盘阵列上。后端存储采用了SAN网络的连接形式,四台服务器通过两台光纤交换机连接到存储阵列,采用双交换机的冗余连接提高了数据传输的可靠性。备份系统采用赛门铁克的NetBackUp备份软件把数据备份到磁带库中,如果用户有更高的备份需求可以采用飞康CDP设备对数据时时备份,可以实现数据丢失率在分钟级。 3.2服务器解决方案 服务器运行着关键Oracle数据库应用,为了提高应用的高可靠性,提高并发响应的速度,本方案采用了四台IBM X3850M2服务器做负载均衡群集的形式。四台服务器同时对外提供服务,一方面四台服务器相互分担访问负载提高响应速度,另一方面可以实现故障转移,提高服务的可靠性。 在服务器选择方面本着稳定性、可扩展性和易维护性的原则。本方案建议了IBM

X3850M2服务器,配置了四颗CPU,考虑到今后扩展要求CPU数量最多可以支持到16颗;磁盘配置2块146GB的SAS磁盘,安装操作系统和Oracle应用程序,两块磁盘做Raid1实现高可靠性,即使一块磁盘出现故障也不影响服务器正常使用;X3850M2服务器支持最多256GB内存,能充分满足用户今后应用扩展需求,ChipKill技术允许使用工业标准的DIMM来更正单位/多位错误;光通路面板显示各个物理部件工作状态包括CPU、内存、硬盘等,当部件出现故障时可以通过面板显示灯迅速找到故障原因;集成的远程管理适配器II SlimLine帮助用户远程监视系统运行状况,提高工作效率和可管理性。 3.3四节点群集实现方式 用户关键数据库应用将要采用Oracle数据库,由于用户对Oracle数据库访问量大,为了提高访问响应速度、保证应用的可靠和稳定性,本方案采用了Oracle RAC集群的解决方案。 Oracle RAC 运行于集群之上,为Oracle 数据库提供了最高级别的可用性、可伸缩性和低成本计算能力。如果集群内的一个节点发生故障,Oracle 将可以继续在其余的节点上运行。如果需要更高的处理能力,新的节点可轻松添加至集群。为了保持低成本,即使最高端的系统也可以从采用标准化商用组件的小型低成本集群开始逐步构建而成。 Oracle 的主要创新是一项称为高速缓存合并的技术,它最初是针对Oracle9i

ORACLE数据库习题(有答案)

--1.列出至少有一个雇员的所有部门。 SELECT * FROM DEPT WHERE DEPTNO IN (SELECT DISTINCT DEPTNO FROM EMP); --2.列出薪金比“SMITH”多的所有雇员。 SELECT * FROM EMP WHERE SAL>(SELECT SAL FROM EMP WHERE ENAME='SMITH'); --3.列出所有雇员的姓名及其上级的姓名。 SELECT AS empName, AS mgrName FROM emp ygb,emp sjb WHERE =; --4.列出入职日期早于其直接上级的所有雇员。 SELECT * FROM emp ygb WHERE hiredate<(SELECT hiredate FROM emp sjb WHERE =; --5.列出所有部门的名称和这些部门的雇员编号及姓名(没有雇员的部门包含在内) SELECT dname,ename FROM dept a LEFT JOIN emp b ON =; --6.列出所有JOB 为“CLERK”(办事员)的员工姓名及其部门名称 SELECT ename,dname FROM dept a,emp b WHERE = AND job='CLERK'; --7.列出各种类型的最低薪金,并使最低薪金大于。 SELECT job,MIN(sal) FROM emp GROUP BY job HAVING MIN(sal)>1500; --8.列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号。 SELECT ename FROM emp WHERE deptno=(SELECT deptno FROM dept WHERE dname='SALES'); --9.列出薪金高于公司平均水平的所有雇员。 SELECT * FROM EMP WHERE SAL>(SELECT AVG(SAL) FROM EMP); --10.列出与“SCOTT”从事相同工作的所有雇员。 SELECT * FROM EMP WHERE JOB=(SELECT JOB FROM EMP WHERE ENAME='SCOTT') AND ENAME<>'SCOTT'; --11.列出薪金等于部门中任何一个雇员薪金的员工姓名和 薪金 SELECT ENAME,SAL FROM EMP WHERE SAL IN(SELECT SAL FROM EMP WHERE DEPTNO=30); SELECT ENAME,SAL FROM EMP WHERE SAL =ANY(SELECT SAL FROM EMP WHERE DEPTNO=30); --12.列出薪金高于部门中所有雇员薪金的员工姓名和薪金SELECT * FROM EMP WHERE SAL >ALL(SELECT SAL FROM EMP WHERE DEPTNO=30); --13.列出所有部门的部门名称、地点以及该部门中雇员的数量 SELECT DNAME,DEPTNO,LOC, (SELECT COUNT(*) FROM EMP E WHERE = AS TOTAL FROM DEPT; --14.列出各种类别工作的最低工资 SELECT job,MIN(sal) FROM emp GROUP BY job; --15.列出各个部门的MANAGER(经理)的最低薪金。 SELECT MIN(sal) FROM emp WHERE job='MANAGER' GROUP BY DEPTNO; --1. 查询所有部门员工的编号、姓名、月薪及奖金。 select empno,ename,sal,comm from emp where deptno=10; --2. 查询员工WHITE的员工编号。 select empno from emp where ename='WHITE'; --3. 查询所有员工的编号及收入。(提示:收入=月薪+奖金)select empno 编号,sal+nvl(comm,0) as 收入from emp; --4. 查询所有员工的编号、姓名、工种及其工龄,按工龄降序排序,工龄相同时按编号升序排序。 Select empno,ename,job,trunc(months_between(sysdate,hiredate)/12) 工龄from emp order by 工龄desc,empno asc; --5. 统计各部门的员工人数及工种类型数。 select deptno,count(*) 人数,count(distinct job) 工种类型数from emp group by deptno; --6. 查询部门人数多于人的部门编号。 select deptno,count(*) from emp group by deptno having count(*) > 3; --7. 统计各部门各种工作类别的最低月薪,显示最低薪金大于的记录。 select deptno,job,min(sal) from emp group by deptno,job having min(sal)>1500; --8. 统计、及部门员工平均工资。 select deptno,coung(*) from emp where deptno in (10,20,30) group by deptno; --9. 查询工资水平在至间的各部门员工人数。 select deptno,count(*) from emp where sal between 2000 and 5000 group by deptno; --10. 查询公司最高领导人的员工编号及姓名。 select empno,ename from emp where mgr is null; --1、编写一查询,显示与Blake在同一部门工作的雇员的姓名和受雇日期,但是Blake不包含在结果内。 select ename,hiredate from emp where deptno in (select deptno from emp where lower(ename)='black') and lower(ename)!='black'; --2、创建一查询,显示工资大于平均工资水平的雇员的编号及姓名,输出结果按工资降序排列。 select empno,ename,sal from emp where sal>(select avg(sal) from emp) order by sal desc; --3、显示位置在Dallas的部门内的雇员的姓名、编号及工作。 select ename,empno,job from emp inner join dept on = where lower(loc)='dallas'; --4、显示被King直接管理的雇员的姓名及其工资。 select , from emp e1 inner join emp e2 on = where lower='king'; --5、显示在Sales部门工作的雇员的部门编号、姓名及工作。 select empno,ename,job from emp inner join dept on = where lower(dname)='sales'; --6、编写一查询,显示与能获得奖金的雇员的奖金和工资同时匹配的雇员的编号和工资。 select ,, from emp e1 inner join emp e2 on = and = where !=; --7、显示与工作在Dallas的雇员的工资及奖金同时匹配的雇员的姓名、部门名称及工资。 select ,, from emp e inner join dept d on = where (sal,nvl(comm,0)) in (select sal,nvl(comm,0) from emp where deptno in (select deptno from dept where lower(loc)='dallas') ); --8、创建一查询,显示能获得与Scott一样工资和奖金的其他雇员的姓名、受雇日期及工资。 select ename,hiredate,sal from emp where (sal,nvl(comm,0)) in

相关文档