oracle基本面试问题
- 数据库基础知识
1.1 oracle的组件
1.2 oracle12c的特性
1.3 不能创建索引
1.4 oracle中查询时区
1.5 oracle表的分类 - 视图
- 行迁移与行连接
1. 数据库基础知识
1.1 oracle的组件
oracle数据库服务器的2组件: 实例+数据库
oracle数据库实例 : 内存结构+后台进程
数据库的后台进程:
dbwr、lgwn、ckpt、pmon、smon、arch、
SGA的主要组件:share pool 、Java pool、database buffer cache、redo log cache、large pool、流池
oracle会话是 登录用户 与 数据库 之间的连接
oracle数据库中unlock可以释放锁
oracle数据库的逻辑结构:
oracle用户:sysam、sysdba、sys用户
oracle中普通用户可以连接到数据库和创建表的权限是:resource权限
1.2 oracle12c数据库特性:
多租户、共享内存、共享后台进程
1.3 不适合建立索引的属性:
经常进行跟新操作的属性;
频繁进行数据操作的表
1.4 oracle中查询时区的函数:
sessiontimezone dbtimezone內建函数
sysdate systemstamp 返回的是操作系统的时间
oracle数据库中,数据表的字段最大数是 1000
1.5 oracle表大约分为:
堆表:heap table 数据存储时,行是无序的,最他的访问采用全表扫描
分区表
索引组织表(iot)
簇表
临时表
压缩表
嵌套表
2. 什么事视图?视图得作用?哪一类是可跟新视图?
视图是存储在数据库中查询的SQL语句;安全、隐藏一些数据;
视图得作用:
1、数据库视图隐藏了数据的复杂性
2、有利于控制用户对表的某些列的访问
3、是用户查询变得简单
4、用于筛选用户的需求数据
可更新视图?
视图中的字段来自同一个表中,可以更新,多个表不可以;
基本表的行列子集视图可以更新,自集函数、表达式不可以更新。
3. oracle中,行迁移和行连接的区别?
行连接:一行存储在多个块中,insert操作,跨块
行迁移:当在行上进行更新操作,update操作,不能跨块,在原始块上会保留指针, update语句当pctfree空间不够引起的
pctfree 20% insert数据到pctfree=20%时不可以进行插入,可以update