PostgreSQL 教程

PostgreSQL 数据库连接

连接到 PostgreSQL 数据库是使用该系统的基础步骤。

本章将详细介绍连接 PostgreSQL 数据库的两种主要方法:psql(命令行界面)和 pgAdmin(图形用户界面)。

1. 使用 psql 连接数据库

psql 是 PostgreSQL 的基于终端(命令行)的前端工具。它允许你以交互方式输入查询,将其发送给 PostgreSQL,并查看查询结果。无论是进行简单的查询,还是执行复杂的数据库管理任务,它都是一个极其强大的工具。

1.1 基础连接

最基本的连接方法就是直接在你的终端里输入 psql。这种方式假设你正在连接本地计算机上的数据库,并且你的操作系统用户名与数据库用户名相同。

psql

如果连接成功,你会看到类似下面这样的提示符:

postgres=#

这个提示符表明,你现在默认以当前操作系统用户的身份,连接到了名为 postgres 的默认数据库。

1.2 使用连接字符串 (Connection Strings)

为了更精确地控制连接参数,你可以使用连接字符串。其通用格式如下:

psql "host=你的主机名 dbname=你的数据库名 user=你的用户名 password=你的密码"

让我们拆解一下各个部分:

  • host: PostgreSQL 服务器的主机名或 IP 地址。如果是本地连接,请使用 localhost127.0.0.1
  • dbname: 你想要连接的具体数据库名称(例如:dbname=mydatabase)。
  • user: 你用来连接的 PostgreSQL 用户名(例如:user=myuser)。
  • password: 指定用户的密码。出于安全考虑(防止密码明文记录在终端历史中),通常不建议直接将密码写在命令行里。如果你省略这个参数,psql 会安全地提示你输入密码。

完整示例: 假设数据库名为 mydatabase,用户名为 myuser,并且服务器在本地运行:

psql "host=localhost dbname=mydatabase user=myuser"

执行后,系统会提示你输入密码。

1.3 使用环境变量 (Environment Variables)

管理连接参数一种更安全、更便捷的方法是使用环境变量。常见的环境变量包括:

  • PGHOST: 数据库服务器的主机名。
  • PGDATABASE: 数据库名称。
  • PGUSER: 用户名。
  • PGPASSWORD: 密码(请谨慎使用此变量,防止泄露)。
  • PGPORT: 端口号(默认为 5432)。

设置环境变量(以 Linux/macOS 为例):

export PGHOST=localhost
export PGDATABASE=mydatabase
export PGUSER=myuser
# 强烈建议不要直接设置 PGPASSWORD,而是让系统提示输入

设置完毕后,你只需运行:

psql

1.4 psql 常用快捷命令

成功连接后,以下是一些极其常用的内建命令:

  • \l : 列出服务器上的所有数据库。
  • \c 数据库名 : 切换连接到另一个数据库。例如:\c mydatabase
  • \dt : 列出当前数据库中的所有数据表。
  • \d 表名 : 查看特定表的结构详情(显示列名、数据类型、约束等)。例如:\d customers
  • \q : 退出 psql 并返回终端。
  • \? : 显示关于 psql 命令的帮助信息。

操作示例:列出 mydatabase 数据库中的所有表
首先连接:

psql -d mydatabase -U myuser -h localhost

进入 psql 后输入:

\dt

1.5 执行 SQL 脚本文件

你可以使用 -f 选项直接从命令行执行写好的 SQL 脚本文件:

psql -f /你的路径/script.sql -d mydatabase -U myuser -h localhost

这在自动化设置数据库或运行一系列批处理查询时非常有用。

1.6 psql 进阶技巧

  • 命令历史psql 会记住你的命令历史。使用键盘的上下方向键可以快速调出之前输入过的命令。
  • Tab 键补全psql 支持 Tab 键自动补全命令、表名和列名,极大提升输入效率。
  • 多行查询: 你可以分多行编写长查询语句。psql 只有在遇到分号 (;) 时才会将其视为语句结束并执行。

2. 使用 pgAdmin 连接数据库

pgAdmin 是 PostgreSQL 最受欢迎的开源图形化管理工具。它提供了一个直观友好的界面,用于管理数据库、运行查询以及执行其他管理任务。

2.1 安装与启动

pgAdmin 通常会随着 PostgreSQL 的官方安装程序一起安装,但在某些操作系统或包管理器下,你可能需要单独安装它。安装完成后,打开 pgAdmin,它通常会在你的默认 Web 浏览器中启动。

2.2 添加服务器连接

  1. 在左侧的浏览器树状菜单中,右键点击 "Servers (服务器)"
  2. 选择 "Register (注册)" -> "Server... (服务器...)"。(旧版本可能是 "Create -> Server")
  3. 在弹出的对话框的 "General (常规)" 选项卡中,为这个连接起个名字(例如:"本地 PostgreSQL")。
  4. 切换到 "Connection (连接)" 选项卡,填写以下信息:
    • Host name/address (主机名称/地址): 本地连接填 localhost127.0.0.1
    • Port (端口): 保持默认的 5432
    • Maintenance database (维护数据库): 通常保持为 postgres
    • Username (用户名): 你的 PostgreSQL 用户名(如 postgresmyuser)。
    • Password (密码): 输入该用户的密码。可以勾选“保存密码”方便下次连接。
  5. 点击 "Save (保存)"

如果连接成功,你刚才命名的服务器就会出现在左侧的 "Servers" 列表中。

2.3 在 pgAdmin 中导航

连接成功后,你可以在左侧面板中展开节点来浏览数据库对象:

  • Databases (数据库): 展开服务器节点,查看所有数据库列表。
  • Schemas (模式): 展开特定数据库节点,查看其包含的模式(默认通常使用 public 模式)。
  • Tables (数据表): 展开模式节点,即可查看该模式下的所有表。

2.4 运行查询

  1. 在左侧树状菜单中,点击选中一个特定的数据库(或模式)。
  2. 点击顶部工具栏的 "Query Tool (查询工具)" 图标(通常是一个带数据库图标的放大镜或闪电)。
  3. 这会打开一个查询编辑器窗口,你可以在这里输入 SQL 语句。

示例:从 customers 表检索数据
在编辑器中输入:

SELECT * FROM customers;

点击顶部的 "Execute/Refresh (执行/刷新)" 按钮(通常是一个类似于播放键的图标,快捷键是 F5)来运行查询。查询结果会以表格的形式显示在下方的结果网格中。

2.5 pgAdmin 的强大特性

  • SQL 编辑器: 支持语法高亮、代码自动补全和查询历史记录。
  • 数据编辑: 可以像在 Excel 中一样,直接在结果网格中双击修改表数据。
  • 备份与还原: 提供图形化的数据库备份和还原向导。
  • 服务器监控: 实时可视化监控服务器的性能和活动状态。
  • 对象管理: 通过右键菜单轻松创建、修改和删除数据库、表、索引等对象。

3. psql vs. pgAdmin:如何选择?

特性对⽐psql (命令行)pgAdmin (图形界面)
界面类型纯文本命令行图形用户界面 (GUI)
学习曲线初期较陡峭,掌握后极高效上手简单直观,功能菜单丰富
自动化能力非常适合编写脚本和自动化任务不太适合自动化任务
远程访问通过 SSH 连接非常轻量、快捷远程连接需要配置更多的网络防火墙规则
系统资源占用极低相对较高(需运行 Web 服务或桌面客户端)
最适用场景脚本编写、自动化运维、快速执行简单指令数据探索、复杂管理配置、直观查看数据库结构与数据

总结建议:
通常,psql 更受偏爱用于脚本编写、自动化部署和远程服务器的快速管理。而 pgAdmin 则更适合日常的交互式数据探索、复杂配置管理以及直观地分析数据库结构。大多数专业的数据库开发人员和管理员都会结合使用这两种工具,根据手头的具体任务选择最合适的一个。