• Oracle数据字典


    转载 :http://www.itpub.net/thread-689020-1-1.html 

    Oracle数据字典是有表和视图组成的,存储有关数据库结构信息的一些数据库对象。数据库字典描述了实际数据是如何组织的。对它们可以象处理其他数据库表或视图一样进行查询,但不能进行任何修改。

    ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化,
    体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。

        数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。
    我们不能手工修改数据字典里的信息。

      很多时候,一般的ORACLE用户不知道如何有效地利用它。

      dictionary   全部数据字典表的名称和解释,它有一个同义词dict
        dict_column   全部数据字典表里字段名称和解释
       
        如果我们想查询跟索引有关的数据字典时,可以用下面这条SQL语句:
       
        SQL>;select * from dictionary where instr(comments,'index')>;0;
       
        如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句:
       
        SQL>;select column_name,comments from dict_columns where table_name='USER_INDEXES';
       
        依此类推,就可以轻松知道数据字典的详细名称和解释,不用查看ORACLE的其它文档资料了。
       
        下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。
       
        一、用户

         查看当前用户的缺省表空间
         SQL>;select username,default_tablespace from user_users;

    查看当前用户的角色
    SQL>;select * from user_role_privs;

    查看当前用户的系统权限和表级权限
    SQL>;select * from user_sys_privs;
    SQL>;select * from user_tab_privs;

        二、表
         
         查看用户下所有的表
         SQL>;select * from user_tables;
             
         查看名称包含log字符的表
         SQL>;select object_name,object_id from user_objects
             where instr(object_name,'LOG')>;0;
         
         查看某表的创建时间
         SQL>;select object_name,created from user_objects where object_name=upper('&table_name');
         
         查看某表的大小
         SQL>;select sum(bytes)/(1024*1024) as "size(M)" from user_segments
             where segment_name=upper('&table_name');
         
         查看放在ORACLE的内存区里的表
         SQL>;select table_name,cache from user_tables where instr(cache,'Y')>;0;
         
        三、索引
       
         查看索引个数和类别
         SQL>;select index_name,index_type,table_name from user_indexes order by table_name;
         
         查看索引被索引的字段
         SQL>;select * from user_ind_columns where index_name=upper('&index_name');
         
         查看索引的大小
         SQL>;select sum(bytes)/(1024*1024) as "size(M)" from user_segments
             where segment_name=upper('&index_name');
         
        四、序列号
       
         查看序列号,last_number是当前值
         SQL>;select * from user_sequences;
       
        五、视图
       
         查看视图的名称
         SQL>;select view_name from user_views;
         
         查看创建视图的select语句
         SQL>;set view_name,text_length from user_views;
         SQL>;set long 2000; 说明:可以根据视图的text_length值设定set long 的大小
         SQL>;select text from user_views where view_name=upper('&view_name');
       
        六、同义词
       
         查看同义词的名称
         SQL>;select * from user_synonyms;
       
        七、约束条件
       
         查看某表的约束条件
         SQL>;select constraint_name, constraint_type,search_condition, r_constraint_name
             from user_constraints where table_name = upper('&table_name');
             
    SQL>;select c.constraint_name,c.constraint_type,cc.column_name  
        from user_constraints c,user_cons_columns cc
        where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')
        and c.owner = cc.owner and c.constraint_name = cc.constraint_name
        order by cc.position;         
       
        八、存储函数和过程
       
         查看函数和过程的状态
         SQL>;select object_name,status from user_objects where object_type='FUNCTION';
         SQL>;select object_name,status from user_objects where object_type='PROCEDURE';
         
         查看函数和过程的源代码
         SQL>;select text from all_source where owner=user and name=upper('&plsql_name');

  • 相关阅读:
    排序算法总结
    设计模式---(简单工厂模式,工厂模式,抽象工程模式),单例模式,代理模式,装饰器
    网易编程题——牛牛的闹钟
    Python + sqlalchemy + Pandas + Mysql 实现自动创建表,插入数据
    cucumber
    加油
    重新学习python爬虫
    python 网址
    《高兴》 贾平凹 摘抄
    funny python
  • 原文地址:https://www.cnblogs.com/daodan/p/3926952.html
Copyright © 2020-2023  润新知