oracle查询表的主键、外键、唯一性约束、索引

索引

视图说明

USER_IND_COLUMNS(当前用户索引视图,存放索引名等信息)

OWNER

约束的所有者

CONSTRAINT_NAME

约束名

TABLE_NAME

与约束关联的表名

COLUMN_NAME

与约束关联的列名

POSITION

约束定义时的顺序

USER_INDEXES (当前用户索引视图,存放是否唯一索引等信息)

index_name

索引的名称

table_owner

索引表所有者的用户名

table_name

索引表的名称

uniqueness

指示索引是 UNIQUE 还是 NONUNIQUE

tablespace_name

表所在的表空间(如果不是默认表空间)的名称

status

对象的状态是否有效

相关sql

查找某张表中的所有索引:

SELECT T.*, I.INDEX_TYPE
FROM USER_IND_COLUMNS T, USER_INDEXES I
WHERE T.INDEX_NAME = I.INDEX_NAME
AND T.TABLE_NAME = I.TABLE_NAME
AND T.TABLE_NAME = 表名

约束

视图说明

user_constraints是表约束的视图,描述的是约束类型(constraint_type)是什么,属于哪些表(table_name),如果约束的类型为R(外键)的话,那么r_constraint_name字段存放的就是被引用主表中的主键约束名。

名称

类型

说明

owner

TEXT

约束所有者的名称。

constraint_name

TEXT

约束的名称。

constraint_type

TEXT

约束类型。可能值包括:

  • C:检查约束

  • F:外键约束

  • P:主键约束

  • U:唯一键约束

  • R:引用完整性约束

  • V:视图上的约束

  • O:具有只读属性,在视图上

table_name

TEXT

约束所属表的名称。

search_condition

TEXT

应用于检查约束的搜索条件。

r_owner

TEXT

引用约束引用的表的所有者。

r_constraint_name

TEXT

引用表的约束定义的名称。

delete_rule

TEXT

引用约束的删除规则。可能值包括:

  • C:级联

  • R:限制

  • N:无操作

deferrable

BOOLEAN

指定了约束是否可延迟(T 或 F)。

deferred

BOOLEAN

指定约束是否已延迟(T 或 F)。

index_owner

TEXT

索引所有者的用户名。

index_name

TEXT

索引的名称。

constraint_def

TEXT

约束的定义。

user_cons_columns是表约束字段的视图,说明表中的和约束相关的列参与了哪些约束。这些约束有主键约束,外键约束,索引约束。

名称

类型

说明

owner

TEXT

约束所有者的用户名。

constraint_name

TEXT

约束的名称。

table_name

TEXT

约束所属表的名称。

column_name

TEXT

约束中引用的列的名称。

position

SMALLINT

列在对象定义中的位置。

constraint_def

TEXT

约束的定义。

两者可以通过(owner,constraint_name,table_name)关联

相关sql

查找表的主键:

SELECT CU.*
FROM USER_CONS_COLUMNS CU, USER_CONSTRAINTS AU
WHERE CU.CONSTRAINT_NAME = AU.CONSTRAINT_NAME
AND AU.CONSTRAINT_TYPE = 'P'
AND AU.TABLE_NAME = 表名

查找表的唯一性约束(包括名称,构成列):

SELECT COLUMN_NAME
FROM USER_CONS_COLUMNS CU, USER_CONSTRAINTS AU
WHERE CU.CONSTRAINT_NAME = AU.CONSTRAINT_NAME
AND AU.CONSTRAINT_TYPE = 'U'
AND AU.TABLE_NAME = 表名

查找表的外键(包括名称,引用表的表名和对应的键名):

SELECT *
FROM USER_CONSTRAINTS C
WHERE C.CONSTRAINT_TYPE = 'R'
AND C.TABLE_NAME = 表名

引用表的键的列名:

SELECT *
FROM USER_CONS_COLUMNS CL
WHERE CL.CONSTRAINT_NAME = 外键引用表的键名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值