为什么很多表ORACLE默认12c?

Why many tables ORACLE default 12c?

创建一个新数据库(基础和高级),我是第一次接触Oracle,我不知道为什么有那么多表,触发器,视图和其他对象,而只是想创建一个空的关系数据库.

有没有其他方法可以做到这一点,或者我有什么地方没明白?

谢谢。

捕获:

美元符号 ($) 用于系统表。你需要假装你没有看到他们。他们实际上可能并不在那里。许多工具都有隐藏系统表和视图的选项。许多数据库(access、SQL Server、ORACLE)都有您不想看到的系统对象。

这实际上是 Bryce 和 Codd 最初设计的关系数据库的一部分,因此您可以查询模式等。

这些对象归 SYS 用户所有。您可以使用以下查询来验证它:

SELECT * FROM DBA_OBJECTS WHERE OWNER = 'SYS';

要查看其他用户拥有的对象,请参阅:

SELECT * FROM DBA_OBJECTS WHERE OWNER <> 'SYS';

您必须以 SYS AS SYSDBA 身份登录,因此能够查看 SYS 用户拥有的对象。

记住,

  • SYS/SYSDBA特别
  • 切勿将 SYS(或 SYSDBA)用于一般数据库目的,但用于 administration/maintenance 目的(启动、关闭、备份、恢复)
  • SYS/SYSDBA 是 Oracle 专有的(尝试打开以 "i did that with SYS/SYSDBA" 开头的 SR/TAR,您会立即看到答案)
  • SYS/SYSDBA 不像任何其他用户
  • 当您使用 SYS/SYSDBA 时,Oracle 会停用一些代码路径并激活其他代码路径
  • 无论您用 SYS/SYSDBA 做什么,都不会使任何其他用户验证或使同一件事无效。

永远不要将 SYS/SYSDBA 用于其他用户可以完成的任何事情。 SYS/SYSDBA 仅用于其他人无法完成的事情。

请参阅 Tom Kyte 在 AskTom 上的 this 回答。