在 PostgreSQL 中,可以通过以下方法展示当前数据库中的所有表。


方法 1:在 psql 中使用元命令

如果你是通过 psql 命令行连接到数据库,可以直接使用以下元命令:

查看当前数据库的所有表

\dt
  • \dt 会列出当前模式中所有的 用户定义的表
  • 格式如下: List of relations Schema | Name | Type | Owner -------+-------+------+------- public | table1 | table | postgres public | table2 | table | postgres

查看所有模式中的表

有些表可能存在于不止 public 模式中。如果你想查看所有模式的表,运行以下命令:

\dt *
  • \dt * 列出所有模式中的表,包括自定义表和 PostgreSQL 的内置系统表。

查看所有表和其他对象

如果不仅仅是查看用户表,而是包括所有对象(如视图、序列等),可以使用:

\dv        -- 查看所有视图
\ds        -- 查看所有序列
\d         -- 查看当前模式中所有对象(表、视图、索引等)
\d *       -- 查看所有模式中的所有对象

方法 2:通过 SQL 查询列出所有表

PostgreSQL 的表和元数据存储在系统表 information_schema 和 pg_catalog 中。你可以通过 SQL 查询获取所有表的列表。

查询当前模式所有用户表

SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public' AND table_type = 'BASE TABLE';
  • table_schema = 'public':只列出 public 模式中的表。
  • table_type = 'BASE TABLE':表示只显示基础表(忽略视图和其他对象)。

查询所有模式所有表

如果想查看所有表,可以去掉 table_schema 的限制条件:

SELECT table_schema, table_name
FROM information_schema.tables
WHERE table_type = 'BASE TABLE';

方法 3:使用 pg_catalog 查询获取所有表(包括系统表)

PostgreSQL 存储表信息的系统表是 pg_tables,可以通过以下 SQL 查询获取表信息:

当前数据库所有表

SELECT * 
FROM pg_tables
WHERE schemaname NOT IN ('pg_catalog', 'information_schema');
  • pg_tables 是 PostgreSQL 内置的系统表。
  • 忽略 pg_catalog 和 information_schema 模式,这些模式属于系统表和元数据。

包括系统表和用户表

如果需要查看包括系统表在内的所有表,可以省略过滤条件:

SELECT * FROM pg_tables;

方法 4:查看表的详细信息

显示单个表的结构

使用 psql 命令中的 \d 来查看表结构:

\d table_name

列出带表结构的所有表

通过指定 \d * 来依次列出所有表及其结构:

\d *

总结命令:

场景命令或 SQL
查看当前数据库所有用户表 (psql)\dt
查看所有模式的表 (psql)\dt *
通过 SQL 查询当前模式的表SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' AND table_type = 'BASE TABLE';
通过 SQL 查询所有模式的表SELECT table_schema, table_name FROM information_schema.tables WHERE table_type = 'BASE TABLE';
通过 pg_catalog 查询用户表SELECT * FROM pg_tables WHERE schemaname NOT IN ('pg_catalog', 'information_schema');
显示单个表结构\d table_name


postgresql如何展示所有的表插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://www.choupangxia.com/2025/08/02/postgresql-show-all-tables/