在 PostgreSQL 中使用数据库

Shihab Sikder 2023年1月30日
  1. PostgreSQL 中的可用数据库
  2. 连接到 PostgreSQL 中的数据库
  3. 在 PostgreSQL 中创建一个新数据库
  4. 在 PostgreSQL 的连接数据库中创建表
在 PostgreSQL 中使用数据库

本文演示了在 PostgreSQL 中连接数据库、创建新数据库以及创建表。

PostgreSQL 中的可用数据库

你可以在打开 Postgres 命令行后执行以下命令,以查看所有存在和连接的可用数据库。

postgres=# \l
                                                 List of databases
   Name    |  Owner   | Encoding |          Collate           |           Ctype            |   Access privileges
-----------+----------+----------+----------------------------+----------------------------+-----------------------
 postgres  | postgres | UTF8     | English_United States.1252 | English_United States.1252 |
 template0 | postgres | UTF8     | English_United States.1252 | English_United States.1252 | =c/postgres          +
           |          |          |                            |                            | postgres=CTc/postgres
 template1 | postgres | UTF8     | English_United States.1252 | English_United States.1252 | =c/postgres          +
           |          |          |                            |                            | postgres=CTc/postgres
(3 rows)

在这里,你可以看到 3 行,这意味着我们在 Postgres 中有三个数据库。你需要了解数据库并不意味着表。

一个数据库里面可以有多个表。此外,该表可能与其他表相关。

让我们看看如何连接到数据库。

当你第一次安装 Postgres 时,你会发现默认为你创建的这三个数据库。如果你不连接任何数据库,默认情况下,你稍后创建的所有表都将转到名为 Postgres 的数据库。

连接到 PostgreSQL 中的数据库

你需要打开 psql shell 或从终端打开 psql 以连接到数据库。然后使用凭据,登录 Postgres;之后,使用以下命令。

postgres=# \c postgres
You are now connected to database "postgres" as user "postgres".

所以,终端说你现在连接到一个名为 Postgres 的数据库。让我们看看我们在这个数据库中有哪些表。

要查看数据库中可用的表列表,我们需要编写命令\dt <database_name>。例如:

postgres=# \c postgres
You are now connected to database "postgres" as user "postgres".
postgres=# \dt
          List of relations
 Schema |   Name   | Type  |  Owner
--------+----------+-------+----------
 public | accounts | table | postgres
(1 row)

在 PostgreSQL 中创建一个新数据库

假设你需要一个自己的数据库,并且你将在那里管理一些表。创建数据库的基本语法是 CREATE DATABASE <database_name>

创建后,让我们创建一个名为 titan 的数据库并查看可用数据库列表。

postgres=# CREATE DATABASE TITAN;
CREATE DATABASE
postgres=# \l
                                                 List of databases
   Name    |  Owner   | Encoding |          Collate           |           Ctype            |   Access privileges
-----------+----------+----------+----------------------------+----------------------------+-----------------------
 postgres  | postgres | UTF8     | English_United States.1252 | English_United States.1252 |
 template0 | postgres | UTF8     | English_United States.1252 | English_United States.1252 | =c/postgres          +
           |          |          |                            |                            | postgres=CTc/postgres
 template1 | postgres | UTF8     | English_United States.1252 | English_United States.1252 | =c/postgres          +
           |          |          |                            |                            | postgres=CTc/postgres
 titan     | postgres | UTF8     | English_United States.1252 | English_United States.1252 |
(4 rows)


postgres=# \c titan
You are now connected to database "titan" as user "postgres".

此外,还有另一种创建数据库的方法。格式为 createdb [options...] [database_name [description of database]]

这是 [PostgreSQL] 中可用选项的列表(https://postgrespro.com/docs/postgresql/9.6/app-createdb)。

选项 说明
-D Default tablespace for the database
-h hostname of the machine where the server is sunning
-e Echo the commands that createdb generates and sends to the server
-E Specifies the character encoding scheme to be used in this database

这里是 PostgreSQL 官方文档中的完整选项列表。

在 PostgreSQL 的连接数据库中创建表

当我们连接到名为 titan 的数据库时,让我们看看是否存在任何表。

postgres=# \c titan
You are now connected to database "titan" as user "postgres".
titan=# \dt
Did not find any relations.

如你所见,数据库中没有表。此外,如果你注意到,这里有一些小的变化。

当我们连接到 titan 数据库时,该行以 titan=# 开头,这意味着控制台在 titan 数据库上运行。

让我们在这里创建一个表,如下所示。

CREATE TABLE Colossal (
	titan_id serial PRIMARY KEY,
	titan_name VARCHAR ( 50 ) NOT NULL,
	strength_level INT NOT NULL
);
CREATE TABLE
titan=# \dt
          List of relations
 Schema |   Name   | Type  |  Owner
--------+----------+-------+----------
 public | colossal | table | postgres
(1 row)

titan=#

现在,你可以在表中执行 CRUD 操作。我们可以看到 colossal 表现在在 titan 数据库中可用。

有关数据库创建和设置的更多信息,请遵循官方文档

作者: Shihab Sikder
Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website

相关文章 - PostgreSQL Database