如何在 PostgreSQL 中显示表?
PostgreSQL 中的 show table
(来自 MySQL)相当于什么?
What's the equivalent to show tables
(from MySQL) in PostgreSQL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
PostgreSQL 中的 show table
(来自 MySQL)相当于什么?
What's the equivalent to show tables
(from MySQL) in PostgreSQL?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(29)
从
psql
命令行界面,首先选择您的数据库
然后,这将显示当前架构中的所有表:
以编程方式(当然,也可以从
psql
界面):系统表位于 pg_catalog 数据库中。
From the
psql
command line interface,First, choose your database
Then, this shows all tables in the current schema:
Programmatically (or from the
psql
interface too, of course):The system tables live in the
pg_catalog
database.您可以使用 PostgreSQL 的交互式终端 Psql 来显示 PostgreSQL 中的表。
1. 启动Psql
通常您可以运行以下命令来进入psql:
例如,
psql template1 postgres
您可能遇到的一种情况是:假设您以root身份登录,但您不记得了数据库名称。 您可以通过运行以下命令首先进入 Psql:
在某些系统中,sudo 命令不可用,您可以运行以下任一命令:
2. 显示表格
现在,在 Psql 中,您可以运行以下命令:
\?
列出所有命令\l
列出数据库\conninfo
显示有关当前连接的信息\c [DBNAME]
连接到新数据库,例如\c template1
\dt
列出公共模式的表\dt.*
列出某个 schema 的表,例如\dt public.*
\dt *.*
列出以下的表all schemasSELECT * FROM my_table;
(注意:语句必须以分号;
结束)\q
退出psqlYou can use PostgreSQL's interactive terminal Psql to show tables in PostgreSQL.
1. Start Psql
Usually you can run the following command to enter into psql:
For example,
psql template1 postgres
One situation you might have is: suppose you login as root, and you don't remember the database name. You can just enter first into Psql by running:
In some systems, sudo command is not available, you can instead run either command below:
2. Show tables
Now in Psql you could run commands such as:
\?
list all the commands\l
list databases\conninfo
display information about current connection\c [DBNAME]
connect to new database, e.g.,\c template1
\dt
list tables of the public schema\dt <schema-name>.*
list tables of certain schema, e.g.,\dt public.*
\dt *.*
list tables of all schemasSELECT * FROM my_table;
(Note: a statement must be terminated with semicolon;
)\q
quit psql以超级用户身份登录:
您可以通过
\l
命令列出所有数据库和用户,(通过\?
列出其他命令)。现在,如果您想查看其他数据库,您可以通过
\c
命令更改用户/数据库,例如\c template1
、\c postgres postgres
并使用\d
、\dt
或\dS
查看表/视图/等。Login as superuser:
You can list all databases and users by
\l
command, (list other commands by\?
).Now if you want to see other databases you can change user/database by
\c
command like\c template1
,\c postgres postgres
and use\d
,\dt
or\dS
to see tables/views/etc.(为了完整性)
您还可以查询(SQL 标准)信息架构< /a>:
(For completeness)
You could also query the (SQL-standard) information schema:
以超级用户身份登录,以便您可以检查所有数据库及其架构:-
然后我们可以使用以下命令进入 postgresql shell:-
您现在可以使用以下命令检查所有数据库列表:-
如果您愿意检查数据库的大小并使用:-
按
q
返回。现在找到数据库后,您可以使用以下命令连接到该数据库:-
连接后,您可以通过以下方式检查数据库表或架构:-
现在返回到 shell 使用:-
现在进一步查看数据库的详细信息某些表使用:-
要返回 postgresql_shell,请按
\q
。要返回终端,请按
exit
。Login as a superuser so that you can check all the databases and their schemas:-
Then we can get to postgresql shell by using following command:-
You can now check all the databases list by using the following command:-
If you would like to check the sizes of the databases as well use:-
Press
q
to go back.Once you have found your database now you can connect to that database using the following command:-
Once connected you can check the database tables or schema by:-
Now to return back to the shell use:-
Now to further see the details of a certain table use:-
To go back to postgresql_shell press
\q
.And to return back to terminal press
exit
.首次以 postgres 用户身份登录:
sudo su - postgres
连接到所需的数据库:
psql -d databaseName
\dt
将返回您数据库中所有表的列表重新连接到。First login as postgres user:
sudo su - postgres
connect to the required db:
psql -d databaseName
\dt
would return the list of all table in the database you're connected to.使用 -E 标志运行 psql 将回显内部用于实现的查询
\dt 和类似的:
Running psql with the -E flag will echo the query used internally to implement
\dt and similar:
(MySQL) 显示当前数据库的表列表
(PostgreSQL) 显示当前数据库的表列表
(MySQL) shows tables list for current database
(PostgreSQL) shows tables list for current database
如果您只想查看您创建的表格列表,您可以只说:
\dt
但我们还有
PATTERN
它将帮助您自定义要显示的表格。 要显示所有包括pg_catalog
架构,您可以添加*
。\dt *
如果您这样做:
\?
If you only want to see the list of tables you've created, you may only say:
\dt
But we also have
PATTERN
which will help you customize which tables to show. To show all includingpg_catalog
Schema, you can add*
.\dt *
If you do:
\?
请使用仅查看表
如果要查看
特定架构表,
use only see a tables
if want to see schema tables
if you want to see specific schema tables
如果您在 PostgreSQL 中使用 pgAdmin4,您可以使用它来显示数据库中的表:
If you are using pgAdmin4 in PostgreSQL, you can use this to show the tables in your database:
首先使用以下命令连接数据库
,您将看到此消息 -
您现在已连接到数据库database_name
。 他们运行以下命令在database_name和table_name中只需更新您的数据库和表名称
First Connect with the Database using following command
And you will see this message -
You are now connected to database database_name
. And them run the following commandIn database_name and table_name just update with your database and table name
请注意,
\dt
本身就会列出您正在使用的数据库的public 架构中的表。 我喜欢将我的表保存在单独的模式中,因此接受的答案对我不起作用。要列出特定架构内的所有表,我需要:
1) 连接到所需的数据库:
2) 在
\dt
命令,如下所示:这显示了我感兴趣的结果:
Note that
\dt
alone will list tables in the public schema of the database you're using. I like to keep my tables in separate schemas, so the accepted answer didn't work for me.To list all tables within a specific schema, I needed to:
1) Connect to the desired database:
2) Specify the schema name I want to see tables for after the
\dt
command, like this:This shows me the results I'm interested in:
这些步骤适用于
PostgreSQL 13.3
和Windows 10
psql -a -U [用户名] -p [端口] -h [服务器]
\c [database]
连接到数据库\dt
或\d
显示所有表Those steps worked for me with
PostgreSQL 13.3
andWindows 10
psql -a -U [username] -p [port] -h [server]
\c [database]
to connect to the database\dt
or\d
to show all tables\dt
将列出表格,而\pset pager off
在同一窗口中显示它们,而无需切换到单独的窗口。 非常喜欢 dbshell 中的这个功能。\dt
will list tables, and\pset pager off
shows them in the same window, without switching to a separate one. Love that feature to death in dbshell.\dt(不需要 *)——将列出您已连接到的现有数据库的所有表。 还需要注意的是:
\d [table_name] ——将显示给定表的所有列,包括类型信息、引用和键约束。
\dt (no * required) -- will list all tables for an existing database you are already connected to. Also useful to note:
\d [table_name] -- will show all columns for a given table including type information, references and key constraints.
此 SQL 查询适用于大多数版本的 PostgreSQL,并且相当简单。
This SQL Query works with most of the versions of PostgreSQL and fairly simple .
根据我的口味,在命令行列出所有表的最直接方法是:
对于给定的数据库,只需添加数据库名称:
它适用于 Linux 和 Windows。
The most straightforward way to list all tables at command line is, for my taste :
For a given database just add the database name :
It works on both Linux and Windows.
这些列出了当前数据库的所有模式的所有表:
这些详细列出了当前数据库的所有模式的所有表:
这些列出了
pg_catalog
和 public 当前数据库的模式:这些列出了
pg_catalog
和public
架构详细信息:这列出了当前数据库的
public
架构的所有表:这列出了
public
的所有表当前数据库架构的详细信息:这些列出了当前数据库的
my_schema
架构的所有表:这些详细列出了当前数据库的
my_schema
架构的所有表:These list all tables of all schemas of the current database:
These list all tables of all schemas of the current database in detail:
These list all tables of
pg_catalog
and public schemas of the current database:These list all tables of
pg_catalog
andpublic
schemas of the current database in detail:This lists all tables of
public
schema of the current database:This lists all tables of
public
schema of the current database in detail:These list all tables of
my_schema
schema of the current database:These list all tables of
my_schema
schema of the current database in detail:您可以使用
\dt
列出当前数据库中的表。Fwiw,
\d tablename
将显示给定表的详细信息,类似于 MySQL 中的show columns from tablename
,但有更多信息。You can list the tables in the current database with
\dt
.Fwiw,
\d tablename
will show details about the given table, something likeshow columns from tablename
in MySQL, but with a little more information.登录后在 PostgreSQL 命令行界面中,键入以下命令连接所需的数据库。
<前><代码> \c [数据库名称]
然后您将看到此消息
您现在已连接到数据库“[database_name]”
键入以下命令以列出所有表。
<前><代码> \dt
In PostgreSQL command-line interface after login, type the following command to connect with the desired database.
Then you will see this message
You are now connected to database "[database_name]"
Type the following command to list all the tables.
作为“快速单线”
或者如果您更喜欢更清晰的 json 输出多线:
as a "quick oneliner"
or if you prefer much clearer json output multi-liner :
使用psql:\dt
或者:
Using psql : \dt
Or:
首先,您必须连接数据库,就像
我的数据库是 ubuntu
使用此命令进行连接
此消息将显示
现在
运行此命令以显示其中的所有表
First of all you have to connect with your database like
my database is ubuntu
use this command to connect
This message will show
Now
Run this command to show all tables in it
\dt 可以工作。 它的等价物是
\dt will work. And the equivalence of it is
要在 psql 中查看外部表,请运行
\dE
To view foreign tables in psql, run
\dE
首先,您可以使用 Mac 上的 postgre.app 或使用 postico 连接您的 postgres 数据库。
运行以下命令:
然后输入密码,这应该可以访问您的数据库
First you can connect with your postgres database using the postgre.app on mac or using postico.
Run the following command:
then you enter your password, this should give access to your database
另请注意 pgAdmin 文档 中的这一点:
因此,一旦您完成了该操作(或者您也可以使用 SQL 命令和 pSQL 客户端)并且您有了一些表,您就可以通过在 pgAdmin UI 中展开“Schemas”对象来查看它们。 下面是它的屏幕截图:
选择表格后,您还可以点击顶部工具栏(带有网格表格图标的工具栏)的“查看数据”来查看该表格的记录。
Also note this from the pgAdmin documentation:
So once you've done that (or you could also use SQL commands and the pSQL client) and you have some tables, you can view them by expanding the "Schemas" object in the pgAdmin UI. Here's a screenshot of what it looks like:
After selecting a table, you may also click on "View Data" at the top toolbar (the one with the grid table icon) to view the table's records.