列出 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