【赵渝强老师】崖山数据库的数据字典

YashanDB通过读取数据字典从而比较方便地获取有关用户、对象和存储结构等信息。当系统执行了DDL语句后,YashanDB数据库会及时修改数据字典中的信息。普通用户只能以读的形式使用数据字典获取数据库信息,数据字典由YashanDB系统自动来进行维护。

视频讲解如下
【赵渝强老师】崖山数据库的数据字典

一、 数据字典的简介

数据字典是YashanDB存放有关数据库信息的地方,几乎所有的数据库信息和对象信息都可在数据字典中进行查询,它是随着数据库的建立而建立的。数据字典是YashanDB数据库系统的信息核心,它是一组提供有关数据库信息的表和视图的集合。对于普通用户而言,这些表和视图是只读的。YashanDB数据库的管理员sys用户是数据字典的拥有者,数据字典的数据保存在系统表空间system中。

YashanDB的数据字典有4种不同的命名前缀。下面列举了这4种前缀以及他们的含义。

  • user_

该数据字典只提供当前用户下的数据库对象信息。例如,下面的语句将查询当前用户所创建的数据库对象的名称和类型。

sql 复制代码
SQL> select object_name, object_type from user_objects;
  • all_

该数据字典提供中的数据表示当前用户有关的对象信息。例如下面的语句将查询当前用户可访问到的数据库对象的名称和对象的类型。

sql 复制代码
SQL> select object_name, object_type from all_objects;
  • dba_

该数据字典中的数据只有数据库管理员才可读取的视图。

  • v$

该数据字典是YashanDB的动态性能视图,用于记录当前YashanDB数据库实例在运行过程中的状态信息。因此,动态性能视图对于诊断YashanDB数据库的性能非常重要。

二、 【实战】查询YashanDB数据字典中的信息

在了解到了YashanDB数据字典的基本信息后,下面通过几个具体的示例来演示如何从数据字典获取相关的信息。

(1)使用scott用户查看当前用户的默认表空间

sql 复制代码
SQL> conn scott/tiger
SQL> select username, default_tablespace from user_users;

# 输出的信息如下:
USERNAME           DEFAULT_TABLESPACE   
------------------ -------------------- 
SCOTT              USERS               

1 row fetched.

(2)使用scott用户查看当前用户角色

sql 复制代码
SQL> select * from user_role_privs;

# 输出的信息如下:
GRANTEE         GRANTED_ROLE     ADMIN_OPTION 
--------------- ---------------- ------------ 
SCOTT           CONNECT          N           
SCOTT           RESOURCE         N           

2 rows fetched.

(3)使用sys用户查看表空间的信息。

sql 复制代码
SQL> conn sys/Welcome_1
SQL> select tablespace_name, sum(bytes), sum(blocks) 
     from dba_free_space group by tablespace_name; 

# 输出的信息如下:
TABLESPACE_NAME     SUM(BYTES) SUM(BLOCKS) 
------------------ ----------- ----------- 
SYSTEM                20054016        2448
SYSAUX                63242240        7720
TEMP                  61865984        7552
SWAP                  66060288        8064
USERS                 75169792        9176
UNDO                 100155392       12226

6 rows fetched.

(4)使用sys用户查看用scott创建表的信息。

sql 复制代码
SQL> select owner,object_name,object_type
     from dba_objects 
     where object_type='TABLE' and OWNER='SCOTT';  

# 输出的信息如下:
OWNER               OBJECT_NAME     OBJECT_TYPE           
------------------- --------------- --------------------- 
SCOTT               DEPT            TABLE                
SCOTT               EMP             TABLE                

2 rows fetched.
相关推荐
snow@li19 分钟前
中台:中台即复用 / 理解企业架构中的能力抽象与分层共享 / 中台体系全景梳理 / 共性能力抽象、沉淀并复用
数据库
SelectDB技术团队24 分钟前
AB 实验指标计算场景:Apache Doris / SelectDB 的技术能力、选型对比与实践
大数据·数据库·数据分析·apache·用户运营·apache doris·selectdb
snow@li36 分钟前
数据库:B+ 树 / 数据库索引的底层支柱
数据库
梦想的旅途21 小时前
企业微信二次开发实战:基于RPA接口的私域中台架构设计与选型指南
数据库·企业微信·rpa
许彰午1 小时前
87_Python Django模型与数据库
数据库·python·django
—Miss. Z—1 小时前
计算机二级MySQL选择题考点Ⅱ
数据库·mysql·oracle
敖行客 Allthinker1 小时前
IM 融合专题:后端架构师的核心修炼
java·开发语言·数据库
翔云1234562 小时前
MySQL 中 CURRENT_TIMESTAMP 到底取的是 INSERT 时间,还是 COMMIT 时间?
数据库·mysql
矜持的左手2 小时前
硬件故障后数据文件大小不对故障处理—Oracle碎片扫描恢复
数据库·oracle
欢呼的太阳10 小时前
数据库设计Step by Step (10)——范式化
服务器·数据库·oracle