方法:1、利用“select*from user_indexes where table_name=表名”语句查询表中索引;2、利用“select*from all_indexes where table_name=表名”语句查询所有索引。
本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。
oracle怎么查询所有索引
查看表中有哪些索引
语法为:
select * from user_indexes where table_name = '表名'
或者
select * from all_indexes where table_name = '表名'
查看表中索引对应哪些列
select * from user_ind_columns where table_name='表名'
扩展知识:
oracle中表的索引信息存在 user_indexes 和 user_ind_columns 两张表里面,
其中
user_indexes 系统视图存放是索引的名称以及该索引是否是唯一索引等信息,
user_ind_columns 统视图存放的是索引名称,对应的表和列等
sql示例:
select* from all_indexes where table_name='ACM_NETWORK_OPERATION'; select * from user_ind_columns where table_name='ACM_NETWORK_OPERATION';
创建一个简单的索引
SQL CREATE INDEX 语法
在表上创建一个简单的索引。允许使用重复的值:
CREATE INDEX index_name ON table_name (column_name)
SQL CREATE UNIQUE INDEX 语法
在表上创建一个唯一的索引。不允许使用重复的值:唯一的索引意味着两个行不能拥有相同的索引值。Creates a unique index on a table. Duplicate values are not allowed:
CREATE UNIQUE INDEX index_name ON table_name (column_name)
注释:用于创建索引的语法在不同的数据库中不一样。因此,检查您的数据库中创建索引的语法。
CREATE INDEX 实例
下面的 SQL 语句在 "Persons" 表的 "LastName" 列上创建一个名为 "PIndex" 的索引:
CREATE INDEX PIndex ON Persons (LastName)
如果您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:
CREATE INDEX PIndex ON Persons (LastName, FirstName)
Oracle 的 DROP INDEX 语法:
DROP INDEX index_name
推荐教程:《Oracle视频教程》