什么是 PostgreSQL 列表索引?


PostgreSQL 列表索引

在本节中,我们要了解的工作列表索引PostgreSQL数据库的帮助下SQL壳牌(PSQL)pg_indexes视图。而例子中的上市使用索引PSQL和pg_indexes查看

什么是 PostgreSQL 列表索引?

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

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

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

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

PostgreSQL 使用 psql 命令列出索引

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

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

输出

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

PostgreSQL 列表索引

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

\d table_name

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

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

\d employee

输出

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

PostgreSQL 列表索引

PostgreSQL 使用 pg_indexes 视图列出索引

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

所述pg_indexes视图包含五列,它们如下面所解释:

解释
schemaname 所述SCHEMANAME列用于存储架构,其包括索引和表的名称。
tablename 表名列用于保持表名索引属于。
indexname 索引名称存储在indexname列中。
tablespace 列用于保持表,其中涉及指标的名称。
indexdef 所述indexdef列存储在的形式索引定义命令CREATE INDEX命令。

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

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

输出

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

PostgreSQL 列表索引

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

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

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

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

输出

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

PostgreSQL 列表索引

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

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

输出

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

PostgreSQL 列表索引

概述

PostgreSQL 列表索引部分,我们学习了以下主题:

  • 我们已经使用PostgreSQL 列表索引命令列出了 PostgreSQL 数据库中的所有索引。
  • 我们已经了解了使用SQL shell(psql) 和 pg_indexes 视图等不同方法列出索引的过程