【oracle操作札记】oracle通过sql语句查看表的约束
2014-03-08 20:00
579 查看
因为想通过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语句:
可见在user_constraints 表上有很多的数据库原信息
下面可以查看user_constraints 表中具体有哪些信息
在user_constraints视图中并没有包含约束应用到的列信息,为了获取invoice_check_单位others表的列约束信息,可以使用如下的代码查询user_cons_columns视图,如以下代码所示。
其他的作为DBA,可以使用all_constraints和all_cons_columns来获取约束的详细信息。
先到这里
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');
可见在user_constraints 表上有很多的数据库原信息
下面可以查看user_constraints 表中具体有哪些信息
select * from user_constraints
在user_constraints视图中并没有包含约束应用到的列信息,为了获取invoice_check_单位others表的列约束信息,可以使用如下的代码查询user_cons_columns视图,如以下代码所示。
--查询约束应用的列信息 SELECT constraint_name, column_name FROM user_cons_columns WHERE table_name = UPPER ('cityandcode');
其他的作为DBA,可以使用all_constraints和all_cons_columns来获取约束的详细信息。
先到这里
相关文章推荐
- oracle 中--怎么查看当前表空间在作什么操作?--查锁,死锁,当前执行时间长的Sql语句,没提交的事务,对象为哪些进程所用
- Oracle:SQL语句--对表的操作——添加外键约束
- oracle 中--怎么查看当前表空间在作什么操作?--查锁,死锁,当前执行时间长的Sql语句,没提交的事务,对象为哪些进程所用
- Oracle之通过SQL语句查看表信息-yellowcong
- ORACLE 常用SQL语句及profile相关操作(转)
- mysql通过查看跟踪日志跟踪执行的sql语句
- Oracle中查看锁表情况的Sql语句
- Oracle 查看表空间的大小及使用情况sql语句(oracle数据库维护精品)
- oracle维护常用SQL语句(查看系统表和视图)
- oracle怎么通过sql查看表的结构
- Oracle 查看表空间的大小及使用情况sql语句和oracle增加表空间大小两种实现方法
- Oracle中关于查看角色与角色间权限的差异的SQL语句
- oracle 基本操作三:DML语句,数据完整性之约束,约束的维护
- Oracle PL/SQL开发基础(第二弹:使用数据字典视图查看表约束)
- oracle 查看执行的sql语句
- Oracle查看SQL语句的执行计划
- 通过sql*plus工具操作ORACLE 常用命令
- Oracle PL/SQL操作(四)索引与约束
- ORACLE--查询当前连接的用户信息及操作的SQL语句