• ORACLE数据库利用数据字典查询表的OWNER


    数据字典的所有者是SYS用户,存在SYSTEM表空间内。

    数据字典是只读的,所以只能对数据字典执行查询操作。

    数据字典有基础表(base table)和用户访问视图(user-accessible view)组成。base table用户存储相关的数据库信息,只有Oracle才能读写这些表。user-accessible view 用于对数据字典基础表内存储的数据进行汇总和展示。

    我们可以利用数据字典获取关于用户(user),方案对象(schema object),及存储结构(storage structure)的信息。(Oracle access the data dictionary to find information about users,shema objects, and storage structures.)这里暂且不讨论schema object和storage structure。

    我刚刚看到几个表的join查询例子,我想知道表的所有者是谁?该如何查询呢。我是已as sysdba连接的,以sales为例(查询中sales一定要是大写,要不查询不出来哦):

    image

    其实把上面的查询视图‘all_tables’改为‘dba_tables’结果是一样的。这就是利用数据字典的一个例子。

    我们可以使用desc all_tables和desc dba_tables查询详细字段信息,还有user_tables

    imageimageimage

    前两个视图的字段好像都是一样的,有没有发现?USER_TABLES好像不一样,最起码OWNER字段就没有(当然这三个截图还有部分字段没贴出来,我们只拿贴出来的对比)。

    看到视图前缀就该了解了大概,但可能说不出来。

    这三个视图的列(字段)是完全相同的,除了:

    1.USER前缀的视图通常没有OWNER列,因为我自己知道我是谁啊!我是用scott登录的话,我查询USER前缀的视图,OWNER肯定还是scott,所以就省略了!

    2.DBA前缀的视图权限大啊,人家要管理数据库,所以包含了些管理员所需的列。

    下面这个FROM SH.SALES中的SH其实不是OWNER的意思,是SCHEMA。

    image

  • 相关阅读:
    Code Forces Gym 100886J Sockets(二分)
    CSU 1092 Barricade
    CodeChef Mahesh and his lost array
    CodeChef Gcd Queries
    CodeChef GCD2
    CodeChef Sereja and LCM(矩阵快速幂)
    CodeChef Sereja and GCD
    CodeChef Little Elephant and Balance
    CodeChef Count Substrings
    hdu 4001 To Miss Our Children Time( sort + DP )
  • 原文地址:https://www.cnblogs.com/cnmarkao/p/3643521.html
Copyright © 2020-2023  润新知