在 PostgreSQL 中显示表格

在 PostgreSQL 中show tables (从 MySQL)相当于什么?

答案

psql命令行界面中,

首先,选择您的数据库

\c database_name

然后,这将显示当前模式中的所有表:

\dt

以编程方式(当然也可以从psql接口):

SELECT * FROM pg_catalog.pg_tables;

系统表位于pg_catalog数据库中。

以超级用户身份登录:

sudo -u postgres psql

您可以通过\l命令列出所有数据库和用户(通过\?列出其他命令)。

现在,如果您想查看其他数据库,则可以通过\c命令(例如\c template1\c postgres postgres更改用户 / 数据库,并使用\d\dt\dS来查看表 / 视图 / 等。

(为了完整性)

您还可以查询(SQL 标准) 信息模式

SELECT
    table_schema || '.' || table_name
FROM
    information_schema.tables
WHERE
    table_type = 'BASE TABLE'
AND
    table_schema NOT IN ('pg_catalog', 'information_schema');

您可以使用 PostgreSQL 的交互式终端 Psql 在 PostgreSQL 中显示表。

1. 启动 Psql

通常,您可以运行以下命令以输入 psql:

psql DBNAME USERNAME

例如, psql template1 postgres

您可能遇到的一种情况是:假设您以 root 用户身份登录,并且您不记得数据库名称。您可以通过运行以下命令首先输入 Psql:

sudo -u postgres psql

在某些系统中,sudo 命令不可用,您可以改为运行以下任一命令:

psql -U postgres
psql --username=postgres

2. 显示表格

现在,在 Psql 中,您可以运行以下命令:

  1. \?列出所有命令
  2. \l列出数据库
  3. \conninfo显示有关当前连接的信息
  4. \c [DBNAME]连接到新数据库,例如\c template1
  5. \dt公用模式的列表表
  6. \dt <schema-name>.*列出某些架构的表,例如, \dt public.*
  7. \dt *.*列出所有模式的表
  8. 然后,您可以运行 SQL 语句,例如SELECT * FROM my_table; (注意:语句必须以分号;结束)
  9. \q退出 psql
  1. 首次以 postgres 用户身份登录:

    sudo su - postgres

  2. 连接到所需的数据库: psql -d databaseName

  3. \dt将返回您连接到的数据库中所有表的列表。

使用 - E 标志运行 psql 将回显内部用于实现 \ dt 和类似内容的查询:

sudo -u postgres psql -E

postgres=# \dt       
********* QUERY **********
SELECT n.nspname as "Schema",
c.relname as "Name", 
CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as "Type",
pg_catalog.pg_get_userbyid(c.relowner) as "Owner"
FROM pg_catalog.pg_class c
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','')
    AND n.nspname <> 'pg_catalog'
    AND n.nspname <> 'information_schema'
    AND n.nspname !~ '^pg_toast'
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1,2;        
**************************

以超级用户身份登录,以便您可以检查所有数据库及其模式:

sudo su - postgres

然后我们可以使用以下命令进入 postgresql shell:

psql

现在,您可以使用以下命令检查所有数据库列表:

\l

如果您还想检查数据库的大小,请使用:-

\l+

q返回。

找到数据库后,您可以使用以下命令连接到该数据库:

\c database_name

连接后,您可以通过以下方式检查数据库表或架构:

\d

现在返回到外壳使用:

q

现在进一步查看特定表使用的详细信息:

\d table_name

要返回 postgresql_shell,请按\q

要返回到终端,请按exit

如果只想查看已创建的表的列表,则只能说:

\dt

但是我们也有PATTERN ,它将帮助您自定义要显示的表。要显示所有包含pg_catalog模式的内容,您可以添加*

\dt *

如果你这样做: \?

\ dt [S +] [PATTERN] 列表表

使用只看一张桌子

=> \dt

如果要查看架构表

=>\dt+

如果您想查看特定的架构表

=>\dt schema_name.*

首先使用以下命令连接数据库

\c database_name

您将看到此消息 - You are now connected to database database_name 。然后他们运行以下命令

SELECT * FROM table_name;

在 database_name 和 table_name 中,只需使用您的数据库和表名进行更新