PostgreSQL:在 PostgreSQL 中显示表
PostgreSQL 中的 show tables(来自 MySQL)的等价物是什么?
问:
PostgreSQL 中的 show tables(来自 MySQL)的等价物是什么?
huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感
答1:
huntsbot.com全球7大洲远程工作机会,探索不一样的工作方式
从 psql 命令行界面,
首先,选择你的数据库
\c database_name
然后,这将显示当前架构中的所有表:
\dt
以编程方式(当然也可以通过 psql 界面):
SELECT * FROM pg_catalog.pg_tables;
系统表位于 pg_catalog 数据库中。
@StephenCorwin 不,\l 相当于 MySQL 中的 show databases。 dt ≃ show tables 和 l ≃ show databases
\dt 非常有用。 pg_catalog.pg_tables 的情况要少得多,因为它似乎将内部表与您碰巧连接到的任何数据库的用户创建的表混为一谈。
应运行 psql my_db_name 以使 \dt 工作。当我在没有数据库名称的情况下运行 psql 时,我收到“未找到关系”消息
没有系统表:SELECT * FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema'
您首先需要 \c 来选择您的数据库。
答2:
huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。
以超级用户身份登录:
sudo -u postgres psql
您可以通过 \l 命令列出所有数据库和用户,(通过 ? 列出其他命令)。
现在,如果您想查看其他数据库,您可以通过 \c 命令(如 \c template1、\c postgres postgres)更改用户/数据库,并使用 \d、\dt 或 \dS 来查看表/视图/等。
huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求
答3:
与HuntsBot一起,探索全球自由职业机会–huntsbot.com
您可以使用 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
- 显示表格
现在在 Psql 中,您可以运行以下命令:
?列出所有命令 \l 列出数据库 \conninfo 显示有关当前连接的信息 \c [DBNAME] 连接到新数据库,例如,\c template1 \dt 列出公共模式的表 \dt .* 列出某些模式,例如 \dt public.* \dt . 列出所有模式的表 然后你可以运行 SQL 语句,例如 SELECT * FROM my_table;(注意:语句必须以分号结束;) \q quit psql
“psql -U postgres”将记录并连接到“postgres”数据库
答4:
huntsbot.com汇聚了国内外优秀的初创产品创意,可按收入、分类等筛选,希望这些产品与实践经验能给您带来灵感。
(为了完整性)
您还可以查询(SQL 标准)information schema:
SELECT
table_schema || '.' || table_name
FROM
information_schema.tables
WHERE
table_type = 'BASE TABLE'
AND
table_schema NOT IN ('pg_catalog', 'information_schema');
+1 虽然为了完整起见,mysql show tables 只显示当前模式,这样想很好,mysql 只有一个数据库但有多个模式,其中 postgresql 可以有多个数据库(目录)和模式。所以等效应该是 table_schema='DB_NAME';
不完全标准 sql,不能使用“||”在 mssql 上连接字符串
@ChRoNoN:那 is 标准 SQL 。 || 自 1983 年以来一直是 SQL 标准中的字符串连接运算符 - 它是使用非标准字符串连接运算符的 MS SQL。
答5:
huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。
首先以 postgres 用户身份登录: sudo su - postgres 连接到所需的数据库: psql -d databaseName \dt 将返回您连接到的数据库中所有表的列表。
答6:
huntsbot.com全球7大洲远程工作机会,探索不一样的工作方式
以超级用户身份登录,以便您可以检查所有数据库及其模式:-
sudo su - postgres
然后我们可以使用以下命令进入 postgresql shell:-
psql
您现在可以使用以下命令检查所有数据库列表:-
\l
如果您还想检查数据库的大小,请使用:-
\l+
按 q 返回。
找到数据库后,您可以使用以下命令连接到该数据库:-
\c database_name
连接后,您可以通过以下方式检查数据库表或架构:-
\d
现在返回到 shell 使用:-
q
现在进一步查看某个表使用的详细信息:-
\d table_name
要返回 postgresql_shell,请按 \q。
并返回终端按 exit。
对于不熟悉 pgsql 的人来说,这是一个不错的快速入门
答7:
huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感
使用 -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;
**************************
顺便说一句,TOAST 用于存储大值:postgresql.org/docs/8.3/static/storage-toast.html
答8:
HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com
如果您只想查看已创建的表列表,您可能只会说:
\dt
但我们也有 PATTERN,它可以帮助您自定义要显示的表格。要显示包括 pg_catalog 在内的所有架构,您可以添加 *。
\dt *
如果您这样做:?
\dt[S+] [PATTERN] 列出表格
答9:
huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感
仅使用查看表格
=> \dt
如果想查看模式表
=>\dt+
如果您想查看特定的架构表
=>\dt schema_name.*
我很确定您将 + 与 S 混淆了。后者(字母)显示模式表。 + 仅显示额外信息。
答10:
huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求
如果您在 PostgreSQL 中使用 pgAdmin4,您可以使用它来显示数据库中的表:
select * from information_schema.tables where table_schema='public';
答11:
huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求
首先使用以下命令连接数据库
\c database_name
您将看到这条消息 - You are now connected to database database_name。他们运行以下命令
SELECT * FROM table_name;
在 database_name 和 table_name 中,只需更新您的数据库和表名
我不确定这是在回答这个问题。我认为 OP 是(曾经)试图了解他的数据库中的所有表,而不是从他的数据库中的特定表中获取所有行......对吗?
原文链接:https://www.huntsbot.com/qa/g15V/postgresql-show-tables-in-postgresql?lang=zh_CN&from=csdn
huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)