迹忆客 专注技术分享

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

在 PostgreSQL 中列出表

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

本篇文章将使用 PostgreSQL 数据库来展示我们可以用来返回数据库表集合的不同命令。

MySQL 数据库中,你会遇到的常见命令是 SHOW TABLES,但在 PostgreSQL 中,数据库管理系统不理解此命令。

开始使用 PostgreSQL 数据库

你可以安装 PostgreSQL 数据库并使用以下命令登录到你的数据库。

>psql -U postgres

提示输入密码,我们应该输入我们在安装过程中指定的密码,然后回车。

我们可能已经创建了多个数据库,我们应该使用以下命令列出所有可用的数据库。

\l

输出:

                                         List of databases
   Name    |  Owner   | Encoding |      Collate       |       Ctype        |   Access privileges
-----------+----------+----------+--------------------+--------------------+-----------------------
 employee  | postgres | UTF8     | English_Kenya.1252 | English_Kenya.1252 |
 postgres  | postgres | UTF8     | English_Kenya.1252 | English_Kenya.1252 |
 template0 | postgres | UTF8     | English_Kenya.1252 | English_Kenya.1252 | =c/postgres          +
           |          |          |                    |                    | postgres=CTc/postgres
 template1 | postgres | UTF8     | English_Kenya.1252 | English_Kenya.1252 | =c/postgres          +
           |          |          |                    |                    | postgres=CTc/postgres
(4 rows)

在标记为 Name 的列上,我们可以看到三个数据库 employeepostgrestemplate0template1。要选择我们要使用的数据库 employee,请使用以下命令。

连接从当前连接的数据库 postgres 转移到我们想要使用的 employee

postgres=# \c employee;

在 PostgreSQL 中使用 \dt 命令显示表

\dt 命令在 PostgreSQL 中用于描述所有表,使用如下所示。该命令返回一行,因为我们在数据库中只有一个表。

employee=# \dt

输出:

          List of relations
 Schema |   Name   | Type  |  Owner
--------+----------+-------+----------
 public | employee | table | postgres
(1 row)

在 PostgreSQL 中显示特定模式中的表

由于我们可以在 PostgreSQL 中拥有不同的模式来保存不同的数据库,因此我们可以在查询中指定我们想要的模式,并且该模式中的所有表都将返回给我们。

以下命令返回公共模式中的所有表。

employee=# \dt public.*

输出:

          List of relations
 Schema |   Name   | Type  |  Owner
--------+----------+-------+----------
 public | employee | table | postgres
(1 row)

在 PostgreSQL 的所有模式中显示表

正如我们在上面返回公共模式中的表列表所做的那样,我们可以使用相同的命令而不指定任何模式来返回数据库中的所有表。

employee=# \dt *.*

输出:

                       List of relations
       Schema       |          Name           | Type  |  Owner
--------------------+-------------------------+-------+----------
 information_schema | sql_features            | table | postgres
 information_schema | sql_implementation_info | table | postgres
 information_schema | sql_parts               | table | postgres
 information_schema | sql_sizing              | table | postgres
 pg_catalog         | pg_aggregate            | table | postgres
 pg_catalog         | pg_am                   | table | postgres
 pg_catalog         | pg_amop                 | table | postgres
 pg_catalog         | pg_amproc               | table | postgres
 pg_catalog         | pg_attrdef              | table | postgres
 pg_catalog         | pg_attribute            | table | postgres
 pg_catalog         | pg_auth_members         | table | postgres
 pg_catalog         | pg_authid               | table | postgres
 pg_catalog         | pg_cast                 | table | postgres
 pg_catalog         | pg_class                | table | postgres
 pg_catalog         | pg_collation            | table | postgres
 pg_catalog         | pg_constraint           | table | postgres
 pg_catalog         | pg_conversion           | table | postgres
 pg_catalog         | pg_database             | table | postgres
 pg_catalog         | pg_db_role_setting      | table | postgres
 pg_catalog         | pg_default_acl          | table | postgres
 pg_catalog         | pg_depend               | table | postgres
 pg_catalog         | pg_description          | table | postgres
 pg_catalog         | pg_enum                 | table | postgres
 pg_catalog         | pg_event_trigger        | table | postgres
 pg_catalog         | pg_extension            | table | postgres
 pg_catalog         | pg_foreign_data_wrapper | table | postgres
-- More  --

在 PostgreSQL 中使用 information_schema 显示表

information_schema 是一个包含有关当前数据库的信息的表,我们可以使用 select 语句查询它以查找数据库中的公共实体。

此查询可能不容易阅读。我们可以使用以下命令打开扩展显示来解决这个问题。

employee=# \x
select * from information_schema.tables where table_schema='public';

输出:

employee=# select * from information_schema.tables where table_schema='public';
-[ RECORD 1 ]----------------+-----------
table_catalog                | employee
table_schema                 | public
table_name                   | employee
table_type                   | BASE TABLE
self_referencing_column_name |
reference_generation         |
user_defined_type_catalog    |
user_defined_type_schema     |
user_defined_type_name       |
is_insertable_into           | YES
is_typed                     | NO
commit_action                |

转载请发邮件至 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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便