📜  PostgreSQL列表索引

📅  最后修改于: 2020-11-30 09:36:53             🧑  作者: Mango

PostgreSQL列表索引

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

什么是PostgreSQL列表索引?

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

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

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

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

使用psql命令的PostgreSQL列表索引

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

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

输出量

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

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

\d table_name

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

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

\d employee

输出量

执行完上述命令后,我们将获得以下输出,该输出在索引部分下显示表的索引。

使用pg_indexes视图的PostgreSQL列表索引

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

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

Columns Explanation
schemaname The schemaname column is used to store the name of the schema, which includes the indexes and the tables.
tablename The tablename column is used to keep the table name where the index belongs.
indexname The name of the index stores in the indexname column.
tablespace The tablespace column is used to keep the name of the tablespace, which involves the indexes.
indexdef The indexdef column stores the index definition command in the form of the CREATE INDEX command.

在下面的命令中,我们将使用上表中说明的所有五列列出现有数据库中公共模式的所有索引:

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

输出量

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

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

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开头的表:

总览

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

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