oracle中通过约束查询表,【oracle操作札记】oracle通过sql语句查看表的约束

因为想通过sql语句来查看数据库表的相关约束信息,通过看了网上的一些资料,觉得有必要一下笔记。

Oracle将用户创建的表、约束等信息都放在数据字典表中,允许开发人员查询数据字典表或视图来获取数据库对象的信息,比如一个表的创建者信息、创建时间信息、所属表空间信息、用户访问权限信息等。如果用户在对数据库中的数据进行操作时遇到困难,就可以访问数据字典来查看数据库对象的详细信息,数据字典中包含的主要内容如下所示。

各种方案对象的定义信息,如表、视图、索引、同义词、存储过程、函数、包、触发器和各种对象。

存储空间的分配信息,如为某个对象分配了多少存储空间,该对象使用了多少存储空间。

安全信息,如账户、权限、角色、完整性约束信息。

数据库实例运行时的性能和统计信息。

其他数据库运行过程中的基本信息。

注意:数字字典表本身不能被直接访问,必须通过数据字典视图来访问数据字典中的信息,系统的数据字典视图以V$开头。

数据字典表根据其前缀又可分为如下4类。

user:用户所创建对象对应的数据字典表,例如user_objects、user_tables等。

all:用户所能访问对象(包括用户创建的对象)对应的数据字典表,例如all_objects、all_tables等。

dba:所有对象对应的数据字典表,例如all_objects、all_tables等。

v$:描述系统性能相关的数据字典表。如通过v$version表可获得数据库版本信息。

有两个数据字典视图提供了约束的详细信息。

user_constraints:对于表中的每一个约束,在该表中都有一条记录描述这个约束,该表包含约束应用到的表,如果知道约束名,想知道约束类型,可以查询user_constraints,这个视图描述了约束的定义,但是它不提供约束定义在哪些字段名称上。

user_cons_columns:视图中显示约束的字段名称。如果主键是一个联合(多字段)主键,这个视图中将有这个约束的两条记录,联合主键的每一个字段对应一条记录,每一条记录通过position(在联合主键中的位置)来区别。

例如要查询invoice_check_others表中的所有约束信息,可以使用如下的SQL语句:SELECT constraint_name, search_condition, status

FROM user_constraints

WHERE table_name = UPPER ('cityandcode');

6001fbb4926c9e2948f4c6a649da2015.png

可见在user_constraints 表上有很多的数据库原信息

下面可以查看user_constraints 表中具体有哪些信息select * from user_constraints

b0877432d36ff54f249d03eae4a698db.png

在user_constraints视图中并没有包含约束应用到的列信息,为了获取invoice_check_单位others表的列约束信息,可以使用如下的代码查询user_cons_columns视图,如以下代码所示。--查询约束应用的列信息

SELECT constraint_name, column_name

FROM user_cons_columns

WHERE table_name = UPPER ('cityandcode');

ead79e5d7a8929252280cbef4296b21e.png

其他的作为DBA,可以使用all_constraints和all_cons_columns来获取约束的详细信息。

先到这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值