Oracle 考试题 答案

一、单项选择题(20小题,每题1分,共20分)
1、安装oracle数据库过程中SID指的是什么:( B )
A.系统标识号 B.数据库名 C.用户名 D.用户口令
2、系统中有权利启动和关闭数据库的用户是:(C )。
A.hr B.user C.system D.scott
3、下面哪个用户不是ORACLE缺省安装后就存在的用户( A )
A . SYSDBA
B. SYSTEM
C. SCOTT
D. SYS
4、下面哪个操作会导致用户连接到ORACLE数据库,但不能创建表( A )
A. 授予了CONNECT的角色,但没有授予RESOURCE的角色
B. 没有授予用户系统管理员的角色
C. 数据库实例没有启动
D. 数据库监听没有启动
5、ORACLE数据库在启动的时候,必须启动以下哪两个服务(A、C)
A.OracleOraDb11g_home1TNSListener
B.OracleMTSRecoveryService
C.OracleServiceORCL
D.OracleJobSchedulerORCL
6、有一产品表(编号,名称,价格,数量,所属分类),下列语法不正确的是( B )
A、select * from 产品表 where 价格>1000
B、select * from 产品表 where 编号,名称
C、select所属分类,价格*数量 from 产品表 where 价格>1000
D、select所属分类, 价格*数量,名称 from 产品表
7、下面的语句是不可以显示( B)
Select ename,sal,deptno from emp;
A.雇员名字 B.雇员职位类型 C.工资 D.部门编号
8、以下语句中可以正确查看服务器时间的sql语句是:( A )
A. select sysdate from dual; B. select systemdate from dual;
C. select current_date from dual; D. 以上说法均不正确。
sysdate取的是服务器(主机)的当前日期和时间
current_date取得是会话的当前日期和时间
注意:一般情况下,二者相同。但如果修改了当前会话的时区,则会不同。
alter session set time_zone=’+09:00’
9、查看系统日期,要使用( D )。
A.实体化视图 B.表 C.序列 D.伪表Dual
10、在Oracle中,( B )操作符返回并集操作并不包括重复行。
A. Intersect B. Union C. Union all D. Minus
11、查询语句中用来连接字符串的符号是( C )。
A. “+” B. “&” C. “||” D. “|”
12、在查询语句中用来去重的关键字是(A)
A.distinct B.distin C.union D.union all
13、下列哪个关键字或子句用来限定查询结果集中的行? B
A.SELECT B.WHERE C.UPDATE D.INSERT
14、以下哪个结构是查询语句中必须有的(B)
A.select 字段 from tablename where …
B .select 字段 from …
C.select 字段
D.select 字段tablename
15、以下哪个操作符不属于逻辑运算符C
A.and B.or C.no D.not
16、在数据库安装完成之后,如果你修改了自己计算机的名字,那么都需要更改以下哪个文件的host内容(B、D)
A.oci.dll B. listener.ora C. sqlnet.ora D. tnsnames.ora
17、模糊匹配字符串内容的时候使用的是(C)
A.in B.or C.like D.=
18、以下哪个语句可以正确查出数据信息(A)
A. select * from emp where sal between 1000 and 2000
B. select * from emp where sal >=2000 and sal <=1000
C. select * from emp where sal between 2000 and 1000
19、以下哪个语句是查询comm为空正确的写法D
A.select * from emp where comm =null;
B.select * from emp where comm =’’;
C. select * from emp where comm=0;
D. select * from emp where comm is null;
20、删除数据时,可以采用以下哪些关键字(BC)
A. trunc B.truncate C.delete D.drop
二、判断题(正确输入T,错误输入F,5小题,每题两分,共10分)
1、”上海西北京” 可以通过like ‘%上海_’查出来。(F)
2、truncate是DDL操作,不能 rollback。( T )
3、Oracle数据库中字符串和日期必须使用双引号标识。(F)
4、Oracle数据库中字符串数据是区分大小写的。(T )
5、drop是属于DML(数据操纵)语言(F)
三、简答题(4小题,共20分)
1、标准SQL语言可以分为三类,DDL,DML,DCL,请写出这三类语言操作符,并指出DDL和DML语言区别(6分)
DDL create alter drop truncate
DML select update insert delete
DCL grant revoke
DDL 和DML语言的区别为DDL语言会默认自动提交,DML语句需要手动进行提交
2、创建表的时候有时候我们会添加相应的约束,请分别列出添加主键约束,唯一约束,验证约束,非空约束,外键约束的约束内容是怎样的?(6分)
添加约束的格式
Alter table 表名 add constraint 约束名 约束内容
对应的约束内容如下:
主键 primary key(字段)
唯一 unique(字段)
验证 check(验证)
非空 字段 not null
外键约束 foreign key (字段) references 外键表(字段)
3、将缓存区的操作进行提交的时候用到的关键字是什么,收回的关键字是什么?(2分)
提交 commit
收回 rollback
4、数据操纵语言都有哪些,请分别列出使用他们时的语法是怎样的?(6分)
数据操作类的语言有select ,insert,update,delete
Select * from 表名;
Insert into 表名 values();
Update 表名 set 字段名=值 where 条件;
Delete from 表名 where 条件;
四、上机题(7小题,共15分)
1、找出收取奖金的员工的不同工作。(2分)
Select distinct job from emp where comm is not null;
2、列出所有办事员(CLERK)的姓名,编号和部门编号.(2分)
Select ename 姓名,empno 员工编号,deptno 部门编号 from emp where job=’CLERK’;
3、找出部门10中的经理(MANAGER)和部门20中的普通员工(CLERK);(2分)
Select * from emp where deptno=10 and job =’MANAGER’or deptno=20 and job=’CLERK’;
4、查询出KING所在部门的部门编号(2分)
Select deptno from emp where ename =’KING’;
5、查询20部门中工资在2000至3000之间的员工信息。(3分)
Select * from emp where deptno=20 and sal between 2000 and 3000;
6、查询出工作为MANAG或者CLERK的员工的信息。(2分)
Select * from emp where job in (‘MANAGER’,’CLERK’);
7、查询出名字倒数第二位为S的员工信息。 (2分)
Select * from emp where ename like ‘%S_’;
五、根据要求创建表并进行相关操作(7小题,共35分)
1、按如下要求创建表 class1 和 student1,,将建表语句和添加约束的语句写在题目后面。(10分)
属性 类型(长度) 默认值 约束 注释
Class1表 classno 数值(2) 无 主键 班级编号
cname 变长字符(10)无 非空 班级名称


student1表 stuno 数值(8) 无 主键 学号
sname 变长字符(12) 无 非空 姓名
sex 字符(2) 男 无 性别
birthday 日期 无 无 生日
email 变长字符(20)无 唯一 电子邮件
score 数值(5,2) 无 检查(0<=成绩<=100) 成绩
classno 数值(2) 无 外键 关联到表class1的classno主键 班级
–创建class1表
create table class1( classno number(2),
cname varchar2(10) not null );
–给class1表添加约束
alter table class1 add constraint pk_class1 primary key(classno);
–创建student1表
create table student1( stuno number(8),
sname varchar2(12)not null,
sex char(2) default ‘男’,
birthday date,
email varchar2(20),
score number(5,2),
classno number(2));
–给student1表添加约束
alter table student1 add constraint pk_student1 primary key(stuno);
alter table student1 add constraint ck_stu_score check(score >=0 and score <=100);
alter table student1 add constraint fk_stu_classno
foreign key(classno) references class1(classno);
2、将以下数据加入到class1表中(4分)

insert into class1 values(1,’一班’);
insert into class1 values(2,’二班’);
insert into class1 values(3,’三班’);
insert into class1 values(4,’四班’);
commit;
3、向student1中插入如下数据(5分)
STUNO SNAME SEX BIRTHDAY EMAIL SCORE CLASSNO
1 tom 男 1995-2-3 [email protected] 89.50 1
2 jerry 默认值 空 空 88 2
3 alice 女 1992-2-5 [email protected] 空 3
insert into student1 values(1,’tom’,’男’,to_date(‘1995-2-3’,’YYYY-MM-DD’), ‘[email protected]’,89.50,1 );
insert into student1 values(2,’jerry’,default,null,null, 88,2);
insert into student1 values(3,’alice’,’女’,to_date(‘1992-2-5’,’YYYY-MM-DD’),’[email protected]’,null,3);
commit;
4、修改表 student1 的数据,将所有一班的学生成绩加 10 分。(5分)
update student1 set score =score+10 where classno=1;
5、删除表 student1 的数据,将所有 3 班出生日期小于 1991 年 5 月 12 日的记录删除,并执行回滚操作。(4分)
delete from student1 where classno=3 and birthday>to_date(‘1991-05-12’,’yyyy-mm-dd’);
6、将student1表中的字段sname修改为stuname;(4分)
alter table student1 rename column sname to stuname;
7、查询 student1 表中所有三班成绩为空的学生记录。(3分)
Select * from student1 where classno=3 and score is null;

猜你喜欢

转载自blog.csdn.net/weixin_42800008/article/details/81429695