迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > PostgreSQL >

列出 PostgreSQL INFORMATION_SCHEMA 表中的所有表

作者:迹忆客 最近更新:2023/03/20 浏览次数:

让我们从一个简单的问题开始。INFORMATION_SCHEMA 到底是什么?

INFORMATION_SCHEMA 为我们提供了有关我们数据库中定义的对象的信息。它包含一组 VIEWS,它们存储 QUERY 数据库对象。

下面的查询就像一个 VIEW,因为它返回一个包含 YOUR_TABLE 行的逻辑 TABLE

Select * from [your_table]

INFORMATION_SCHEMA 是预先存在的,这意味着数据库用户可以在需要时访问此表和所有权限,包括 DROP

这个 SCHEMA 包含各种数据库对象,因此如果你想访问某个特定对象,最好写下对象的名称,例如 TABLES,以检索所有表。

现在让我们继续看看我们如何使用它。

在 PostgreSQL 中检索 INFORMATION_SCHEMA 内的表的基本 SELECT 查询

要获取此 SCHEMA 中的所有表,一个非常简单的查询是编写类似这样的内容。

select * from information_schema.tables

这将返回一个像这样的表。

输出:

从信息架构中选择所有

在这里,你可以看到数据库中的所有表及其 TYPE

然而,这个输出有一个令人困惑的方面。如果你向下滚动 OUTPUT 一点,你会注意到这一点。

输出:

信息模式

在这里,你将看到 TABLE_SCHEMA 设置为 INFORMATION_SCHEMA 的不同表。但是,我们不是叫 INFORMATION_SCHEMA.TABLES,那这是什么?

让我们解释一下。TABLE_SCHEMA 告诉我们 SCHEMA 包含该表。

当我们调用 INFORMATION_SCHEMA.TABLES 时,它会返回由其文档中的数据库规则定义的所有对象。因此,它还包括 PG_CATALOGPUBLIC 表。

但是将 TABLE_SCHEMA 设置为 INFORMATION_SCHEMA 的表倾向于遵循称为 SQL STANDARD 的东西,这意味着它们可以在其他不同的 DBMS 系统上查看。你可以通过在 Google 上搜索 ISO/IEC 9075 来查看 SQL 标准

相比之下,PG_CATALOG 只有 PostgreSQL 特定的表;因此,它们包含在该域中。

附带说明一下,INFORMATION_SCHEMA 可能也倾向于将这些 SYSTEM 表输出为符合 SQL STANDARD 的元数据。

PostgreSQL 中 INFORMATION_SCHEMASELECT 查询修改

为了分别从上述查询返回的表范围中获取 INFORMATION_SCHEMA 表,我们使用:

select * from information_schema.tables where table_schema = 'information_schema'

或者,如果你想显示不同的表格集,你可以将 TABLE_SCHEMA 更改为 PUBLICPG_CATALOG

PSQL 中运行相同的查询会返回:

输出:

在 PSQL 中运行查询

PostgreSQL 中 INFORMATION_SCHEMA 列表(工作更新)的 PSQL 语句

要在 PSQL 控制台中查看 INFORMATION_SCHEMA,你可以发出以下语句:

postgres=# \dt information_schema.*

这将返回 INFORMATION_SCHEMA 中的所有对象。DT 用作列出表格的简写形式。

在 PostgreSQL 的数据库中返回表的 \z

另一个非常常用的方法可能包括\z。这被错误地写为'/z',这可能会导致错误。

声明如下。

postgres-# \z

这主要返回用户制作的表格。此外,你可以使用:

postgres-# \dn information_schema

这告诉我们 SCHEMAOWNER

\z 修改以获取 PostgreSQL 中的所有表

第一个解决方案的替代方法是使用:

postgres-# \dt *.*

这将像以前一样返回所有表。

我们希望你了解了我们可以为我们的用户显示 INFORMATION_SCHEMA 表的不同方式。我们总是尽最大努力探索解决问题的可能方法。

今天我们已经介绍了 INFORMATION_SCHEMA 的显示以及可能使用的不同命令和表格。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 PSQL 中运行 SQL 文件

发布时间:2023/03/20 浏览次数:178 分类:数据库

本文解释了如何直接从终端/命令行或 psql shell 运行 SQL 文件。为此,你需要指定主机名、端口、用户名和数据库名称。

在 PostgreSQL 中使用循环

发布时间:2023/03/20 浏览次数:124 分类:PostgreSQL

在 PL/SQL 中,你可能需要在 Postgres 中使用循环。我们可以使用 FOR 和 WHILE 语句来创建循环。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便