哪里我们来看看Oracle元数据是如何储存的(oracle元数据储存在)
在数据库管理系统中,元数据是非常重要的内容。它存储了关于数据库对象的信息,例如表、列、索引等等。在Oracle数据库中,元数据是被存储在系统表中的。本文将介绍一些有用的系统表以及它们包含的信息,同时也会给出相应的SQL语句来查询这些信息。
1. 数据库级别的元数据
在Oracle中,数据库级别的元数据储存在”SYS”用户下的系统表中。以下这些系统表可以用于查询各种数据库级别的信息。
1.1 DBA_OBJECTS
这个系统表包含了数据库中所有对象的信息。查询该系统表可以得到表名、列名、索引名、约束的名称等等信息。下面是一个查询示例,该查询可以列出所有的表、列、索引和约束。
SELECT object_name, object_type FROM dba_objects WHERE object_type IN ('TABLE', 'VIEW', 'INDEX', 'CONSTRNT');
1.2 DBA_USERS
这个系统表包含了所有用户的信息。查询该系统表可以得到用户的用户名、创建日期、默认表空间、临时表空间等信息。下面是一个查询示例,该查询可以列出所有用户的用户名和创建日期。
SELECT username, created FROM dba_users;
1.3 DBA_ROLES
这个系统表包含了所有角色的信息。查询该系统表可以得到角色的名称、创建日期、角色的拥有者等信息。下面是一个查询示例,该查询可以列出所有角色的名称和创建日期。
SELECT role, created FROM dba_roles;
2. 表级别的元数据
在Oracle中,表级别的元数据储存在对象所属的用户下的系统表中。以下这些系统表可以用于查询各种表、列、索引级别的信息。
2.1 DBA_TABLES
这个系统表包含了所有表的信息。查询该系统表可以得到表名、所有者、表的类型、表的大小等信息。下面是一个查询示例,该查询可以列出所有表的表名和表的大小。
SELECT table_name, (num_rows * avg_row_len) / 1024 / 1024 AS table_size FROM dba_tables;
2.2 DBA_TAB_COLUMNS
这个系统表包含了所有表的列的信息。查询该系统表可以得到表名、列名、数据类型、NULL是否可用、该列是否为主键等信息。下面是一个查询示例,该查询可列出所有表中的列名和数据类型。
SELECT table_name, column_name, data_type FROM dba_tab_columns;
2.3 DBA_INDEXES
这个系统表包含了所有索引的信息。查询该系统表可以得到索引的名称、所属表的名称、索引类型、是否为唯一索引等信息。下面是一个查询示例,该查询能列出所有索引的名称和所属表的名称。
SELECT index_name, table_name FROM dba_indexes;
Oracle数据库的元数据是非常丰富的,通过系统表和相应的SQL查询语句,我们能够获取到非常详细的数据库对象信息。通过这些信息,我们可以更加深入地了解我们的数据库。