在 PostgreSQL 中使用資料庫

Shihab Sikder 2023年1月30日 2022年5月14日
  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 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