oracle面试题总结
oracle面试题总结
1、描述tablespace和datafile的关系
表空间是数据库的逻辑组成部分。从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,表
空间由一个或多个数据文件组成。
2、描述table/segment/extent/block之间的关系
这些都是Oracle存储的逻辑结构。
BLOCK是Oracle存储的最基本单位,由DB_BLOCK_SIZE制定,通常为8KB,也可以定义为2KB,4KB,16KB,32KB,64KB等,磁盘最小存储单位是sector(512BYTE),Oracle数据块由连续的sector组成,Oracle读写单位是数据块,应尽量设置BLOCK大小为磁盘数据块大小的整数倍,避免IO浪费
连续的数据块组成一个分区extent,便于空间管理,包括空间的分配和释放。段的空间是以分区为单位分配的。提高了分配空间的效率,但是带来了空间碎片。
Oracle每个表或索引都会对应这一个段。如果使用分区表或者分区索引,每个分区(partition)都对应着一个段。每个段都有名字,即对象(表、索引)的名字,段由extent组成,但不要求连续。
一个table至少是一个segment,如果分区表,则每个分区是一个segment,table可以看成是一个逻辑上的概 念,segment可以看成是这个逻辑概念的物理实现;segment由一个或多个extents组成,segment不可以跨表空间但可以跨数据文件;extent由多个连续的blocks组成,不可以跨数据文件;block由1-多个os块组成,是oracle i/o的最小存储单位。
3、数据库的启动过程包含3个步骤:nomount,mount,open。
4、查询emp表中deptno,ename,年工资,并将年工资命名别名total salary
select deptno,ename,12*sal "total salary" from emp;
5、 彻底删除e表。(删除e表后系统会把e表放在回收站中,这时要达到彻底删除还需要purge recyclebin,也可以两步合一步drop table e purge;删除e表后scott这个用户下就没有它的记录了)
sql-> drop table e purge;
6、 更新test表对名为’li_si’的学生将其id号设为3.
7、将emp表中的每个员工的奖金(comm)加500。
SQL> update emp set comm=nvl(comm,0)+500;
(常见的+(加)、-(减)、*(乘)、/(除)4种算术运算都可以用来查询数据。
利用算术运算符仅仅适合多个数值型字段或字段与数字之间的运算
nvl指的是:这个是ORACLE处理空的函数,如果是空,会给另外一个值,这样可以防止NULL参与运算,nvl(comm,0) 只当comm为空时就变为0
然后执行结果就是:从emp表查询sal和comm(当comm值为空时,comm值为0)然后sal和comm求和)
8、相同表结构从a表取数据插入b表中
SQL> insert into b select *from b where b.id = 1