`

(转)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数据库基础教程-参考答案

    【Oracle数据库基础】 Oracle数据库是一种广泛应用于企业的关系型数据库管理系统,由Oracle公司开发,以其高效、稳定和强大的功能著称。本节将深入解析Oracle数据库的基础知识。 1. 数据库概念: 数据是数据库中...

    oracle建表练习(主键外键)

    总结来说,通过本次练习,初学者不仅能够掌握Oracle数据库中创建表的基本语句,还能够了解到主键和外键在关系型数据库中的重要性,并且通过具体的实例,学会如何在实际操作中应用这些知识。这对于未来进行更复杂的...

    如何在oracle中查询所有用户表的表名、主键名称、索引、外键等

    根据提供的标题、描述以及部分代码内容,我们可以了解到这篇文章主要探讨的是如何在Oracle数据库中查询所有用户表的相关信息,包括表名、主键名称、索引、外键等元数据信息。接下来,我们将对这些知识点进行详细的...

    Oracle数据库培训-SQL基础篇.pptx

    7. **内置约束**:约束是定义表中数据规则的机制,包括`NOT NULL`(不允许空值)、`UNIQUE`(唯一性)、`PRIMARY KEY`(主键,确保唯一标识每一行)、`FOREIGN KEY`(外键,关联两个表)等。 8. **创建视图**:视图...

    oracle主外键查询

    根据提供的标题、描述、标签及部分内容,我们可以了解到本篇文章主要关注的是如何在Oracle数据库中进行主外键查询,包括查询表结构以及通过主外键关联表名的方式。下面将详细介绍这些知识点。 ### 一、Oracle数据库...

    Oracle定义约束 外键约束

    本文将详细介绍如何在Oracle数据库中使用**外键约束**来确保数据的参照完整性。 #### 二、什么是外键约束 外键约束是一种用于保证两个表之间数据一致性的机制。当两个表存在关联时,通过在外键表(子表)中设置外键...

    oracle设置主外键即主键序列自动增长

    在Oracle数据库管理系统中,为了确保数据的一致性和完整性,经常需要设置主键(Primary Key)和外键(Foreign Key)。此外,为了方便管理和操作,通常还会使用序列(Sequence)来实现主键的自动增长。下面将详细介绍...

    Oracle JDeveloper与Oracle数据库

    - **定义外键约束**:指定与另一个表的关系。 - **定义检查约束**:定义一些基本的验证规则。 ##### 2. 定义表空间 在创建表时,还需要指定表所在的表空间,表空间是Oracle数据库中的一组逻辑区域,用于组织数据...

    主键与外键的创建

    同时,外键约束也可以控制级联操作,如级联删除或级联更新,使得当主键表中的数据发生变化时,关联的外键表中的数据能够相应地更新或删除。 总的来说,主键和外键在数据库设计中起着至关重要的作用,它们确保了数据...

    MySQL转成Oracle数据库工具

    MySQL到Oracle数据库转换工具是一种专门用于将MySQL数据库的数据和结构迁移至Oracle数据库的应用程序。这个过程通常涉及到数据的导出、格式转换以及导入,确保在两个不同数据库系统间的数据一致性。以下是对这一转换...

    oracle实验1-Oracle 11g数据库入门.doc

    8. **数据删除操作**:尝试删除表中的行,理解数据库的约束如何影响数据删除,如外键约束可能导致无法直接删除。 9. **数据导出**:使用Oracle的`exp`命令将数据导出为.dmp文件,这是Oracle的数据导出格式,可用于...

    Oracle数据库笔记大全

    - **参照完整性约束**: 控制表间关联,如外键约束,防止无效引用。 5. **Oracle数据库实例与网络服务名**: - **数据库实例**: 运行在数据库文件上的后台进程和内存区域,实际处理数据库请求。 - **网络服务名**...

    oracle查看主外键约束关系

    下面将详细介绍如何通过SQL语句查看Oracle数据库中表的主外键约束关系。 首先,需要了解Oracle数据库中存储主外键约束信息的数据字典视图。在Oracle中,相关视图包括user_constraints、user_cons_columns等。其中,...

    oracle数据库设计课程设计-学生选课数据库的设计及管理.doc

    约束设计:为了保证数据的完整性和一致性,需要设置适当的约束,如主键约束(唯一标识每个学生或课程)、外键约束(确保选课关系的正确性)等。\n\n三、数据录入与管理\n\n1. 测试数据录入:在创建好表结构后,需要...

    Oracle数据库DBA面试题50道及答案.pdf

    Oracle数据库DBA(Database Administrator)是负责Oracle数据库系统运行管理的专业技术人员。在准备面试Oracle数据库管理员岗位时,掌握相关的技术知识和处理问题的能力是非常重要的。以下是针对给定的Oracle数据库...

    Oracle数据库入门学习课件ppt

    - 主键与外键:确保数据完整性的约束。 - 表的创建、修改和删除:CREATE TABLE、ALTER TABLE、DROP TABLE语句。 6. **索引**: - 索引的作用:加快数据检索速度。 - B树索引与位图索引:不同类型的索引及其适用...

    Oracle入门到精通完整学习教程

    - 主键与外键 - 唯一性约束 - 检查约束 - 默认值 - 示例:设置员工表中的完整性约束 第二部分:进阶篇 第5章:高级SQL - 复杂查询:子查询、连接、视图 - 分组与聚合函数 - 排序与限制结果集 - 示例:根据部门...

Global site tag (gtag.js) - Google Analytics