在 PostgreSQL 中,选择数据库是非常常见的操作。当你连接到 PostgreSQL 实例时,首先会连接到一个默认的数据库,通常是 postgres。然而,在实际工作中,你通常会根据需要切换到特定的数据库。
1. 使用 psql 连接到 PostgreSQL 实例
1.1 初始连接
当你第一次连接到 PostgreSQL 实例时,通常会指定一个数据库。默认情况下,如果你没有明确指定数据库名称,psql 会连接到名为 postgres 的数据库。
psql -U postgres
上述命令会以 postgres 用户身份连接到 PostgreSQL 实例。如果你没有指定数据库,它会自动连接到 postgres 数据库。
1.2 连接到特定数据库
你可以在连接时指定要连接的数据库。例如,如果你想连接到名为 mydatabase 的数据库,可以这样做:
psql -U postgres -d mydatabase
或者简写为:
psql mydatabase
这会连接到 mydatabase 数据库,并进入 psql 提示符。
2. 在 psql 中选择数据库
如果你已经连接到 PostgreSQL 实例,并且希望切换到其他数据库,可以使用 \c(或 \connect)命令。这个命令允许你在不退出 psql 会话的情况下切换数据库。
2.1 切换数据库
\c dbname
dbname是你想切换到的目标数据库的名称。
示例
如果你已经连接到 postgres 数据库,并且想切换到 mydatabase 数据库,可以执行以下命令:
\c mydatabase
执行后,系统会显示类似下面的输出,表示切换成功:
You are now connected to database "mydatabase" as user "postgres".
2.2 使用不同的用户连接数据库
你也可以在切换数据库时指定不同的用户。例如:
\c mydatabase newuser
这会尝试以 newuser 用户身份连接到 mydatabase 数据库。如果 newuser 用户没有权限访问该数据库,连接会失败。
2.3 查看当前连接的数据库
如果你想查看当前连接的是哪个数据库,可以使用 \conninfo 命令:
\conninfo
这将输出当前连接信息,包括数据库名称、连接用户和连接主机等。
You are connected to database "mydatabase" as user "postgres" via socket in "/var/run/postgresql" at port 5432.
3. 通过 SQL 语句选择数据库
PostgreSQL 不像某些数据库系统(例如 MySQL)那样允许通过 SQL 语句直接切换数据库。你不能使用类似 USE mydatabase; 的命令来切换数据库。你必须通过 psql 命令行工具中的 \c 命令来切换数据库。
4. 列出所有数据库
如果你想查看当前 PostgreSQL 实例中的所有数据库,可以使用 \l 或 \list 命令:
\l
这将列出所有可用的数据库,以及它们的所有者、编码和访问权限等信息:
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
-----------+----------+----------+-------------+-----------+-------------------
mydatabase | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
(4 rows)
5. 删除数据库
在 PostgreSQL 中,如果你不再需要某个数据库,可以使用 DROP DATABASE 命令删除它。删除数据库是一个不可恢复的操作,执行后数据库及其中的所有数据将丢失。
DROP DATABASE dbname;
例如,删除名为 mydatabase 的数据库:
DROP DATABASE mydatabase;
注意:你必须确保在删除数据库之前,没有其他连接到该数据库的会话。如果有其他会话连接,你需要先断开它们,或者使用 pg_terminate_backend 函数手动终止连接。
6. 通过 pgAdmin 选择数据库
如果你使用 pgAdmin 图形化界面管理 PostgreSQL,可以轻松切换数据库。
步骤:
- 启动
pgAdmin并连接到 PostgreSQL 实例。 - 在左侧的树状视图中,找到并展开 “Databases”(数据库)节点。
- 右键点击你想选择的数据库,选择 “Connect”(连接)来切换到该数据库。
总结
- 在
psql中,你可以使用\c dbname切换数据库。 - PostgreSQL 不支持通过 SQL 语句直接切换数据库,必须使用
psql的命令。 - 你可以通过
\l查看当前 PostgreSQL 实例中的所有数据库。 - 使用
DROP DATABASE删除数据库时要小心,因为该操作不可恢复。
如果你有任何疑问或想要进一步了解 PostgreSQL 的其他功能,随时告诉我!