oracle 查看主键及索引
时间: 2023-08-10 08:09:35 浏览: 193
要查看 Oracle 数据库表的主键和索引,可以使用以下 SQL 查询:
1. 查看主键:
```
SELECT cols.table_name, cols.column_name, cols.position, cons.status, cons.owner
FROM all_constraints cons, all_cons_columns cols
WHERE cols.table_name = 'YOUR_TABLE_NAME'
AND cons.constraint_type = 'P'
AND cons.constraint_name = cols.constraint_name
AND cons.owner = cols.owner
ORDER BY cols.table_name, cols.position;
```
将 'YOUR_TABLE_NAME' 替换为你要查询的表名。
2. 查看索引:
```
SELECT INDEX_NAME, UNIQUENESS, STATUS FROM ALL_INDEXES WHERE TABLE_NAME = 'YOUR_TABLE_NAME';
```
将 'YOUR_TABLE_NAME' 替换为你要查询的表名。
注意:需要有足够的权限才能查看表的主键和索引。
相关问题
oracle建立主键及主键索引
在Oracle中,可以通过以下步骤来创建主键及主键索引:
1. 创建表格:
```
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
.....
);
```
2. 添加主键约束:
```
ALTER TABLE table_name
ADD CONSTRAINT constraint_name PRIMARY KEY (column1, column2, ... column_n);
```
3. 创建主键索引:
```
CREATE INDEX index_name ON table_name(column1, column2, ... column_n);
```
其中,constraint_name 是主键约束的名称,index_name 是主键索引的名称,column1, column2, ... column_n 是表中的列名,它们组成了主键。
需要注意的是,在创建主键之前,必须确保表格中没有重复的值,否则会导致主键约束的创建失败。
查询oracle非主键的索引名字
查询Oracle数据库中非主键字段的索引名称,你可以使用SQL的系统表`USER_INDEXES` 或 `ALL_INDEXES`。这两个表包含了用户模式和所有模式下的索引信息。下面是一个基本的查询示例:
```sql
SELECT INDEX_NAME
FROM USER_INDEXES
WHERE TABLE_NAME = 'your_table_name' AND COLUMN_NAME <> 'primary_key_column'; -- 将'your_table_name'替换为实际表名,'primary_key_column'替换为主键列名
OR
SELECT INDEX_NAME
FROM ALL_INDEXES
WHERE TABLE_NAME = 'your_table_name' AND COLUMN_POSITION != NULL AND COLUMN_NAME <> 'primary_key_column';
```
在这里,你需要将 `'your_table_name'` 替换为你想要查询的具体表名,并且 `'primary_key_column'` 是该表的主键字段名。`COLUMN_POSITION` 列通常存储的是字段在索引中的位置,非主键字段通常会有非NULL值。
阅读全文