PostgreSQL List Index查询索引

在本节中,我们将借助SQL Shell (PSQL)和pg_indexes 视图了解PostgreSQL 数据库中列表索引的工作原理。以及使用psql 和 pg_indexes 视图列出索引的示例。

什么是 PostgreSQL List Index 列表索引?

PostgreSQL中,我们没有像SHOW INDEXES这样的命令来列出数据库或表的索引数据。

但是 PostgreSQL 允许以两种不同的方式访问列出索引,如下所示:

  • SQL shell(psql):如果我们使用psql检索PostgreSQL数据库,\d命令用于查看表的索引数据。
  • pg_indexes 视图: pg_indexes视图使我们能够访问有关 PostgreSQL 数据库中每个索引的有用信息。

我们现在将逐一了解使用psql和pg_indexes 视图将索引列出到 PostgreSQL 数据库或表中的过程。

PostgreSQL 使用 psql 命令列出索引

我们将按照以下过程在psql中列出一个表:

  • 首先,我们将在本地系统中打开psql,然后连接到要创建函数的数据库。
  • 我们将在我们之前在PostgreSQL 教程中创建的javatpoint数据库中创建一个表。
  • 为了连接数据库,我们将输入以下命令:
\c Organization 

 执行上述命令后,我们将得到以下输出:

如果我们想列出一个表的所有索引并连接到PostgreSQL 数据库,我们可以使用下面的 psql 命令:

\d table_name

上面的命令用于返回表的所有信息,包括表的结构、索引触发器约束

在下面的示例中,以下命令用于获取有关员工表的完整信息:

\d employee

执行上述命令后,我们将得到以下输出,其中在 indexes 部分下显示表的索引。

使用 pg_indexes 视图的 PostgreSQL 列表索引

在 PostgreSQL 中,pg_indexes视图允许我们获取PostgreSQL 数据库中所有索引的重要数据。

pg_indexes视图包含五列,如下所述:

解释
schemaname schemaname列用于存储模式的名称,其中包括索引和表。
tablename tablename列用于保存索引所属的表名。
indexname 索引名称存储在indexname列中。
tablespace 表空间列用于保存表空间的名称,其中涉及到索引。
indexdef indexdef列以CREATE INDEX命令的形式存储索引定义命令。

在下面的命令中,我们将使用我们在上表中解释的所有五列来列出现有数据库中 public 模式的所有索引: 

SELECT tablename, indexname, indexdef  
FROM pg_indexes  
WHERE schemaname = 'public'  
ORDER BY tablename, indexname;  

执行上述命令后,我们将得到以下输出,其中显示了在Organization数据库中创建的表的完整列表。

下图用于显示一个表的所有索引:

SELECT indexname, indexdef  
FROM pg_indexes  
WHERE tablename = 'table_name';  

在下面的示例中,我们试图检索Employee表的所有索引的列表,如以下命令所示:

SELECT indexname, indexdef  
FROM pg_indexes  
WHERE tablename = 'employee';  

执行上述命令后,我们将得到以下输出,其中显示了employee表的所有索引。

如果我们需要获取名称以字母e开头的表的索引列表,我们可以使用以下命令:

SELECT tablename, indexname, indexdef  
FROM pg_indexes  
WHERE tablename LIKE 'e%'  
ORDER BY tablename, indexname;  

执行上述命令后,我们将得到以下输出,其中显示了名称以字母e开头的表:

热门文章

优秀文章