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开头的表:
热门文章
优秀文章