SQL - 显示索引



SQL SHOW INDEX 语句

SHOW INDEX 是检索已在表上定义的索引信息的基本的 SQL 语句。但是,SHOW INDEX 语句仅适用于 MySQL RDBMS,在 SQL Server 中无效。

要在 SQL Server 中列出在表上创建的索引,可以使用系统存储过程 sp_helpindex

从 MySQL 表上查询 SHOW INDEX 语句获得的结果集包含索引信息。

语法

以下是 MySQL 中SHOW INDEX 语句的语法:

SHOW INDEX FROM table_name;

示例

以下示例演示了 MySQL 中 SHOW INDEX 语句的工作原理。首先,使用下面的 CREATE 查询在 MySQL 数据库中创建一个名为 CUSTOMERS 的表:

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (20, 2),       
   PRIMARY KEY (ID)
 );

现在,让我们使用以下查询将一些值插入到上面创建的表中:

INSERT INTO CUSTOMERS VALUES 
(1, 'Ramesh', '32', 'Ahmedabad', 2000),
(2, 'Khilan', '25', 'Delhi', 1500),
(3, 'Kaushik', '23', 'Kota', 2000),
(4, 'Chaitali', '25', 'Mumbai', 6500),
(5, 'Hardik','27', 'Bhopal', 8500),
(6, 'Komal', '22', 'Hyderabad', 9000),
(7, 'Muffy', '24', 'Indore', 5500);

插入数据后,使用以下查询为 CUSTOMERS 表中的 NAME 列创建索引:

CREATE INDEX INDEX_NAME ON CUSTOMERS(NAME);

现在,您可以使用以下查询列出在 CUSTOMERS 表上定义的所有索引:

SHOW INDEX FROM CUSTOMERS;

输出

执行上述查询后,输出如下所示:

Non_unique Key_name Seq_in_index Column_name
customers 0 PRIMARY 1 ID
customers 1 index_name 1 NAME

在 SQL Server 中显示索引

在 SQL Server 中,系统存储过程 sp_helpindex 用于检索已在表上定义的索引信息。它将结果作为包含有关每个索引的详细信息(包括名称、类型和列)的表返回。

语法

以下是列出在 SQL Server 表上定义的索引的基本语法:

sp_helpindex [ @objname = ] 'name'

这里,[@objname =] 'name' 指定要检索其索引信息的表的名称。索引信息包括:

  • index_name 是包含在索引中的列的名称。
  • index_description 是索引的简要描述,例如索引的类型(例如聚簇或非聚簇)。
  • index_keys 是包含在索引中的键。

示例

CREATE INDEX INDEX_NAME on CUSTOMERS(NAME);

现在,让我们使用系统存储过程 sp_helpindex 列出在 CUSTOMERS 表上创建的所有索引,如下所示:

EXEC sys.sp_helpindex @objname = N'CUSTOMERS';

输出

执行上述查询后,输出如下所示:

index_name index_description index_keys
INDEX_NAME

位于 PRIMARY 上的非聚簇索引

NAME
PK__CUSTOMER__ 3214EC27755869D9

位于 PRIMARY 上的聚簇、唯一、主键

ID
广告