♣ 题目部分 在Oracle中,如何列举某个用户下所有表的注释及列的注释?...♣ 答案部分 可以使用DBA_TAB_COMMENTS视图来查询表的注释,使用DBA_COL_COMMENTS视图来查询列的注释。...它们的示例分别如下所示: 某个用户下所有表的注释: SELECT D.OWNER, D.TABLE_NAME, D.COMMENTS FROM DBA_TAB_COMMENTS D WHERE D.OWNER...某个用户下某个表的所有列的注释: SELECT D.OWNER, D.TABLE_NAME,D.COLUMN_NAME, D.COMMENTS FROM DBA_COL_COMMENTS D WHERE...& 说明: 有关Oracle数据字典的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2153324/ 本文选自《Oracle程序员面试笔试宝典
ORACLE掌握了充分反映实际的统计数据,才有可能做出正确的选择。 第九,索引列的选择性不高。 ...虽然 emp数据行有很多,ORACLE缺省认定表中列的值是在所有数据行均匀分布的,也就是说每种deptno值各有25万数据行与之对应。...在这种数据分布图案中对除值为10外的其它deptno值搜索时,毫无疑问,如果索引能被应用,那么效率会高出很多。...我们可以采用对该索引列进行单独分析,或用analyze语句对该列建立直方图,对该列搜集足够的统计数据,使ORACLE在搜索选择性较高的值能用上索引。 第十,索引列值是否可为空(NULL)。...如果索引列值可以是空值,在SQL语句中那些需要返回NULL值的操作,将不会用到索引,如COUNT(*),而是用全表扫描。这是因为索引中存储值不能为全空。
1NF:是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。...所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。...3NF 要求一个数据库表中不包含已在其它表中已包 含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(deptno)、 部门名称、地址等信息。...那么员工信息表(emp)中列出部门编号后就不能再将部门名称、部 门地址等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。...6、查询出所有存在员工的部门的部门编号,以及员工名称 ? 7、表达式 伪列 ? 8、为字段取别名并覆盖 ? 9、 "" 双引号中的内容,表示原封不动的显示 ?
数据库表中的记录 如果audit_trail参数设置为db或db,extended,则其记录存放在数据库的表中。...audit_actions,可以查询出在aud$等视图中actions列的含义(如果是将记录定位至操作系统的文件中,则日志文件中也会有类似actions的列): ?...system_privilege_map,可以查询出aud等视图中privused列的含义(如果是将记录定位至操作系统的文件中,则日志文件中可能也会有类似priv ? 3.2....审计记录的保护 其实在Oracle官方文档中,就建议用户将审计记录存储于操作系统的文件中。 因为如果存储在表中,dba用户可以随意删除其中的记录。...如果存储在文件中,则查询该文件的权限设置,是否不允许操作系统中的数据库用户(比如oracle用户)进行修改。
前言 前面因为项目数据导数据,我们介绍过《Oracle通过ODBC连接SQL Server数据库》,在实际导入过程中新的数据表结构里面存在不少ID的列,所以就用到了Oracle的序列,这一章我们就来介绍一下...Oracle的序列(Oracle Sequence)。...Sequence是数据中一个特殊存放等差数列的表,该表受数据库系统控制,任何时候数据库系统都可以根据当前记录数大小加上步长来获取到该表下一条记录应该是多少,这个表没有实际意义,常常用来做主键用。...语句的子查询中 INSERT语句的values中 UPDATE 的 SET中 使用Currval和nextVal的注意事项: CURRVAL总是返回当前SEQUENCE的值,但是在第一次NEXTVAL...可以alter除start至以外的所有sequence参数.如果想要改变start值,必须drop sequence再 re-create。
存储在数据字典中的信息包括Oracle服务器用户的名字,被授予用户的权限,数据库对象名,表结构和审计信息。 有四种数据字典视图,每一种有一个特定的前缀来反映其不同的目的。...谁可以查询 内容 下列项的子集 附注 DBA_ DBA 一切对象 N/A 可能有其它仅限DBA使用的列 ALL_ 每个用户 用户有权查看的一切对象 DBA_视图 包括用户自己的对象以及该用户已获得查看权限的其它对象...该类型的视图只显示属于查询用户的那些对象(即存在于用户自己方案中的对象)。 一般情况下,每个视图集都是拥有更高权限的视图集的子集,无论按行还是按列。...并非给定视图集中的所有视图都在其它视图集中有对应的视图。这取决于视图中信息的性质。 例如,有一个DBA_LOCK视图,但是并不存在ALL_LOCK视图。这是因为只有DBA才关注有关锁的数据。...V$LATCH 列出锁存器的统计数据 V$SQLTEXT 在SGA中属于共享SQL游标的SQL语句内容 V$LIBRARYCHCHE 有关库缓存性能的统计数据 V$SYSSTAT 包括基本的实例统计数据
ROLLBACK – 回滚等等 简单查询 1 查询语法 Select * |列名 from 表名 2 别名用法 在查询的结果列中可以使用别名 Select 列名 别名,列名别名,... from emp...; 3 消除重复的数据 Select distinct *|列名, ... from emp; 使用distinct可以消除重复的行,如果查询多列的必须保证多列都重复才能去掉重复 4 字符串连接查询...from emp; select ename, sal*12 income from emp; Sql中支持四则运算“+,-,*,/” 条件查询 1 条件查询 在查询绝大多数都会有条件的限制 语法:...select *|列名 from 表名 where 条件 例如:查询工资大于1500的所有雇员 2 非空和空的限制 示例:查询每月能得到奖金的雇员 分析:只要字段中存在内容表示不为空,如果不存在内容就是...DESC 如果存在多个排序字段可以用逗号分隔 注意ORDER BY语句要放在sql的最后执行。
如果分区表的”incremental”首选项设置为true,则DBMS_STATS.GATHER_*_STATS参数中GRANULARITY包含global,ESTIMATE_PERCENT设置成AUTO_SAMPLE_SIZE...增量全局统计信息通过存储表中每个分区的“synopsis”来工作,“synopsis”是用于该分区和分区中的列的统计元数据,从而消除了扫描整个表的需要。...但是,如果一天当中在您的环境存在很多插入少量数据的在线事务,您需要确定统计数据何时过期,然后触发自动统计数据收集任务。...因此, 如果已为已分区表运行了某些作业, 则Schema (或数据库或字典) 中的其他分区表将排入队列, 直到当前作业完成。对非分区表则没有这种限制。...如果表、分区表或子分区表非常小或为空,则Oracle可以自动将对象与其他小对象合成到一个单独作业中,以减少作业维护的开销。 配置并发统计数据收集 默认情况下,统计数据收集的并发设置关闭。
; b:如果附加日志本身是conditional(有条件),增加或者删除列后,需要删除原来附加日志信息,再次增加新附加日志信息,然后重启抽取进程--主要是为了刷新数据字典缓存信息,如果没有更新附加日志或者没有重启抽取日志...,原来有值,更新其他字段时,会造成这个字段在目标被更新成NULL,这个是不规范造成,从而造成后续数据不一致,出现常见错误1403错误. c:如果增加、删除、修改的是大字段类型的列,例如clob,这个列无法增加附加日志中...keycols,keycols的值存在相同,但每一条记录所有字段组合是唯一的情况,如果存在2条记录,更新最后一条,如果源与目标记录顺序一致,那么更新会造成错误错误,如果记录顺序刚好相反,那么更新则没有问题...这个需要考虑到表结构更改以及增加字段时间,对于新表增加影响会小,但是已存在大表,需要停机窗口来增加字段. 2、使用keycols来指定标识唯一值列(可以是多列),如果选出列无法满足,会出现如下情况 如果存在...,对于线上系统,尤其是oracle数据库,如果是大表全列附加日志,需要考虑数据库归档空间增加以及OGG抽取给数据库造成额外IO影响,需要评估下.
♣ 题目部分 在Oracle中,什么是外部表? ♣ 答案部分 外部表是指不存在于数据库中的表。...不能在外部表上建立索引。因为创建索引就意味着要存在对应的索引记录,而其实外部表的数据没有存储在数据库中,故在外部表上是无法建立索引的。 外部表使用两种访问驱动程序。...文本文件或者其它类型的表可以作为外部表。操作系统文件在数据库中的标志是通过一个逻辑目录来映射的,所以外部表需要在Oracle数据库“服务端”创建目录,这些OS文件必须放在这些目录中。...④ ANALYZE语句不支持采集外部表的统计数据,应该使用DMBS_STATS包来采集外部表的统计数据。 ⑤ 可以对外部表执行查询、连接和并行操作。 ⑥ 外部表不支持LOB对象。...SELECT * FROM ALERT_LOG; 需要注意的是,如果外部表对应的文件中包含中文,那么需要设置正确的外部表的字符集。
2、AWR默认60分钟采集一次统计数据,保存一周,然后删除。统计数据保存在数据库中。 3、为了正确收集统计数据,STATISTICS_LEVEL设置为TYPICAL(默认)或ALL。...4、AWR由许多表组成,这些表属于SYS模式,通常保存在SYSAUX表空间。...将间隔时间设置为0,则表示停止所有AWR统计数据的收集。 6、查看AWR当前保留时间和时间间隔设置: select * from dba_hist_wr_control; ?...这里的列TOPNSQL,在《一个执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法》这篇文章中曾介绍过他的含义以及修改方法,可以参考。...13、AWR内创建基线,定义为某个范围内的快照,可以用来与其它快照进行比较。
当编译规则时,在 Excel 中编写的决策表将由 Oracle Policy Modeling 转换成内部生成的规 则表。...如果有如下变量: ? 可以编写以下规则表: ? 在 Oracle Policy Modeling 中为此表生成的规则如下所示: ? 如果我们不想测试结论单元格的属性值,则可以将条件单元格留空。...如果表的第一行无法 求值(即如果有些条件值未知),即使表中后面的行因为其所有条件值完全已知而可以求值,规则表整体的 求值也不会超过第一行。 在某些情况下,这不是规则求值的最有用方式。...但是,如果我们合并包含适用于这两行的结论的单元格,则 Oracle Policy Modeling 生成的内部规则 会将这些行与单个规则表行中的“或者”条件合并,而不是上面生成的两个单独规则表行。...在此示例中,您有三个包含以下规则表的其他工作表。请注意,必须根据“应用表”列中提 供的名称给工作表加标题(区分大小写)。 ? 将在 Oracle Policy Modeling 中创建以下规则: ?
数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者为SYS用户,所有的数据字典表和视图都被储存在该数据库的SYSTEM表空间中。...数据字典基表是在任何Oracle数据库中创建的第一个对象。数据库的所有数据字典表和视图都存储在系统表空间中。所以,数据字典视图是受读一致性的影响的。...同时,如果需要对运行时间段的情况进行分析,采用时间段镜像snap技术也存在一些偶然性。 从Oracle 10g开始,V$动态视图进入了一个新的时代,可以保存V$SESSION的历史信息。...依此类推,就可以轻松知道数据字典的详细名称和解释,不用查看Oracle的其它文档资料了。...SQL使用统计 V$LATCH 列出锁存器的统计数据 V$SQLTEXT 在SGA中属于共享SQL游标的SQL语句内容 V$LIBRARYCHCHE 有关库缓存性能的统计数据 V$SYSSTAT 包括基本的实例统计数据
♣ 题目部分 【DB笔试面试828】在Oracle中,什么是审计(Audit)? ♣ 答案部分 审计(Audit)用于监视用户所执行的数据库操作,审计信息可存储于数据字典表,称为审计记录。...若审计表不存在,则可以通过脚本ORACLE_HOME/rdbms/admin/cataudit.sql来创建。 审计的内容主要包括对数据库连接、SQL语句执行以及数据库对象访问等操作的跟踪记录。...Oracle 11g默认启用审计,AUDIT_TRAIL参数的缺省值为DB,这意味着审计数据将记录在数据库中的AUD$审计字典基表上。...u DB,EXTENDED:启用数据库审计,并将数据库所有审计记录写入数据库的SYS.AUD表。另外,填充SYS.AUD表的SQLBIND列和SQLTEXT列。...3-38 有关审计的数据字典视图介绍 名称 说明 SYS.AUD$ 唯一保留审计结果的表,其它均为视图。
)的表不适用 对AUTO_INCREMENT的 操作 每表一个AUTO_INCREMEN列的内部处理。...合索引 更好和更快的auto_increment处理 如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数 器的计数器,它被用在为该列赋新值。 ...自动增长计数 器仅被存储在主内存中,而不是存在磁盘上 关于该计算器 的算法实现,请参考 AUTO_INCREMENT列 在InnoDB里 如何工作 表的具体行数 select count(*) from...(*) from table时,InnoDB要扫描一遍整个表来计算有多少行 锁 表锁 提供行锁(locking on row level),提供与 Oracle 类型一致的不加锁读取(non-locking...所以,选择何种存储引擎,视具体应用而定: 1)如果你的应用程序一定要使用事务,毫无疑问你要选择INNODB引擎。但要注意,INNODB的行级锁是有条件的。在where条件没有使用主键时,照样会锁全表。
♣ 答案部分 在Oracle 11g之前的版本中,如果需要使用表达式或者一些计算公式,那么需要创建数据库视图;如果需要在这个视图上使用索引,那么会在表上创建基于函数的索引。...,可以包括同表的其它列、常量、SQL函数,甚至可以包括一些用户自定义的PL/SQL函数。...⑨ 虚拟列值只能是标量,不能是其它类型(例如集合、LOB、RAW等类型)。 ⑩ 可以把虚拟列当做分区关键字建立分区表,这是Oracle 11g的另一新特性称为虚拟列分区。...⑪ 在已经创建的表中增加虚拟列时,若没有指定虚拟列的字段类型,则Oracle会根据关键字“GENERATED ALWAYS AS”后面的表达式计算的结果自动设置该字段的数据类型。...⑫ 表达式中的所有列必须在同一张表。 ⑬ 虚拟列表达式不能使用其它虚拟列。
♣ 题目部分 在Oracle中,当收集表的统计信息时应该注意哪些问题?...⑧ 内部对象统计信息:在明确诊断出系统已有的性能问题是因为X$表的内部对象统计信息不准引起的,这个时候就应该收集X$表的内部对象统计信息,其它情形就不要收集了。...⑩ 表是否分区:若是分区表则建议收集全局的统计信息并且收集数据量有变更的单个分区(加GRANULARITY和参数并设置属性INCREMENTAL)的统计信息。...对直方图统计信息的收集策略是对已经存在直方图统计信息的列才收集直方图统计信息,而目标列的初次直方图统计信息则是由了解系统的DBA手工来收集直方图。...如果表中的数据倾斜度较大,那么收集直方图能最大程度的帮助优化器计算出准确的Cardinality,从而避免产生差的执行计划;再进一步,如果存在倾斜的多个列共同构成了Predicate里的等值连接且这些列间存在较强的列相关性的话
简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。...那么在图3-2的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。...第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在”A → → “的决定关系,则传递函数依赖于A。...鲍依斯-科得范式(BCNF):在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合BCNF....当某张表中的信息依赖于该表中其它的不是主键部分的列的时候,通常会违反第二范式) 第三范式:第三范式要求非主键列互不依赖.(第三范式规则查找以消除没有直接依赖于第一范式和第二范式形成的表的主键的属性。
用户管理 1.如果新安装数据库后,忘了oracle用户的密码,可以用哪些方法重新设置密码?...设计数据库时,要决定它包括哪些表,每个表中包含哪些列,每列的数据类型等。 在表中创建列时,必须为其指定数据类型,列的数据类型决定了数据的取值、范围和存储格式。...会话级临时表 会话级的临时表因为这这个临时表中的数据和你的当前会话有关系,当你当前SESSION不退出的情况下,临时表中的数据就还存在,而当你退出当前SESSION的时候,临时表中的数据就全部没有了,当然这个时候你如果以另外一个...On Commit Delete Rows; 两中类型临时表的区别 会话级临时表采用on commit preserve rows;而事务级则采用on commit delete rows;用法上,会话级别只有当会话结束临时表中的数据才会被截断...视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中。通过视图看到的数据存放在基表中。 视图看上去非常象数据库的物理表,对它的操作同任何其它的表一样。
2000的相关的员工信息,并且对获得的结果集按照员工编号升序排列 备注:在实际的使用中,可以给表或者视图起个别名,例如上例中的SCOTT.EMP表的别名是N,在SELECT中便可以使用该别名来代替表名来获得对应的表中的列信息...,如果有重复记录则正常展示。...可以看到此处的子查询只获取了一个部门名称,如果给该子查询再添加一个结果列,则该语句就无法执行了。...位于FROM中的子查询,是将子查询的结果作为一个“表”来使用的,此时的子查询既可以选取多列,也可以返回多行,和使用表没有区别: 位于WHERE条件中的子查询,可以返回单一列的多行或者一行记录,具体的情况需要和前边的过滤条件相匹配...本节教程使用的数据表均为Oracle数据库中Scott用户下的EMP(员工表)和DEPT(部门表) 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142810.html
领取专属 10元无门槛券
手把手带您无忧上云