列出 PostgreSQL INFORMATION_SCHEMA 表中的所有表
-
在 PostgreSQL 中检索
INFORMATION_SCHEMA内的表的基本SELECT查询 -
PostgreSQL 中
INFORMATION_SCHEMA的SELECT查询修改 -
PostgreSQL 中
INFORMATION_SCHEMA列表(工作更新)的PSQL语句 -
在 PostgreSQL 的数据库中返回表的
\z -
\z修改以获取 PostgreSQL 中的所有表
让我们从一个简单的问题开始。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_CATALOG 和 PUBLIC 表。
但是将 TABLE_SCHEMA 设置为 INFORMATION_SCHEMA 的表倾向于遵循称为 SQL STANDARD 的东西,这意味着它们可以在其他不同的 DBMS 系统上查看。你可以通过在 Google 上搜索 ISO/IEC 9075 来查看 SQL 标准。
相比之下,PG_CATALOG 只有 PostgreSQL 特定的表;因此,它们包含在该域中。
附带说明一下,INFORMATION_SCHEMA 可能也倾向于将这些 SYSTEM 表输出为符合 SQL STANDARD 的元数据。
PostgreSQL 中 INFORMATION_SCHEMA 的 SELECT 查询修改
为了分别从上述查询返回的表范围中获取 INFORMATION_SCHEMA 表,我们使用:
select * from information_schema.tables where table_schema = 'information_schema'
或者,如果你想显示不同的表格集,你可以将 TABLE_SCHEMA 更改为 PUBLIC 或 PG_CATALOG。
在 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
这告诉我们 SCHEMA 的 OWNER。
\z 修改以获取 PostgreSQL 中的所有表
第一个解决方案的替代方法是使用:
postgres-# \dt *.*
这将像以前一样返回所有表。
我们希望你了解了我们可以为我们的用户显示 INFORMATION_SCHEMA 表的不同方式。我们总是尽最大努力探索解决问题的可能方法。
今天我们已经介绍了 INFORMATION_SCHEMA 的显示以及可能使用的不同命令和表格。
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub