当前位置:文档之家› Oracle练习

Oracle练习

Oracle练习
Oracle练习

create table student(

sno varchar2(10) primary key,

sname varchar2(20),

sage number(2),

ssex varchar2(5)

);

create table teacher(

tno varchar2(10) primary key,

tname varchar2(20)

);

create table course(

cno varchar2(10),

cname varchar2(20),

tno varchar2(20),

constraint pk_course primary key (cno,tno)

);

create table sc(

sno varchar2(10),

cno varchar2(10),

score number(4,2),

constraint pk_sc primary key (sno,cno)

);

/*******初始化学生表的数据******/

insert into student values ('s001','张三',23,'男');

insert into student values ('s002','李四',23,'男');

insert into student values ('s003','吴鹏',25,'男');

insert into student values ('s004','琴沁',20,'女');

insert into student values ('s005','王丽',20,'女');

insert into student values ('s006','李波',21,'男');

insert into student values ('s007','刘玉',21,'男');

insert into student values ('s008','萧蓉',21,'女');

insert into student values ('s009','陈萧晓',23,'女');

insert into student values ('s010','陈美',22,'女');

commit;

/******************初始化教师表***********************/ insert into teacher values ('t001', '刘阳');

insert into teacher values ('t002', '谌燕');

insert into teacher values ('t003', '胡明星');

commit;

/***************初始化课程表****************************/ insert into course values ('c001','J2SE','t002');

insert into course values ('c002','Java Web','t002');

insert into course values ('c003','SSH','t001');

insert into course values ('c004','Oracle','t001');

insert into course values ('c005','SQL SERVER 2005','t003');

insert into course values ('c006','C#','t003');

insert into course values ('c007','JavaScript','t002');

insert into course values ('c008','DIV+CSS','t001');

insert into course values ('c009','PHP','t003');

insert into course values ('c010','EJB3.0','t002');

commit;

/***************初始化成绩表***********************/

insert into sc values ('s001','c001',78.9);

insert into sc values ('s002','c001',80.9);

insert into sc values ('s003','c001',81.9);

insert into sc values ('s004','c001',60.9);

insert into sc values ('s001','c002',82.9);

insert into sc values ('s002','c002',72.9);

insert into sc values ('s003','c002',81.9);

insert into sc values ('s001','c003','59');

commit;

练习:

注意:以下练习中的数据是根据初始化到数据库中的数据来写的SQL 语句,请大家务必注意。

1、查询“c001”课程比“c002”课程成绩高的所有学生的学号;

2、查询平均成绩大于60 分的同学的学号和平均成绩;

3、查询所有同学的学号、姓名、选课数、总成绩;

4、查询姓“刘”的老师的个数;

5、查询没学过“谌燕”老师课的同学的学号、姓名;

6、查询学过“c001”并且也学过编号“c002”课程的同学的学号、姓名;

7、查询学过“谌燕”老师所教的所有课的同学的学号、姓名;

8、查询课程编号“c002”的成绩比课程编号“c001”课程低的所有同学的学号、姓名;

9、查询所有课程成绩小于60 分的同学的学号、姓名;

10、查询没有学全所有课的同学的学号、姓名;

11、查询至少有一门课与学号为“s001”的同学所学相同的同学的学号和姓名;

12、查询至少学过学号为“s001”同学所有一门课的其他同学学号和姓名;

13、把“SC”表中“谌燕”老师教的课的成绩都更改为此课程的平均成绩;

14、查询和“s001”号的同学学习的课程完全相同的其他同学学号和姓名;

15、删除学习“谌燕”老师课的SC 表记录;

16、向SC 表中插入一些记录,这些记录要求符合以下条件:没有上过编号“c002”课程的同学学号、“c002”号课的平均成绩;

17、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分

18、按各科平均成绩从低到高和及格率的百分数从高到低顺序

19、查询不同老师所教不同课程平均分从高到低显示

20、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]

21、查询各科成绩前三名的记录:(不考虑成绩并列情况)

22、查询每门课程被选修的学生数

23、查询出只选修了一门课程的全部学生的学号和姓名

24、查询男生、女生人数

25、查询姓“张”的学生名单

26、查询同名同性学生名单,并统计同名人数

27、1981 年出生的学生名单(注:Student 表中Sage 列的类型是number)

28、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列

29、查询平均成绩大于85 的所有学生的学号、姓名和平均成绩

30、查询课程名称为“数据库”,且分数低于60 的学生姓名和分数

31、查询所有学生的选课情况;

32、查询任何一门课程成绩在70 分以上的姓名、课程名称和分数;

33、查询不及格的课程,并按课程号从大到小排列

34、查询课程编号为c001 且课程成绩在80 分以上的学生的学号和姓名;

35、求选了课程的学生人数

36、查询选修“谌燕”老师所授课程的学生中,成绩最高的学生姓名及其成绩

37、查询各个课程及相应的选修人数

38、查询不同课程成绩相同的学生的学号、课程号、学生成绩

39、查询每门功课成绩最好的前两名

40、统计每门课程的学生选修人数(超过10 人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列

41、检索至少选修两门课程的学生学号

42、查询全部学生都选修的课程的课程号和课程名

43、查询没学过“谌燕”老师讲授的任一门课程的学生姓名

44、查询两门以上不及格课程的同学的学号及其平均成绩

45、检索“c004”课程分数小于60,按分数降序排列的同学学号

46、删除“s002”同学的“c001”课程的成绩

答案:

1.

*********************************

select a.* from

(select * from sc a where https://www.doczj.com/doc/f48962569.html,o='c001') a,

(select * from sc b where https://www.doczj.com/doc/f48962569.html,o='c002') b

where a.sno=b.sno and a.score > b.score;

*********************************

select * from sc a

where https://www.doczj.com/doc/f48962569.html,o='c001'

and exists(select * from sc b where https://www.doczj.com/doc/f48962569.html,o='c002' and a.score>b.score

and a.sno = b.sno)

*********************************

2.

*********************************

select sno,avg(score) from sc group by sno having avg(score)>60;

*********************************

3.

*********************************

select a.*,s.sname from (select sno,sum(score),count(cno) from sc group by sno) a ,student s where a.sno=s.sno

*********************************

4.

*********************************

select count(*) from teacher where tname like '刘%';

*********************************

5.

*********************************

select a.sno,a.sname from student a

where a.sno

not in

(select distinct s.sno

from sc s,

(select c.*

from course c ,

(select tno

from teacher t

where tname='谌燕')t

where c.tno=t.tno) b

where https://www.doczj.com/doc/f48962569.html,o = https://www.doczj.com/doc/f48962569.html,o )

*********************************

select * from student st where st.sno not in

(select distinct sno from sc s join course c on https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o

join teacher t on c.tno=t.tno where tname='谌燕')

*********************************

6.

*********************************

select st.* from sc a

join sc b on a.sno=b.sno

join student st

on st.sno=a.sno

where https://www.doczj.com/doc/f48962569.html,o='c001' and https://www.doczj.com/doc/f48962569.html,o='c002' and st.sno=a.sno;

*********************************

7.

*********************************

select st.* from student st join sc s on st.sno=s.sno

join course c on https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o

join teacher t on c.tno=t.tno

where t.tname='谌燕'

*********************************

8.

*********************************

select * from student st

join sc a on st.sno=a.sno

join sc b on st.sno=b.sno

where https://www.doczj.com/doc/f48962569.html,o='c002' and https://www.doczj.com/doc/f48962569.html,o='c001' and a.score < b.score *********************************

9.

*********************************

select st.*,s.score from student st

join sc s on st.sno=s.sno

join course c on https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o

where s.score <60

*********************************

10.

*********************************

select stu.sno,stu.sname,count(https://www.doczj.com/doc/f48962569.html,o) from student stu

left join sc on stu.sno=sc.sno

group by stu.sno,stu.sname

having count(https://www.doczj.com/doc/f48962569.html,o)<(select count(distinct cno)from course) ===================================

select * from student where sno in

(select sno from

(select stu.sno,https://www.doczj.com/doc/f48962569.html,o from student stu

cross join course c

minus

select sno,cno from sc)

)

===================================

*********************************

11.

*********************************

select st.* from student st,

(select distinct a.sno from

(select * from sc) a,

(select * from sc where sc.sno='s001') b

where https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o) h

where st.sno=h.sno and st.sno<>'s001'

*********************************

12.

*********************************

select * from sc

left join student st

on st.sno=sc.sno

where sc.sno<>'s001'

and https://www.doczj.com/doc/f48962569.html,o in

(select cno from sc

where sno='s001')

*********************************

13.

*********************************

update sc c set score=(select avg(c.score) from course a,teacher b

where a.tno=b.tno

and b.tname='谌燕'

and https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o

group by https://www.doczj.com/doc/f48962569.html,o)

where cno in(

select cno from course a,teacher b

where a.tno=b.tno

and b.tname='谌燕')

*********************************

14.

*********************************

select* from sc where sno<>'s001'

minus

(

select* from sc

minus

select * from sc where sno='s001'

)

*********************************

15.

*********************************

delete from sc

where https://www.doczj.com/doc/f48962569.html,o in

(

select cno from course c

left join teacher t on c.tno=t.tno

where t.tname='谌燕'

)

*********************************

16.

*********************************

insert into sc (sno,cno,score)

select distinct st.sno,https://www.doczj.com/doc/f48962569.html,o,(select avg(score)from sc where cno='c002')

from student st,sc

where not exists

(select * from sc where cno='c002' and sc.sno=st.sno) and https://www.doczj.com/doc/f48962569.html,o='c002';

*********************************

17.

*********************************

select cno ,max(score),min(score) from sc group by cno;

*********************************

18.

*********************************

select cno,avg(score),sum(case when score>=60 then 1 else 0 end)/count(*)

as 及格率

from sc group by cno

order by avg(score) , 及格率desc

*********************************

19.

*********************************

select max(t.tno),max(t.tname),max(https://www.doczj.com/doc/f48962569.html,o),max(https://www.doczj.com/doc/f48962569.html,ame),https://www.doczj.com/doc/f48962569.html,o,avg(score) from sc , course c,teacher t

where https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o and c.tno=t.tno

group by https://www.doczj.com/doc/f48962569.html,o

order by avg(score) desc

*********************************

20.

*********************************

select https://www.doczj.com/doc/f48962569.html,o,https://www.doczj.com/doc/f48962569.html,ame,

sum(case when score between 85 and 100 then 1 else 0 end) AS "[100-85]",

sum(case when score between 70 and 85 then 1 else 0 end) AS "[85-70]",

sum(case when score between 60 and 70 then 1 else 0 end) AS "[70-60]",

sum(case when score <60 then 1 else 0 end) AS "[<60]"

from sc, course c

where https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o

group by https://www.doczj.com/doc/f48962569.html,o ,https://www.doczj.com/doc/f48962569.html,ame;

*********************************

21.

*********************************

select * from

(select sno,cno,score,row_number()over(partition by cno order by score desc) rn from sc) where rn<4

*********************************

22.

*********************************

select cno,count(sno)from sc group by cno;

*********************************

23.

*********************************

select sc.sno,st.sname,count(cno) from student st

left join sc

on sc.sno=st.sno

group by st.sname,sc.sno having count(cno)=1;

*********************************

24.

*********************************

select ssex,count(*)from student group by ssex;

*********************************

25.

*********************************

select * from student where sname like '张%';

*********************************

26.

*********************************

select sname,count(*)from student group by sname having count(*)>1;

*********************************

27.

*********************************

select sno,sname,sage,ssex from student t where to_char(sysdate,'yyyy')-sage =1988 *********************************

28.

*********************************

select cno,avg(score) from sc group by cno order by avg(score)asc,cno desc;

*********************************

29.

*********************************

select st.sno,st.sname,avg(score) from student st

left join sc

on sc.sno=st.sno

group by st.sno,st.sname having avg(score)>85;

*********************************

30.

*********************************

select sname,score from student st,sc,course c

where st.sno=sc.sno and https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o and https://www.doczj.com/doc/f48962569.html,ame='Oracle' and sc.score<60

*********************************

31.

*********************************

select st.sno,st.sname,https://www.doczj.com/doc/f48962569.html,ame from student st,sc,course c

where sc.sno=st.sno and https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o;

*********************************

32.

*********************************

select st.sname,https://www.doczj.com/doc/f48962569.html,ame,sc.score from student st,sc,course c

where sc.sno=st.sno and https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o and sc.score>70

*********************************

33.

*********************************

select sc.sno,https://www.doczj.com/doc/f48962569.html,ame,sc.score from sc,course c

where https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o and sc.score<60 order by https://www.doczj.com/doc/f48962569.html,o desc;

*********************************

34.

*********************************

select st.sno,st.sname,sc.score from sc,student st

where sc.sno=st.sno and cno='c001' and score>80;

*********************************

35.

*********************************

select count(distinct sno) from sc;

*********************************

36.

*********************************

select st.sname,score from student st,sc ,course c,teacher t

where

st.sno=sc.sno and https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o and c.tno=t.tno

and t.tname='谌燕' and sc.score=

(select max(score)from sc where https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o)

*********************************

37.

*********************************

select cno,count(sno) from sc group by cno;

*********************************

38.

*********************************

select a.* from sc a ,sc b where a.score=b.score and https://www.doczj.com/doc/f48962569.html,o<>https://www.doczj.com/doc/f48962569.html,o

*********************************

39.

*********************************

select * from (

select sno,cno,score,row_number()over(partition by cno order by score desc) my_rn from sc t )

where my_rn<=2

*********************************

40.

*********************************

select cno,count(sno) from sc group by cno

having count(sno)>10

order by count(sno) desc,cno asc;

*********************************

41.

*********************************

select sno from sc group by sno having count(cno)>1;

||

select sno from sc group by sno having count(sno)>1;

*********************************

42.

*********************************

select distinct(https://www.doczj.com/doc/f48962569.html,o),https://www.doczj.com/doc/f48962569.html,ame from course c ,sc

where https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o

||

select cno,cname from course c

where https://www.doczj.com/doc/f48962569.html,o in

(select cno from sc group by cno)

*********************************

43.

*********************************

select st.sname from student st

where st.sno not in

(select distinct sc.sno from sc,course c,teacher t

where https://www.doczj.com/doc/f48962569.html,o=https://www.doczj.com/doc/f48962569.html,o and c.tno=t.tno and t.tname='谌燕')

*********************************

44.

*********************************

select sno,avg(score)from sc

where sno in

(select sno from sc where sc.score<60

group by sno having count(sno)>1

) group by sno

*********************************

45.

*********************************

select sno from sc where cno='c004' and score<90 order by score desc; *********************************

46.

*********************************

delete from sc where sno='s002' and cno='c001';

*********************************

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实验六

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

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 考试试题_带答案_

Oracle考试试题 一、选择(每题3分) 1) 当Oracle服务器启动时,下列哪种文件不是必须的()。 a) 数据文件 b) 控制文件 c) 日志文件 d) 归档日志文件 参考答案 D 2) 在Oracle中,当用户要执行SELECT语句时,下列哪个进程从磁盘获得用 户需要的数据()。 a) 用户进程 b) 服务器进程 c) 日志写入进程(LGWR) d) 检查点进程(CKPT) 参考答案 B 3) 在Oracle中,一个用户拥有的所有数据库对象统称为()。 a) 数据库 b) 模式 c) 表空间 d) 实例 参考答案 B 4) 在Oracle中,可用于提取日期时间类型特定部分(如年、月、日、时、分、 秒)的函数有()。 a) DATEPART b) EXTRACT c) TO_CHAR d) TRUNC 参考答案bc 5) 在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; 参考答案 C 6) 在Oracle数据库的逻辑结构中有以下组件: A 表空间 B 数据块 C 区 D 段 这些组件从大到小依次是()。 a) A→B→C→D b) A→D→C→B c) A→C→B→D d) D→A→C→B 参考答案 b 7) 在Windows操作系统中,Oracle的()服务监听并接受来自客户端应用程 序的连接请求。 a) OracleHOME_NAMETNSListener b) OracleServiceSID c) OracleHOME_NAMEAgent d) OracleHOME_NAMEHTTPServer 参考答案 a 8) 在Windows操作系统中,Oracle的()服务是使用iSQL*Plus必须的。 a) OracleHOME_NAMETNSListener b) OracleServiceSID c) OracleHOME_NAMEAgent d) OracleHOME_NAMEHTTPServer 参考答案 B 9) 在 Oracle 中创建用户时,若未提及 DEFAULT TABLESPACE 关键字,则 Oracle 就将()表空间分配给用户作为默认表空间。。 a) USER b) SYSTEM c) SYS d) DEFAULT 参考答案 B 10) 在Oracle数据库中,()用户模式存储数据字典表和视图对象。 a) SYSTEM

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数据库期末考试题目及答案

期末考试卷(卷) 课程名称:数据库考试方式:开卷()闭卷(√) 、本试卷共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考试试题及答案

试题一 一、填空题(每小题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认证考试试题

T

The safer , easier way to help you pass any IT exams. Exam : 1Z0-053 Title : Version : Demo Oracle Database 11g: Administration II

1.You are not sure if Flashback Database is enabled. What database column and view can you query to see if the flashback logs are being created in the flash recovery area? A. Query the initialization parameter FLASHBACK_DATABASE in VJINSTANCE. B. Query the FLASHBACK_ENABLED column in VJDATABASE. C. Query the FLASHBACK column in VJDATABASE.. D. Query the FLASHBACK_ON column in VJDATABAS E. Answer: D 2.What dynamic performance view can you query to list the supported platforms for transportable tablespaces? A. V$TRANSPORTABLE_PLATFORM B. V$TRANSPORTABLE_TABLESPACE C. V$SUPPORTED_PLATFORMS D. V$DATABASE PLATFORM Answer: A 3.You issue the following command to enable block change tracking: SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING; However, you receive an error message, and the tracking file is not created. What is a possible reason for the error message? A. The parameter DB_RECOVERY_FILE_DEST is not set. B. You must use ALTER SYSTEM instead. ) C. Your database must be in the MOUNT state to create the block change tracking file. D. The parameter DB_CREATE_FILE_DEST is not set. Answer: D 4.You are restoring and recovering a database to a new host. What data dictionary view will you use to identify the names of the datafiles on the new database? A. DBA_DATAFILE B. VJTABLESPACE C. VJDATAFILE D. V$DATAFILE_COPY E. VJBACKUP DATAFILE Answer: C 5.Your flash recovery area becomes full when you are running an RMAN backup (and has not yet reached the value specified by DB_RECOVERY_FILE_DEST). It is the destination for archived redo log files and backups. What will happen to the database? (Choose the best answer.) A. If you have the flash recovery area set to autoextend, the backup will continue with no problem. B. The database will hang until you add more space to the flash recovery area. C. RMAN will delete obsolete backups from the flash recovery area to accommodate new backups. D. The RMAN backup will hang until you add more space to the flash recovery area. Answer: C 6.You want to ensure the recoverability of the recovery catalog itself. Which of the following steps should

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.掌握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期末考试题及答案

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方案设计

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

相关主题
文本预览
相关文档 最新文档