ORACLE入职考试题及答案
1 Oracle 基础知识入职考试题
答案中下划线部分需要引起注意重点。
1、 数据库database database:存放一系列数据的仓库。:存放一系列数据的仓库。
2、 dos 模式下数据库备份、恢复命令:模式下数据库备份、恢复命令:exp help=y exp help=y exp help=y ,,imp help=y
3、 主要表空间tablespace
系统表空间system system:存放系统表:存放系统表
回滚段表空间undotbs1undotbs1:处理回退数据,和:处理回退数据,和commit commit、、rollback 相关。
临时表空间temp temp:存放临时结果。:存放临时结果。
用户表空间users users:存放一般用户的表。:存放一般用户的表。
4、 sql 语句的结束符合:每一条sql 语句用“;”结束而不是换行符。
5、 sql 语句的字符串符号:字符串使用单引号而不是双引号。
6、 sql 语句的注释采用字符:两个相连的减号“语句的注释采用字符:两个相连的减号“------””
7、 表 table
表是数据库中存放数据的最小单位,表有行、列组成。
表名由字母、下划线、数字组成。
8、 表主键:由一个或者几个列组成,它的值用于唯一地标识表中的某一行数据。
9、 列column 的属性及每个属性的说明
列名、列类型、列长度、是否可以为空列名、列类型、列长度、是否可以为空(not null) (not null)
列名是字母、汉字、下划线、数字组成。
常用类型有:常用类型有:char char char、、varchar varchar、、date date、、int int、、numeric numeric、、blob blob。。
1010、、 char(5)char(5)、、varchar(5)varchar(5)的区别的区别
列类型为char char((5)时,插入数据不足5位,后面自动补空格。
列类型为varchar varchar((5)时,插入数据不足5位,后面不会补空格。
1111、、 创建学生表student(student(后面的提到表后面的提到表student 都是指这个表都是指这个表)),列有学号、姓名、年龄、出生日期、身份证编号
照片,主键为学号普通话排名
create table student
(学号学号 char(10) not null,  char(10) not null,
姓名姓名 varchar(20) not null  varchar(20) not null  varchar(20) not null,,
年龄年龄 int,  int,
出生日期出生日期 date,  date,
身份证编号身份证编号 varchar(18) not null,  varchar(18) not null,
院系名称院系名称 varchar(20),  -- varchar(20),  -- varchar(20),  --注意:考试时不要忘记这个逗号注意:考试时不要忘记这个逗号
primary key (primary key (学号学号学号) )
);----注意:考试时不要忘记每句话后面的分号注意:考试时不要忘记每句话后面的分号 1212、、 创建学生选课表student_course(student_course(后面的提到表后面的提到表student_course 都是指这个表都是指这个表)),列有学号、课程号、成绩,主键为学号、课程号
create table student_course
(学号学号 char(10) not null, char(10) not null, char(10) not null,课程号课程号课程号 char(6) not null  char(6) not null  char(6) not null,成绩,成绩,成绩 numeric(4,1),primary key ( numeric(4,1),primary key ( numeric(4,1),primary key (学号学号学号,,课程号课程号))))));; 1313、、 删除用户user01的表student 的命令
drop table user01.student drop table user01.student;;
1414、、 快速删除表student 中的数据的命令
truncate table student truncate table student;;
1515、、 索引index 的作用:提高查询速度。
1616、、 索引根据几个列:一个或者几个列
1717、、 索引分哪两种,说明各自不同
唯一索引:索引列所有值都是唯一的。
重复索引:索引列的值可以有重复。
2 1818、、 为表student 的列“姓名”创建一个重复索引i_student_name
create index i_student_name on student(create index i_student_name on student(姓名姓名姓名));
1919、、 为表student 的列“身份证编号”创建一个唯一索引i_student_name
create unique index i_student_id on student(create unique index i_student_id on student(身份证编号身份证编号身份证编号));
2020、、 在建表时,系统会自动用主键建立一个唯一索引,索引名是随机产生,写出创建student 的主键索引语句
create unique index sys0001 on student(create unique index sys0001 on student(学号学号学号);--);--);--这个语句是由系统自动完成,用户不用自己创建。这个语句是由系统自动完成,用户不用自己创建。
2121、、 写出创建student_course 的主键索引语句
create unique index sys0001 on student_course(create unique index sys0001 on student_course(学号学号学号,,课程号课程号);  );
2222、、 用户user
每一个表都属于一个用户,一个用户可以拥有多个表。
建用户时需要指定默认表空间用来存放该用户的表。
使用用户名使用用户名//密码登入系统后才可操作数据库。
2323、、 用户分哪两种:用户分为dba dba、普通用户。、普通用户。
2424、、 dba 用户特权:数据库的最高权限,配置数据库参数
2525、、 权限
权限分为系统权限、对象权限win8.1如何升级win10
系统权限:配置数据库参数、创建表空间、创建系统权限:配置数据库参数、创建表空间、创建//修改修改//删除用户。
对象权限:访问其他用户的表(或者视图)权限。有select select、、update update、、delete delete、、insert 权限。
2626、、 dba 用户能够访问哪些表(或者视图)
可以访问数据库中任何表(或者视图),即使其他用户没有授权。
2727、、 普通用户能够访问哪些表
自己的表(或者视图)。
其他用户授权给你的表(或者视图)。
2828、、 创建用户user01user01,初始密码,初始密码123123,默认表空间,默认表空间users use
rs,使用表空间,使用表空间users 无限额
create user user01 identified by 123 default tablespace users quota unlimited on users create user user01 identified by 123 default tablespace users quota unlimited on users;;
2929、、 给用户user01授权会话、建表、建视图、建过程、建触发器的权限
grant create session, create table, create view , create procedure,create trigger to user01 grant create session, create table, create view , create procedure,create trigger to user01 ;; 3030、、 修改用户user01密码为345
alter user user01 identified by 345alter user user01 identified by 345;;
3131、、 用户user01登入系统,查询用户user02的表student 所有数据
select * from user02.student select * from user02.student;; --* --*代表所有列代表所有列
3232、、 将自己的表student 的查询权限授权给用户user01
grant select on student to user01grant select on student to user01;;
3333、、 将自己的表student 的修改权限授权给用户user01 grant update on student to user01grant update on student to user01;;
3434、、 将自己的表student 的删除权限授权给用户user01
grant delete on student to user01grant delete on student to user01;;
3535、、 将自己的表student 的插入权限授权给用户user01
grant insert on student to user01grant insert on student to user01;;
3636、、 将上面select/update/delete/insert 权限从用户user01撤销
revoke select on student from user01revoke select on student from user01;;
revoke update on student from user01revoke update on student from user01;;
revoke delete on student from user01revoke delete on student from user01;;
revoke insert on student from user01revoke insert on student from user01;;
3737、、 将自己的表student 的查询权限授权给所有人
grant select on student to public grant select on student to public;;
3838、、 将自己的表student 的修改权限授权给所有人
grant update on student to public grant update on student to public;;
3 3939、、 将自己的表student 的删除权限授权给所有人
grant delete on student to public grant delete on student to public;;
4040、、 将自己的表student 的插入权限授权给所有人
grant insert on student to public grant insert on student to public;;
4141、、 将上面select/update/delete/insert 权限从所有人撤销
revoke select on student from public revoke select on student from public;;
revoke update on student from public revoke update on student from public;;
revoke delete on student from public revoke delete on student from public;;
revoke insert on student from public revoke insert on student from public;;
4242、、 授权查询所有用户的所有表的权限给user01
grant select any table to user01grant select any table to user01;;
4343、、 授权修改所有用户的所有表的权限给user01
grant update any table to user01grant update any table to user01;;
4444、、 授权删除所有用户的所有表中数据的权限给user01
grant delete any table to user01grant delete any table to user01;;
4545、、 上面三种授权的撤销
revoke select any table from user01revoke select any table from user01;;
revoke update any table from user01revoke update any table from user01;;
revoke delete any table from user01revoke delete any table from user01;;
4646、、 视图:视图是一个虚拟表,其内容由查询定义。
4747、、 根据表student student,创建一个只有女生信息的视图,创建一个只有女生信息的视图student_female
create view student_male as select * from student where create view student_male as select * from student where 性别性别性别==’女’
; 4848、、 如何实现让用户user01只能查询student 中的男生的学号、姓名
create view student_male as select create view student_male as select 学号、姓名学号、姓名学号、姓名 from student where  from student where  from student where 性别性别性别==’男’
; grant select on student_male to user01grant select on student_male to user01;;
4949、、 rollback rollback、、commit 对什么语句有效,对什么语句无效
对数据操纵语言delete delete、、insert insert、、update 有效。
对数据定义语言create table create table、、drop table drop table、、truncate table 等无效。
5050、、 rollback 作用
rollback 就是将上次rollback 或者commit 之后通过数据操纵语言对数据进行的修改全部作废。
5151、、 commit 作用
commit 就是将上次rollback 或者commit 之后通过数据操纵语言对数据进行的修改全部写入数据库。
5252、、 为什么对数据每次操作不是立刻写入库,而是通过commit 才会写入正式库。
使用数据操作语言对数据进行操作,操作结果临时放在回滚段中,只到遇到commit 才会一次写入正式库中,目的是为了保证数据的一致性,避免对数据操作没有完成前,出现中断,造成数据不一致。
5353、、 对表student 插入一行数据,学号:2012010101,姓名:张三,出生日期:1990-9-1,身份证编号
370111************
insert into student(insert into student(学号,姓名,出生日期,身份证编号学号,姓名,出生日期,身份证编号学号,姓名,出生日期,身份证编号) )
values values(’(’(’201201010120120101012012010101’’,’张三’,date date’’1990-9-11990-9-1’’,’370111************370111************’’
); 5454、、 对表student_course 插入一行数据的标准写法和省略写法,学号:插入一行数据的标准写法和省略写法,学号:**********20120101012012010101,课程号:,课程号:,课程号:100001100001100001,成绩:,成绩:,成绩:90 90
insert into student_course(insert into student_course(学号学号学号, , , 课程号课程号课程号, , , 成绩成绩成绩) )
values values(’(’(’201201010120120101012012010101’’,’100001100001’’,90,90));
insert into student_course
values values(’(’(’201201010120120101012012010101’’,’100001100001’’,90,90));
5555、、 删除表student 全部数据
delete from student;
5656、、 删除表student 学号为2012010101数据
delete from student where 学号学号==‘20120101012012010101’’;
4 5757、、 删除表student 前100行男生的数据
delete from student where 性别性别==’男’’男’ and rownum<=100;  and rownum<=100;
5858、、 查询student 中所有数据标准写法和简单写法
select select 学号学号学号,,姓名,年龄姓名,年龄,,出生日期出生日期,,身份证编号身份证编号,,院系名称院系名称 from student;  from student;
select  *  from student;
5959、、 查询student 中所有学生的院系名称、学号、姓名,按院系名称排序逆序、然后按学号排序
select select 学号学号学号,,姓名姓名 from student order by  from student order by 院系名称desc desc,学号;,学号;
6060、、 查询大于等于20岁男同学或者所有的女同学的所有信息,按年龄排序
select * from student where (select * from student where (性别性别性别==’男’’男’ and  and  and 年龄好看的韩剧介绍
年龄年龄>=20) or >=20) or >=20) or 性别性别性别==’女’’女’order by order by order by 年龄;年龄;
6161、、 查询没有选课的大于20岁的男同学的所有信息
select * from student where (select * from student where (性别性别性别==’男’’男’ and  and  and 年龄年龄年龄>20)  >20)
and and 学号学号学号 not in (select  not in (select  not in (select 学号学号学号 from student_course) from student_course) from student_course);;
6262、、 和珅选学生,姓名中不能够有“刘、墉”任何一个字,但是有“钱”或者“权”的也可以,查询符合条件的学
生信息。
select * from student where  (select * from student where  (姓名姓名姓名 not like  not like  not like ‘‘%刘%’ and  and 姓名姓名姓名 not like  not like  not like ‘‘%墉%’ )
or 姓名姓名 like  like  like ‘‘%钱%’ or 姓名姓名 like  like  like ‘‘%权%’;
6363、、 查和珅选学生,姓名中不能够有“刘、墉”任何一个字,但是如果有“钱”也有“权”的也可以,查询符合条
件的学生信息。
select * from student where  (select * from student where  (姓名姓名姓名 not like  not like  not like ‘‘%刘%’ and  and 姓名姓名姓名 not like  not like  not like ‘‘%墉%’ )
or (            or (姓名姓名姓名 like  like  like ‘‘%钱%’ and 姓名姓名 like  like  like ‘‘%权%’
); 6464、、 查询student 中男学生最大年龄、最小年龄是多少
沂蒙山小调原唱select max(select max(年龄年龄年龄) ) ) ,,min(min(年龄年龄年龄) from student where ) from student where ) from student where 性别性别性别==’男’
; 6565、、 查询student 中各个年龄及人数
select select 年龄,年龄,年龄,count(count(count(年龄年龄年龄) from student group by ) from student group by ) from student group by 年龄;年龄;
6666、、 查询student_course 中每个学号的总成绩、平均成绩,并定义别名
select select 学号学号学号,sum(,sum(,sum(成绩成绩成绩) ) ) 总成绩,总成绩,总成绩,avg(avg(avg(成绩成绩成绩) ) ) 平均成绩平均成绩平均成绩 from student_course group by  from student_course group by  from student_course group by 学号;学号;
6767、、 查询查询 student  student 中所有院系名称并剔除重复记录
select  distinct              select  distinct 院系名称院系名称院系名称 from student  from student  from student;;
6868、、 age1age1、、age2的内容为null,age3内容为2020,表达的,表达的age1+100,age2+age3age1+100,age2+age3,,age1=age3,age1<>ag3的值
null,null,null,null,假,假假,假
注:空值没有大小,自然不能进行大于、小于、等于运算。
而只能进行is null ,is not null 的判定
6969、、 查询所有年龄为空的前100个学生的序号、学号、姓名
select rownum,select rownum,学号学号学号,,姓名姓名 from student where  from student where  from student where 年龄年龄年龄 is null and rownum <=100;  is null and rownum <=100; 7070、、 select * from student_course where select * from student_course where 学号学号学号 in (select  in (select  in (select 学号学号学号 from student where  from student where  from student where 性别性别性别==’女’’女’))将in 改成exists
select * from student_course t1 where exists(select * from student where 性别性别==’女’’女’ and t1. and t1. and t1.学号学号=学号学号) )
7171、、 select * from student_course where select * from student_course where 学号学号学号 not in (select  not in (select  not in (select 学号学号学号 from student where  from student where  from student where 性别性别性别==’女’’女’))将in
改成exists
select * from student_course t1 where not exists(select * from student where 性别性别==’女’’女’ and t1. and t1.学号学号==学号学号) )
7272、、 利用student student、、student_course 查询男学生的学号、姓名、课程号、成绩
select  t1.select  t1.学号学号学号,t1.,t1.,t1.姓名姓名姓名,t2.,t2.,t2.课程号课程号课程号,t2.,t2.,t2.成绩成绩成绩  from student t1,student_course t2            from student t1,student_course t2
where t1.            where t1.学号学号学号=t2.=t2.=t2.学号学号学号 and t1. and t1. and t1.性别性别性别==’男’’男’;    ;
7373、、 查询平均成绩大于60的学号、总成绩
select select 学号学号学号,sum(,sum(,sum(成绩成绩成绩) from student_course  group by ) from student_course  group by ) from student_course  group by 学号学号学号 having  avg( having  avg( having  avg(成绩成绩成绩)>=60)>=60)>=60;;
5 7474、、 union 用法:从student student、、student1中查询男生的学号、姓名,并剔除重复的记录
select select 学号学号学号,,姓名姓名 from student where  from student where  from student where 性别性别性别==’男’
union
select select 学号学号学号,,姓名姓名 from student1 where  from student1 where  from student1 where 性别性别性别==’男’
7575、、 union all 用法:从student student、、student1中查询男生的学号、姓名,不剔除重复的记录
select select 学号学号学号,,姓名姓名 from student where  from student where  from student where 性别性别性别==’男’
union all
select select 学号学号学号,,姓名姓名 from student1 where  from student1 where  from student1 where 性别性别性别==’男’
初一不能洗澡7676、、 将身份证编号为18位的学生的出生日期设置成身份证编号中日期
update student  set update student  set 出生日期出生日期出生日期=to_date =to_date =to_date((substr(substr(身份证编号,身份证编号,身份证编号,7,8)7,8)7,8),,‘yyyymmdd yyyymmdd’’
)              where length              where length(身份证编号)(身份证编号)(身份证编号)=18=18=18;;
7777、、 将出生日期不为空的学生的年龄根据出生日期及当前机器时间进行设置
update student set update student set 年龄年龄年龄= extract(year from sysdate) -extract(year from = extract(year from sysdate) -extract(year from = extract(year from sysdate) -extract(year from 出生日期出生日期出生日期) )
where              where 出生日期出生日期出生日期 is not null  is not null  is not null;;
7878、、 所有年龄不为空值的男学生年龄增加一岁,出生日期增加365天
update student set update student set 年龄年龄年龄==年龄年龄+1, +1, +1, 出生日期出生日期出生日期==出生日期出生日期+365 +365
where              where 性别性别性别==’男’’男’ and  and 年龄年龄 is not null  is not null  is not null;;
7979、、 输入数据时粗心将部分学生的学号的开始4位“位“201020102010”输成“”输成“”输成“202020202020””
,解决办法 update student set update student set 学号学号学号==’20102010’’  ||  substr  ||  substr(学号(学号(学号,5,6,5,6,5,6))--  ||--  ||用来连接两个字符串用来连接两个字符串
where substr(where substr(学号学号学号,1,4)=,1,4)=,1,4)=’’20202020’’
; 8080、、 剔除院系名称中的空格
update student set update student set 院系名称院系名称院系名称=replace =replace =replace(院系名称(院系名称(院系名称,,’    ‘‘,’
’) where substr(where substr(学号学号学号,1,4)=,1,4)=,1,4)=’’20202020’’
; 8181、、 将院系名称长度小于3的后面,增加上“学院”两个字
update student set update student set 院系名称院系名称院系名称==院系名称院系名称||||||’学院‘’学院‘
where length(where length(院系名称院系名称院系名称)<3)<3)<3;;
8282、、 和珅选状元,姓名中不能够有“刘、墉”任何一个字,而且要有“钱”也要有“权”
,将这些学生的所有选课的成绩赋值100100。。
update student_course
set set 成绩成绩成绩=100 =100
where where 学号学号学号 in  in
(select    (select 学号学号学号 from student  from student
where  where  姓名姓名姓名 not like  not like  not like ‘‘%刘%’  and  and 姓名姓名姓名 not like  not like  not like ‘‘%墉%’
and and 姓名姓名姓名 like  like  like ‘‘%钱%’and 姓名姓名 like  like  like ‘‘%权%’; 8383、、 根据student 中姓名设置student_course 中新增加的列姓名
update student_course t1
set set 姓名姓名姓名=(select =(select =(select 姓名姓名姓名 from student t2 where t1. from student t2 where t1. from student t2 where t1.学号学号学号=t2.=t2.=t2.学号学号学号));
8484、、 根据student_course 中成绩统计student 中新增加总成绩、平均成绩,条件是只统计有选课的学生
update student t1
set set (总成绩,平均成绩)(总成绩,平均成绩)
=(select sum(=(select sum(成绩成绩成绩)),avg avg(成绩)(成绩)(成绩) from student_course t2 where t1. from student_course t2 where t1. from student_course t2 where t1.学号学号学号=t2.=t2.=t2.学号学号学号) )
where 学号学号 in (select  in (select  in (select 学号学号学号 from student_course)  from student_course)
8585、、 将student 中所有数据备份到表studentback 中
create table studentback as select * from student create table studentback as select * from student;;
8686、、 查询大于20岁男同学或者小于20岁的女同学的学号、姓名,将查询结果创建成表student1
create table student1 as
select select 学号学号学号,,姓名姓名 from student  from student
怎样查高考分
where (where (性别性别性别==’男’’男’ and  and  and 年龄年龄年龄>20) or (>20) or (>20) or (性别性别性别==’女’’女’ and  and  and 年龄年龄年龄<20)<20)<20);;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。