在PostgreSQL中显示表

在PostgreSQL中show tables (来自MySQL)的替代方法是什么?

psql命令行界面:

 \dt 

编程方式(当然也可以从psql界面):

 SELECT * FROM pg_catalog.pg_tables; 

系统表位于pg_catalog数据库中。

以超级用户身份login:

 sudo -u postgres psql 

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

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

(为了完整)

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

 SELECT table_schema || '.' || table_name FROM information_schema.tables WHERE table_type = 'BASE TABLE' AND table_schema NOT IN ('pg_catalog', 'information_schema'); 
  1. 首先以postgres用户身份login:

    sudo su - postgres

  2. 连接到所需的db: 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; ************************** 

如果你只想看看你创build的表的列表,你可能只会说:

\dt

但是我们也有PATTERN ,它可以帮助你自定义要显示的表格。 要显示所有包括pg_catalog架构,您可以添加*

\dt *

如果你这样做: \?

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

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

 \c database_name 

您将看到此消息您现在已连接到数据库database_name并且它们运行以下命令

 SELECT * FROM table_name; 

在database_name和table_name只是更新您的数据库和表名称

\ dt(不需要) – 将列出已经连接到的现有数据库的所有表。 另外有用的注意:

\ d [table_name] – 将显示给定表的所有列,包括types信息,引用和键约束。

只使用看到一个表=> \ dt

如果要查看架构表=> \ dt +

如果你想查看特定的模式表=> \ dt schema_name。*

您可以使用\dt列出当前数据库中的表格。

Fwiw, \d tablename将显示给定表的细节,就像在MySQL中show columns from tablename一样,但是会提供更多的信息。

如果您在PostgreSQL中使用pgAdmin4,则可以使用它来显示数据库中的表:

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

\ dt会列出表格,而“\ pset pager off”会在同一窗口中显示它们,而不会切换到单独的窗口。 喜欢这个function在dbshel​​l中死亡。

 select * from pg_catalog.pg_tables where schemaname != 'information_schema' and schemaname != 'pg_catalog'; 

首先,你必须像你的数据库连接

我的数据库是Ubuntu的

使用这个命令来连接

  \c ubuntu 

此消息将显示

“你现在用”postgres“连接到数据库”ubuntu“。”

现在

运行此命令以显示其中的所有表

 \d+ 

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

1.启动Psql

通常你可以运行下面的命令进入psql:

 psql DBNAME USERNAME 

例如, psql template1 postgres

您可能遇到的一种情况是:假设您以root身份login,并且不记得数据库名称。 您可以通过运行以下命令首先进入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. \q退出psql

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

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

那么你input你的密码,这应该可以访问你的数据库