索引
视图说明
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 | 约束类型。可能值包括:
|
table_name | TEXT | 约束所属表的名称。 |
search_condition | TEXT | 应用于检查约束的搜索条件。 |
r_owner | TEXT | 引用约束引用的表的所有者。 |
r_constraint_name | TEXT | 引用表的约束定义的名称。 |
delete_rule | TEXT | 引用约束的删除规则。可能值包括:
|
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 = 外键引用表的键名