show tables
相对应的是什么?
show tables
相对应的是什么?
从 psql
命令行界面开始,
首先,选择你的数据库
\c database_name
然后,这将显示当前模式中的所有表:
\dt
以编程方式(或者当然也可以通过 psql
接口):
SELECT * FROM pg_catalog.pg_tables;
系统表存放在 pg_catalog
数据库中。
\l
相当于 MySQL 中的 show databases
。
dt
≃ show tables
l
≃ show databases
- user454322\dt
非常有用。而pg_catalog.pg_tables
则不太实用,因为它似乎将内部表和用户创建的表混在一起,无论您连接到哪个数据库。 - aroth\dt
命令生效,需要在运行psql my_db_name
。当我没有指定数据库名称运行psql
时,会出现“未找到关系”的错误提示。 - Maksim DmitrievSELECT * FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema'
- Matt White\c <数据库名>
来选择你的数据库。 - danio以超级用户身份登录:
sudo -u postgres psql
你可以使用 \l
命令列出所有数据库和用户,(通过 \?
列出其他命令)。
现在,如果你想查看其他数据库,可以使用 \c
命令更改用户/数据库,例如:\c template1
,\c postgres postgres
,然后使用 \d
、\dt
或者 \dS
查看表/视图等。
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 *.*
列出所有模式的表格SELECT * FROM my_table;
(注意:语句必须以分号;
结尾)\q
退出psql\d+
表示表格的详细信息。
\x
以展开的方式显示输出。(重新输入 \x
可以关闭展开显示) - Dheeraj Yandrapu\du
与列出表格无关,这是问题所询问的内容。这里没有列出所有的psql命令。 - Bergi\du
与列出表格无关,这是问题所询问的内容。这里没有列出所有的psql命令。 - undefined;
添加到查询中确实起作用了!谢谢。 - Bobby Koteski为了完整性起见
您还可以查询(SQL标准的)信息模式:
SELECT
table_schema || '.' || table_name
FROM
information_schema.tables
WHERE
table_type = 'BASE TABLE'
AND
table_schema NOT IN ('pg_catalog', 'information_schema');
||
一直是SQL标准中的字符串连接运算符 - 只有MS SQL使用了非标准的字符串连接运算符。 - user330315以超级用户身份登录,以便您可以检查所有数据库及其模式:
sudo su - postgres
通过以下命令,我们可以进入PostgreSQL shell:
psql
现在,您可以使用以下命令查看所有数据库列表:
\l
如果您想检查数据库大小,请使用以下命令:
\l+
按下q
返回。
找到数据库后,您现在可以使用以下命令连接到该数据库:
\c database_name
连接成功后,您可以通过以下方式检查数据库表或模式:
\d
现在要返回到shell,请使用:-
q
现在要进一步查看某个表的详细信息,请使用:
\d table_name
回到 postgresql_shell,输入 \q
。
返回终端,请输入 exit
。
首先以postgres用户身份登录:
sudo su - postgres
连接到需要的数据库:psql -d databaseName
\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;
**************************
\dt
但是我们还有PATTERN
选项可以帮助您自定义要显示哪些表。为了显示所有包括pg_catalog
模式下的表,你可以添加*
。\dt *
如果你输入:\?
\dt[S+] [PATTERN] 列出表格
只能看到表格
=> \dt
如果想要查看模式表
=>\dt+
如果你想查看特定的模式表
=>\dt schema_name.*
+
和 S
混淆了。后者(字母)显示模式表,而 +
只是显示额外信息。 - Garret Wilson(MySQL) 显示当前数据库的数据表列表
show tables;
(PostgreSQL) 显示当前数据库的表列表
select * from pg_catalog.pg_tables where schemaname='public';