oracle 小测
01)oracle10i,oracle11g,oracle12c,其它i,g,c什么意思?
i(Internet)互联网
g(grid)网格
c(cloud) 云
02)sqlplus是什么意思?
是oracle自带的客户端工具,它的目的是通过客户端连接到服务器进行SQL操作。
03)oracle的对安装路径有什么要求,对硬件配置有什么要求?
不能有中文,空白字符串的目录
硬件要求:至少单CPU,内存1G,硬盘空间至少5G;
04)什么是PLSQL?
过程化结构查询语言,是对SQL的补充,只能在oracle数据库服务器中运用。
05)向表中如何插入'引号?
insert into emp(ename) values('''');
查询员工姓名中含有'_'的员工,使用\转义符,让其后的字符回归本来意思【like '%\_%' escape '\'】
select * from emp where ename like '%\_%' escape '\';
06)decode()函数的作用?
是oracle专用的多条件判断函数,类似SQL99中case..end语法
举例:
职位是分析员的,工资+1000;职位是经理的,工资+800;职位是其它的,工资+400
decode(字段,条件1,表达式1,条件2,表达式2,...表达式n)
select ename "姓名",job "职位",sal "涨前工资",
decode(job,'ANALYST',sal+1000,'MANAGER',sal+800,sal+400) "涨后工资"
from emp;
07)union和union all的区别?
union all 表示两个集合中相同的,都能取出
union 表示两个集合中相同的,只能取出一个
08)delete和truncate和drop的区别?
delete是DML/可回滚/可带where/相对慢/会产生碎片
truncate是DDL/不可回滚/不可带where/相对中/内容无/结构有
drop是DDL/不可回滚/不可带where/相对快/结构无/可以带purge关键字/闪回!=回滚
09)oracle中为什么能回滚?
不是说所有的操作都能回滚,只限于DML操作
因为DML操作的数据会被放入实例池中,DML操作后会被放到回滚区
所以对DML操作来说,是可以回滚的。
10)函数和过程的区别?
函数适合于有且只有一个返回值的情况
过程适合于无返回值或2个及其以上的返回值的情况
11)序列的cache有什么作用?
序列的目的是对主键提高唯一的数值,但不一定连续
有了cache机制后,那么主键直接可以从内存中获取,速度提高,默认是20个主键值,
可被多个表共享。
12)简述用户,角色和权限的关系?
通常上面的三者的关系是多对多。
13)谈谈视图使用的场合?
让不同的角色用户只可访问该角色用户能访问的内容。
简化复杂SQL的编写,不能提高查询效率
14)谈谈索引使用的场合?
针对表中的单个或多个字段创建索引,从而在根据该字段查询时,提高效率。
15)一个完整的PLSQL有哪几部分组成?
[declare]
begin
[exception]
end;
/
16)pename emp.ename%type和emp_rec emp%rowtype是什么意思?
pename 变量与emp表ename相同类型
pename 变量与emp表的结构类型相同,通过变量名.字段名访问
17)select to_char(sysdate,'day') into pday from dual是什么意思?
获取当前星期几设置到变量pday;
18)exit when cemp%notfound是什么意思?
当cemp游标找不到真实记录时,就退出
19)什么情况下,要使用cursor?
对表中多条记录从上向下一一迭代是,可以使用cursor技术
20)NO_EMP_FOUND exception是什么意思?
定义例外
21)什么是存储过程和存储函数?
事先用oracle语言写的一段具有业务功能的程序段,长期存于oracle服务器中,
供oracle客户端或外界应用程序
22)存储过程和存储函数比较适合用在什么地方?
过程:适合于无返回值或有超过一个以上返回值的应用
函数:有且仅有一个返回值。
23)in和out是什么意思?默认是哪个?
in 接收实参
out 输出返回值
默认是in
24)触发器()是针对insert/delete/update/select哪些操作?
触发器()是针对insert/delete/update
25)为什么oracle不直接用rownum做主健呢?
rownum=1这条记录不能永远唯一表示SMITH这个用户
但主键=1确可以永远唯一表示SMITH这个用户
26)删除到回收站的表,通过什么技术可以还原?
闪回
27)create table emp as select * from xxx_emp where 1<>1是什么意思?
依据xxx_emp创建emp表结构,但无记录
28)事务是针对DML/DDL/DCL哪种语句?
DML
29)drop table/truncate table/delete from 的区别?
drop table 是DDL/不可回滚/不可带where/表内容和表结构
truncate table 是DDL/不可回滚/不可带where/表内容没表结构在
delete from 是DML/可回滚/速度最慢
30)oracle默认是哪种隔离级别?MySQL默认是哪种隔离级别?
31)grant select any table to scott和revoke select any table from scott是什么意思?
授给Scott用户查询任何表的权限
撤销Scott用户查询任何表的权限
32)on delete cascade和on delete set null是什么意思?
删除主表记录时,同时删除从表相关联的记录
删除主表记录时,不同时删除从表相关联的记录,只是将从表的外键字段设置为null
33)你觉得什么情况下要用视图?
简化sql查询,不提高查询速度
让不同的用户看到不同的数据
34)视图能提高查询效率(即让查询速度更快)吗?
不能
只有索引才能提高查询速度
35)只读视图有什么好处?
不能对视图进行非 select操作
注意:
单引号出现的地方如下:
1)字符串,例如:'hello'
2)日期型,例如:'17-12月-80'
3)to_char/to_date(日期,'YYYY-MM-DD HH24:MI:SS')
双引号出现的地方如下:
1)列别名,例如:select ename "姓 名" from emp
2)to_char/to_date(日期,'YYYY"年"MM"月"DD"日" HH24:MI:SS')‘’号中的英文字符大小写不敏感