查看: 3683|回复: 4

[笔记] 如何有效的利用ORACLE数据字典

[复制链接]
论坛徽章:
0
跳转到指定楼层
1#
发表于 2006-12-17 12:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
也谈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');
论坛徽章:
36
ITPUB元老
日期:2007-08-14 09:10:50美羊羊
日期:2015-06-08 11:13:51懒羊羊
日期:2015-05-27 14:41:362015年新春福章
日期:2015-03-06 11:57:31美羊羊
日期:2015-03-04 14:48:58马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14
2#
发表于 2006-12-17 13:00 | 只看该作者
对初学者很有帮助

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2006-12-06 12:37:01
3#
发表于 2006-12-17 14:18 | 只看该作者
多谢分享

使用道具 举报

回复
论坛徽章:
30
生肖徽章:马
日期:2007-03-01 11:03:29奥迪
日期:2013-12-21 17:12:36马上有钱
日期:2014-02-22 21:52:26马上有钱
日期:2014-03-24 21:24:59马上有车
日期:2014-04-27 20:14:42ITPUB元老
日期:2014-08-01 17:12:17授权会员
日期:2014-08-01 17:12:49青年奥林匹克运动会-自行车
日期:2014-09-10 10:14:58马上有车
日期:2014-12-18 16:13:59马上加薪
日期:2014-12-23 19:40:56
4#
发表于 2006-12-17 15:50 | 只看该作者
还可以。

使用道具 举报

回复
论坛徽章:
4
生肖徽章2007版:鼠
日期:2008-01-02 17:35:53数据库板块每日发贴之星
日期:2008-03-19 01:04:392009日食纪念
日期:2009-07-22 09:30:002010新春纪念徽章
日期:2010-03-01 11:20:51
5#
发表于 2006-12-18 09:43 | 只看该作者
有一些是我不知道的,多谢了

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表