如何使用 psql 列出 PostgreSQL 数据库和表

2023-11-15

给药时PostgreSQL在数据库服务器中,您可能执行的最常见任务之一是列出数据库及其表。

PostgreSQL 附带了一个交互式工具,称为psql,它允许您连接到服务器并对其运行查询。使用时psql您还可以利用它的元命令。这些命令对于脚本编写和命令行管理非常有用。所有元命令都以不带引号的反斜杠开头,也称为反斜杠命令。

本教程介绍如何使用以下命令显示 PostgreSQL 服务器中的数据库和表psql.

列出数据库#

您可以使用以下命令连接到 PostgreSQL 服务器psql以任何系统用户身份执行命令。根据服务器配置,用户可能需要输入密码才能连接到psql终端。要访问psql终端作为您当前登录的用户,只需键入psql.

安装 PostgreSQL 软件包后,会创建一个名为“postgres”的管理用户。默认情况下,该用户无需密码即可连接到本地 PostgreSQL 服务器。

要访问psql终端作为用户“postgres”,运行:

sudo -u postgres psql
The 须藤命令允许您以其他用户身份运行命令。

从 psql 终端内执行\l or \list列出所有数据库的元命令:

\l

输出将包括数据库的数量、每个数据库的名称、其所有者、编码和访问权限:

                              List of databases
   Name    |  Owner   | Encoding | Collate |  Ctype  |   Access privileges   
-----------+----------+----------+---------+---------+-----------------------
 odoo      | odoo     | UTF8     | C       | C.UTF-8 | 
 postgres  | postgres | UTF8     | C.UTF-8 | C.UTF-8 | 
 template0 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
           |          |          |         |         | postgres=CTc/postgres
 template1 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
           |          |          |         |         | postgres=CTc/postgres
(4 rows)

PostgreSQL 服务器默认创建了三个数据库:template0、template1 和 postgres。前两个是创建新数据库时使用的模板。

如果您想获取有关数据库大小、默认表空间和描述的信息,请使用\l+ or \list+。仅当当前用户可以连接到数据库时才会显示数据库大小。

要在不访问 psql shell 的情况下获取所有数据库的列表,请使用-c切换如下图:

sudo -u postgres psql -c "\l"

列出数据库的另一种方法是使用以下 SQL 语句:

SELECT datname FROM pg_database;

不像\l上面的元命令查询将仅显示数据库的名称:

  datname  
-----------
 postgres
 odoo
 template1
 template0
(4 rows)

列表表#

要首先列出特定数据库的所有表,您需要使用以下命令连接到该数据库:\c or \connect元命令。您登录到 psql 终端的用户必须能够连接到数据库。

例如,要连接到名为“odoo”的数据库,您可以键入:

\c odoo

数据库切换后,使用\dt列出所有数据库表的元命令:

输出将包括表的数量、每个表的名称及其架构、类型和所有者:

                              List of relations
 Schema |                        Name                         | Type  | Owner 
--------+-----------------------------------------------------+-------+-------
 public | base_import_import                                  | table | odoo
 public | base_import_mapping                                 | table | odoo
 public | base_import_tests_models_char                       | table | odoo
 ...
 public | web_editor_converter_test_sub                       | table | odoo
 public | web_tour_tour                                       | table | odoo
 public | wizard_ir_model_menu_create                         | table | odoo
(107 rows)

如果数据库为空,则输出将如下所示:

No relations found.

要获取有关表格大小和描述的信息,请使用\dt+.

结论#

您已经学习了如何使用以下命令列出 PostgreSQL 数据库和表psql命令。

如果您有任何疑问,请随时发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 psql 列出 PostgreSQL 数据库和表 的相关文章

  • PostgreSQL & regexp_split_to_array + 取消嵌套

    我有这样的绳子 测试1 纽约 X 测试 2 芝加哥 Y 测试 3 宾夕法尼亚州哈里斯堡 Z 我需要的结果是 Column1 Column 2 Column3 Test 1 new york X Test 2 chicago Y Test 3
  • 如何将本机数据库运算符 (postgres ~) 与 JPA 标准生成器一起使用?

    我使用 JPA 2 0 标准构建以下查询 简化 select n from notif n where n message b la 我正在使用 postgresql 数据库 我真的需要 运算符 而不是像 我可以使用与 CriteriaBu
  • 在 SELECT 中将列值拆分为两列?

    我在 varchar 列中有一个字符串值 它是一个由两部分组成的字符串 在它到达数据库之前分割它不是一个选择 该列的值如下所示 one column part1 part2 part1 part2 所以我想要的是一个如下所示的结果集 col
  • 使用 Rails 中的 postgres json 字段更新嵌套键

    我一直在尝试更新以下内容 boxes book 2 moving 2 goods to boxes book new 2 moving 2 goods 无需使用正则表达式或在 ruby 中执行此操作 但似乎有点棘手 我想添加新密钥 然后删除
  • Mac psql/readline - 库未加载

    我正在 Mac Sierra 10 12 3 上工作 并且尝试通过以下方式访问 PostgreSQL 数据库psql命令 但它引发了错误 dyld Library not loaded usr local opt readline lib
  • 如何为 MySQL 和 Postgres 编写不区分大小写的查询?

    我在本地运行 MySQL 数据库进行开发 但部署到使用 Postgres 的 Heroku Heroku 处理几乎所有事情 但我不区分大小写的 Like 语句变得区分大小写 我可以使用 iLike 语句 但我的本地 MySQL 数据库无法处
  • POSTGRESQL:如何在现有表上添加包含数据的新列

    我是 postgres 和 sql 脚本的新手 所以请耐心等待 我想要做的是在现有表上添加包含数据的现有列 现有表的示例 NAME AGE Adam 25 Tim 30 现在我想添加一个新列 ADDRESS 其中包含 Adam 和 Tim
  • pq:无法调整共享内存段的大小。设备上没有剩余空间

    我在仪表板上有许多面板 数量约为 6 个 用于显示数据点图表 对 PostgreSQL 数据库的 Dockerized 实例进行查询 直到最近 面板都工作正常 有些面板停止工作并报告如下错误 pq 无法将共享内存段 PostgreSQL 2
  • 在 Postgres 中的数组字段上应用聚合函数?

    是否可以对整数 字段 或其他数字数组 中的所有值应用聚合 如 avg stddev CREATE TABLE widget measurement integer insert into widget measurement values
  • 使用包含空值列的 WHERE 子句的更新语句

    我正在使用另一个表中的数据更新一个表上的列 这WHERE子句基于多个列 并且某些列为空 根据我的想法 这个空值是什么throwing off你的标准UPDATE TABLE SET X Y WHERE A B陈述 See 这个 SQL 小提
  • 多租户 Rails 应用:不同技术的优缺点是什么?

    我最初是为一位客户编写 Ruby on Rails 应用程序的 现在 我正在更改它 以便它可以用于不同的客户 我的最终目标是某些用户 不是我 可以单击按钮并创建一个新项目 然后生成所有必要的更改 新架构 新表 代码处理 无需任何人需要我编辑
  • 将此 MySQL 查询转换为 PyGreSQL

    我正在开发一个 Ruby 应用程序 它使用 mysql 函数 XOR 和 BIT COUNT 不过 我现在需要在运行 PyGreSQL 的 Heroku 上运行该应用程序 我找不到任何可以帮助我的 PyGreSQL 文档 那么任何人都可以翻
  • 将 docker-compose.yml 中的包安装到 docker 容器中

    我是 docker 和 docker compose 的初学者 我需要你的帮助 我正在使用 docker compose 制作 PHP NGINX PostgresQL symfony 开发环境 这里是 web image nginx 1
  • pg gem Trace/BPT 陷阱:MAC OS X lion 上出现 5 错误

    我最近将我的雪豹升级为狮子 在我的一个应用程序中我得到了 gt Booting WEBrick gt Rails 3 0 4 application starting in development on http 0 0 0 0 4000
  • 将一个大的 postgres 表拆分为多个 csv

    我正在使用以下 psql 查询连接到远程主机并将一个大表拆分为多个 csv 文件 psql h xx p xx U xx d xx c COPY select from table TO program split lines 1000 f
  • Heroku 上的“PG::错误 - 数字字段溢出”

    我构建了一个应用程序来查询 Google Analytics 的过去 7 天的数据 一切都在本地进行 在 Heroku 上 该过程运行顺利 直到它尝试获取今天日期的数据 然后我收到以下错误 2012 10 29T02 32 02 00 00
  • Postgres 和 Django - DataError:无法识别时区

    我们从一些用户那里收到以下错误 DataError time zone Asia Qostanay not recognized 我们发现问题出在以下 SQL 查询上 SELECT FROM app foobar WHERE EXTRACT
  • 新分配的序列不起作用

    在 PostgreSQL 中 我创建了一个新表并为其分配了一个新序列id柱子 如果我从 PostgreSQL 控制台插入记录 它可以工作 但是当我尝试从 Rails 导入记录时 它会引发异常 无法找到关联的序列 这是表格 d user me
  • PostgreSQL不使用PostGIS计算两点之间的距离

    当纬度和经度位于表格中的两个单独列中时 如何计算两点之间的距离 我无法使用 PostGIS 因为我使用 heroku Postgres 免费版本 你可以使用这样的东西 select SQRT POW 69 1 latitude float
  • 分区表查询仍然扫描所有分区

    我有一个包含超过十亿条记录的表 为了提高性能 我将其分区为30个分区 最常见的查询有 id 在他们的 where 子句中 所以我决定对表进行分区id column 基本上 分区是这样创建的 CREATE TABLE foo 0 CHECK

随机推荐

  • 在 Bash 中使用模运算符 (%)

    在编程中 模数或余数是返回除法余数的运算 在 Bash 中 模运算符由 符号表示 模运算符通常在编程中用于检查一个数字是否可以被另一个数字整除或执行需要循环模式的运算 在本文中 我们将探讨如何在 Bash 中使用模运算符 Syntax Ba
  • 什么是 MAC 地址?

    了解 MAC 地址的功能和重要性对于任何处理计算机网络 无论是家庭网络还是复杂的企业设置 的人来说都是至关重要的 本文提供了全面的指南媒体访问控制 MAC 地址 它们在网络通信中的作用以及它们在当今数字世界中的重要性 什么是 MAC 地址
  • 使用 cURL 发送电子邮件的分步指南

    cURL 短缺 URL 客户端 是一个开源软件项目 它提供了一个库 libcurl 和一个命令行工具 curl 用于使用各种网络协议传输数据 虽然它通常用于与 HTTP 和 HTTPS 交互 但它也可以处理 SMTP 这是在互联网上发送电子
  • 如何在 Ubuntu 和 Debian 上安装和使用 Imapsync

    Imapsync是一种 IMAP 传输工具 用于将电子邮件从一个 IMAP 服务器复制到另一个 IMAP 服务器 本文将帮助您在 Ubuntu Debian 和 Linuxmint 系统上安装 imapsync 并在两个 IMAP 服务器之
  • Linux 中不存在目录时如何创建

    Linux 是全球数百万用户使用的流行操作系统 使用 Linux 时的一项常见任务是创建和管理目录 在本文中 我们将介绍如何在 Linux 中创建目录 仅当目录尚不存在时 这在编写脚本或执行需要创建多个具有唯一名称的目录的任务时非常有用 使
  • 解决 Flask 中的“AssertionError:视图函数映射正在覆盖现有端点函数”错误

    Flask 是一种广泛使用的用 Python 编写的微型 Web 框架 它因其简单性和为开发人员提供的控制而广受欢迎 但是 与任何其他框架一样 开发人员在使用 Flask 时可能会遇到错误 其中一个错误是 断言错误 视图函数映射正在覆盖现有
  • 如何在 Linux 中打开端口

    在 Linux 操作系统中 端口是用于通过网络发送或接收数据的通信端点 网络端口由数字标识 每个端口号与特定类型的网络服务相关联 例如 端口 80 用于 HTTP 流量 端口 21 用于 FTP 端口 25 用于电子邮件 为了建立网络连接
  • 在 Bash 中使用管道 (|) 运算符

    Bash 脚本是管理和在类 Unix 系统上工作的一个组成部分 管道运算符 是 Bash 脚本工具包中一个非常强大的工具 尽管外观简单 但它是高效命令行操作 简化流程和实现复杂数据操作的基石 本文深入探讨了管道运算符的使用 探讨它是什么 它
  • 如何在 Bash 脚本中获取当前日期和时间

    作为一种脚本语言 Bash 广泛用于系统管理任务和自动化 Bash 脚本中的一项常见任务是获取当前日期和时间 这 date 命令以特定格式返回当前日期和时间 但您也可以使用自定义格式字符串来获取任何格式的日期和时间 在本文中 我们将探讨如何
  • Linux 中的 Uname 命令

    在本文中 我们将介绍uname命令 uname是一个命令行实用程序 可打印有关操作系统名称和系统硬件的基本信息 uname命令 The uname工具最常用于确定处理器架构 系统主机名和内核版本系统上运行 的语法uname命令采用以下形式
  • Linux中的Find命令(查找文件和目录)

    The find命令是 Linux 系统管理员工具库中最强大的工具之一 它根据用户给定的表达式在目录层次结构中搜索文件和目录 并可以对每个匹配的文件执行用户指定的操作 您可以使用find命令根据文件和目录的权限 类型 日期 所有权 大小等搜
  • 如何在 CentOS 7 上安装 Apache Cassandra

    Apache Cassandra 是一款开源 NoSQL 数据库 无单点故障 提供线性可扩展性和高可用性 且不会影响性能 在 Cassandra 中 记录的结构与关系数据库中的表 行和列类似 Apache Cassandra 被许多组织使用
  • 猛击直到循环

    循环是编程语言的基本概念之一 当您想要一遍又一遍地运行一系列命令直到满足特定条件时 循环会很方便 在 Bash 等脚本语言中 循环对于自动执行重复任务非常有用 Bash 脚本中有 3 种基本循环结构 for loop while 循环 an
  • 如何在树莓派上安装 Ubuntu

    Raspberry Pi 是有史以来最受欢迎的单板计算机 它可用于多种用途 如台式电脑 家庭媒体中心 智能 Wi Fi 路由器 自动化系统和游戏服务器 用例是无穷无尽的 如果您的 Raspberry Pi 没有预装 NOOBS 的 SD 卡
  • 如何在 Debian 9 上安装 Python 3.7

    Python 是世界上最流行的编程语言之一 Python 以其简单易学的语法成为初学者和经验丰富的开发人员的绝佳选择 Python 是一种非常通用的编程语言 您几乎可以用它来做任何您想做的事情 编写小脚本 构建游戏 开发网站 创建机器学习算
  • 如何在 Ubuntu Linux 上挂载 exFAT 驱动器

    exFAT 扩展文件分配表 是 Microsoft 专有的文件系统 针对 SD 卡和 USB 闪存驱动器等闪存设备进行了优化 它旨在取代旧的 32 位 FAT32 文件系统 该系统无法存储大于 4 GB 的文件 所有最新版本的 Window
  • 如何在 Ubuntu 18.04 上安装 Slack

    Slack是世界上最受欢迎的协作平台之一 它将您的所有通信汇集在一起 Slack 中的对话按频道组织 您可以为您的团队 项目 主题或任何其他目的创建频道 以保持信息和对话井井有条 您可以搜索频道或消息中发布的所有内容 Slack 还允许您通
  • 如何在 Debian 9 上安装 Skype

    Skype是世界上最受欢迎的通信应用程序之一 可让您免费进行在线音频和视频通话 并以经济实惠的价格拨打全球手机和固定电话 Skype 不是开源应用程序 也不包含在 Debian 存储库中 在本教程中 我们将解释如何在 Debian 9 上安
  • Bash 序列表达式(范围)

    在本文中 我们将介绍 Bash 中序列表达式的基础知识 Bash 序列表达式通过定义范围的起点和终点来生成整数或字符范围 一般与以下组合使用for loops Bash 序列表达式 序列表达式采用以下形式 START END INCREME
  • 如何使用 psql 列出 PostgreSQL 数据库和表

    给药时PostgreSQL在数据库服务器中 您可能执行的最常见任务之一是列出数据库及其表 PostgreSQL 附带了一个交互式工具 称为psql 它允许您连接到服务器并对其运行查询 使用时psql您还可以利用它的元命令 这些命令对于脚本编