在PostgreSQL中显示表(来自MySQL)的等价物是什么?


当前回答

在PostgreSQL 13.3和Windows 10中,这些步骤对我有效

打开cmd并键入psql-a-U[用户名]-p[端口]-h[服务器]键入\c[database]以连接到数据库键入\dt或\d以显示所有表格

其他回答

您可以使用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中,您可以运行以下命令:

\? 列出所有命令\l列出数据库\conninfo显示有关当前连接的信息\c[DBNAME]连接到新数据库,例如\c template1\公共模式的dt列表表\dt<schema name>.*列出特定架构的表,例如\dt public*\dt*.*列出所有模式的表然后可以运行SQL语句,例如SELECT*FROM my_table;(注意:语句必须以分号结尾;)\q退出psql

首先,您可以使用mac上的postgre.app或postico连接postgres数据库。运行以下命令:

psql -h localhost -p port_number -d database_name -U user_name -W

然后输入密码,这应该可以访问数据库

该SQL查询适用于大多数PostgreSQL版本,非常简单。

select table_name from information_schema.tables where table_schema='public' ;

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

\c database_name

您将看到以下消息:您现在已连接到数据库database_name。然后运行以下命令

SELECT * FROM table_name;

在database_name和table_name中,只需更新数据库和表名

运行带有-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;        
**************************