`

(转)ORACLE 数据库(查询--主键外键约束)

 
阅读更多

 

--   查询外键约束(查某表的所有父表) 

select   rcc.owner,rcc.table_name 子表,rcc.constraint_name,rcc.column_name,c.table_name 父表,c.constraint_name,cc.column_name     
  from   user_constraints   c,user_cons_columns   cc,user_cons_columns   rcc 
  where   lower(c.owner)='d7i' 
  and   rcc.table_name='R5HOME' 
  and   c.constraint_type='R' 
  and   c.owner=cc.owner 
  and   c.constraint_name=cc.constraint_name 
  and   c.r_owner=rcc.owner 
  and   c.r_constraint_name=rcc.constraint_name 
  and   cc.position=rcc.position 
  order   by   c.constraint_name,cc.position  

 

--   查询主键唯一键约束  
  select   c.constraint_name,c.constraint_type,cc.column_name  
  from   user_constraints   c,user_cons_columns   cc  
  where   c.owner='SALIEN_SBGL'  
  and   c.table_name='JH_NDGXLGJH_TB'  
  and   c.owner=cc.owner  
  and   c.constraint_name=cc.constraint_name  
  and   c.constraint_type   in   ('P','U')  
  order   by   c.constraint_type,c.constraint_name,cc.position;  

 

在Oracle数据字典中查看约束信息收藏

1、我们创建的对象可以从"USER_"开通的视图中查看。如果在模式中创建了10张表,那么从USER_TABLES中查询将返回10行,每一行是关于一张表的特性信息
USER_TABLES不能查看非当前用户模式下创建的表。
ALL_TABLES视图不但显示当前用户模式下创建的表,而且显示授权能够访问的表信息

我们关心的视图以下列前缀命名:
  ·USER_  当前用户模式下创建的对象
  ·ALL_   当前用户模式下创建的对象加上当前用户能访问的其他用户创建的对象。ALL视图常常包含一个"OWNER"列,反映出能够访问的对象的所有者。在 USER_TABLES表中不能看到OWNER列是因为你就是在这个视图中所有表的所有者;在ALL_TABLES中有一个OWNER字段。
  ·DBA_   它提供了整个数据库的信息。包括数据库中所有表的名字和拥有者——包括SYS模式下的基本表
这些前缀在限制我们想看到的、需要看到的、应当被允许看到的范围上是一个帮助。查看当前模式下创建的表,查询USER_TABLES;
查看所有我们创建的表以及被授权可以从其他用户模式下访问的表,查询ALL_TABLES;
具有DBA或SELECT_CATALOG_ROLE角色的用户可以查询DBA_TABLES来查询数据库中所有表的列表;

不是所有视图下都有一个USER、ALL、和DBA前缀,有一些视图仅存在于dba视图范围。比如:DBA_DATA_FILES。
在开发 环境中有时会访问DBA视图,允许开发人员探究Oracle数据字典是没有害处的。你可以在不拥有DBA角色的情况下获得这个权限。一般,把 CONNECT和RESOURCE角色给应用开发者,他不能访问这些,你可以把SELECT ANY TABLE权限或SELECT_CATALOG角色赋给一个用户,这样他将被允许访问整个数据字典。
一个人对数据字典理解的越多,越能接触到数据库中复杂的操作,越能对SQL语句优化敏感。

 

2、数据字典视图:概要
在数据字典视图中有一些隐含的关系。发现这些关系常常是使用SQL查询对数据字典验证的结果,幸运的是,在数据字典中有许多使用名称的特征。
例如:USER_TABLES表中每一个表包含一个单独的行。每一行包含一张表的详细信息,比如表的物理存储参数。这些数据提供的扩展信息告诉你表是怎么增长的。
USER_TAB_COLUMNS 视图中在USER_TABLES表中的每一张表的每一行包含一条记录。如果一张表有10个字段,那么,你将在USER_TAB_COLUMNS表中找到 10行记录,是关于每一字段的详细信息。比如字段数据类型。字段名TABLE_NAME在USER_TABLE 和USER_TAB_COLUMNS表中都有,因此可以很容易的把他们连接起来。

USER_OBJECTS   用户对象视图
ALL_OBJECTS    所有对象视图
DBA_OBJECTS    DBA对象视图

USER_SEQUENCES   用户序列对象视图,在USER_SEQUENCES的记录也会出现在USER_OBJECTS表中

 

3、约束视图
有两个数据字典视图提供了约束的详细信息。USER_CONSTRAINTS和USER_CONS_COLUMNS.
一 张表可能有也可能没有约束,对于一张表的每一个约束在USER_CONSTRAINTS中都有一条记录描述这个约束。包括约束应用到的表名称。如果你知道 约束名想知道约束类型,查询USER_CONSTRAINTS表。这个视图描述了约束的定义。它不提供约束定义在哪些字段名称上。
在USER_CONS_COLUMNS视图中显示约束的字段名称。如果主键是个联合主键,这个视图中将有这个约束的两条记录。联合主键的每一个字段对应一条记录。每一条记录通过POSITION(在联合主键中的位置)来区别。

USER_CONSTRAINTS 和USER_CONS_COLUMNS都有字段CONSTRAINT_NAME 和TABLE_NAME.
---------------------------------------------------------------------
USER_CONSTRAINTS                     USER_CONST_COLUMNS
---------------------------------------------------------------------
 CONSTRAINT_NAME                      CONSTRAINT_NAME
 CONSTRAINT_TYPE                      TABLE_NAME
 TABLE_NAME                           COLUMN_NAME
                                      POSITION
----------------------------------------------------------------------

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jiangxinyu2008/archive/2010/01/13/5181750.aspx

分享到:
评论

相关推荐

    聊聊Oracle外键约束的几个操作选项

    关系型数据库是以数据表和关系作为两大对象基础。数据表是以二维关系将数据组织在DBMS中,而...具体在Oracle数据库中,外键约束还是存在一些操作选项的。本篇主要从实验入手,介绍常见操作选项。  二、环境介绍  

    Oracle数据库、SQL

    16.5 references foreign key:外键约束 32 16.6 check:检查约束 34 十七、 事务 35 17.1 transaction 35 17.2定义 35 17.3事务的特性:ACID 35 17.4事务的隔离级别 35 17.5数据库开发的关键挑战 35 17.6锁的概念 ...

    oracle数据库表设计.pptx

    表设计范式 表与表关联关系 主键、外键、约束 表分区 目录 oracle数据库表设计全文共29页,当前为第2页。 表设计规范-范式 1NF:如果关系R 中所有属性的值域都是单纯域,那么关系模式R是第一范式的 那么符合第一...

    transferdb:Transferdb支持异步数据库模式转换,全量数据导入,导入和增量数据同步功能(Oracle数据库-> MySQL数据库)

    transferdb用于分布式数据库迁移(Oracle数据库-> MySQL数据库),现阶段支持的功能(原transferdb版本被重构): 支持表结构定义转换 考虑到Oracle分区表特殊且MySQL数据库复杂分区可能不支持,分区表统一认为普通...

    24.Oracle的主键和外键1

    2、外键的作用合理的数据结构设计,表中的数据一定有一致性约束,使用外键,让数据库去约束数据的一致,不给任何人出错的机会 3、外键约束1)当对从表进行操作时,数据

    《Oracle Database 11g & MySQL 5.6开发手册

    6.1.1 Oracle数据库的用户120 6.1.2 MySQL数据库的用户126 6.2 数据库131 6.2.1 Oracle的模式131 6.2.2 MySQL的数据库132 6.3 表 134 6.3.1 Oracle数据库的表135 6.3.2 MySQL数据库的表161 6.4 索引179 6.4.1 Oracle...

    最新尚观Oracle10g培训教材电子档

    数据库就是存放用户数据的存储仓库,数据通过用户执行特定的操作语言...外键这些约束条件) RDMBS:关系型数据库管理系统,现在数据库中以增加了对象(Objects)的概念,所以现在的 数据库也被叫做对象关系型数据库。

    Oracle数据库设计策略及规范.docx

    含有外键约束的表的字段,必须有单独索引。如订单明细的表头外键。 5. 对象命名规范 5.1 一般规范 5.1.1 语言 命名使用英文单词,不使用复数。 Oracle数据库设计策略及规范全文共3页,当前为第1页。 英文单词...

    oracle数据库经典题目

    系统权限提供了在Oracle数据库系统范围内执行某种任务的操作能力,而对象权限则是一种赋予用户在指定的数据库对象(如表、视图、过程等) 16. Oralce数据库在进行物理备份有联机备份和脱机备份两种方式可供选择。 ...

    第二章:Oracle数据库表的管理

    七、Oracle的表操作–外键约束(foreign key) 八、Oracle的表操作–修改和删除表 九、Oracle的表操作–增删改查 十、Oracle的表操作–事务 十一、Oracle的数据字典 一、Oracle的SQL SQL:结构化查询语言...

    21天学通Oracle

    1.1.3 Oracle数据库的特点 24 1.2 安装Oracle数据库 25 1.2.1 Oracle数据库的版本变迁及安装环境 25 1.2.2 安装过程 26 1.2.3 安装中需要注意的问题 27 1.3 本章小结 28 1.4 习题 28 第2章 Oracle常用工具...

    Oracle数据库设计规范建议.doc

    Oracle数据库设计规范建议 1 目的 本规范的主要目的是希望规范数据库设计,尽量提前避免由于数据库设计不当而产生 的麻烦;同时好的规范,在执行的时候可以培养出好的习惯,好的习惯是软件质量的很 好的保证。 ...

    Oracle开发工具 - Oracle SQL Handler(功能强大,超方便好用, 免装客户端, Windows / Linux)

    Oracle SQL Handler,是专为 Oracle 数据库开发人员及操作人员精心打造的一款 Oracle 客户端工具: 超智能的SQL编辑器;超方便的表格操作(可以通过修改表格的单元格数据去更新数据 库表);多种格式的数据导出包括...

    震撼推出超方便实用的Oracle开发工具 - Oracle SQL Handler,双语界面,智能SQL编辑器,免装Oracle客户端,能运行于Windows, 双语界面

    ” 或 Ctrl+鼠标点击字串“[user.]objectName[@dbLink] ”,如果是一表名,则能清楚地显示表的列信息(包括列名称、数据类型及长度、默认值、非空)、索引、约束 条件(主键、唯一键、检查键、子表、触发器、外键、...

    oracle创建表的方法和一些常用命令

    1、主键和外键主键:关系...注2:Oracle数据库共有5个约束:主键、外键、非空、唯一、条件非空:这个列的值不能为空(NOT NULL)唯一:这个列的值在表中是唯一存在的,不能重复,但可以为空值(NULL)条件:可以对列的

    安工大—数据库概论实验报告书

    熟悉Oracle上机环境及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引。

    一个oracle客户端(oracle sql handler)

    ” 或 Ctrl+鼠标点击字串“[user.]objectName[@dbLink]”,如果是一表名,则能清楚地显示表的列信息(包括列名称、数据类型及长度、默认值、非空)、索引、约束条件(主键、唯一键、检查键、子表、触发器、外键、...

    精髓Oralcle讲课笔记

    --查询每个部门中工资最高的那个人 ------------------------------/等值连接-------------------------------------- 62、select e1.ename, e2.ename from emp e1, emp e2 where e1.mgr = e2.empno; --自连接...

    计算机病毒与防护:数据库基础.ppt

    物理独立性 逻辑独立性 数据的完整性约束 实体完整性(通过主键约束条件) 参照完整性(通过主外键约束条件) 用户自定义完整性(通过CHECK子句) 数据由DBMS统一管理和控制 查询引擎、事务控制、数据存储模块/组件 ...

Global site tag (gtag.js) - Google Analytics