📜  在 Windows amd ubuntu 20.04 上连接到 postgresql (1)

📅  最后修改于: 2023-12-03 15:07:51.190000             🧑  作者: Mango

在 Windows 和 Ubuntu 20.04 上连接到 PostgreSQL

PostgreSQL 是一个开源的关系型数据库管理系统,它支持 Windows,Linux 和其他一些操作系统。在本文中,我们将探讨如何在 Windows 和 Ubuntu 20.04 中连接到 PostgreSQL 数据库。我们将学习如何安装 PostgreSQL,如何创建和管理数据库,并且展示如何使用 Python 和 Node.js 程序连接到数据库。

安装 PostgreSQL

为了在 Windows 和 Ubuntu 20.04 中使用 PostgreSQL,我们需要首先安装它。在 Windows 上,您可以从官方网站下载安装程序。在 Ubuntu 20.04 上,您可以使用以下命令安装 PostgreSQL:

sudo apt update
sudo apt install postgresql postgresql-contrib

安装完成后,您可以通过以下命令检查 PostgreSQL 的版本:

psql --version
连接到 PostgreSQL
在 Windows 上连接

在 Windows 上,您可以使用 PgAdmin 工具来连接到 PostgreSQL。PgAdmin 是 PostgreSQL 的官方管理工具,提供了图形界面和命令行方式进行操作。您可以从官方网站下载并安装 PgAdmin。

安装完成后,打开 PgAdmin,点击 "添加新服务器" 来连接到 PostgreSQL 数据库。

在 Ubuntu 20.04 上连接

在 Ubuntu 20.04 上,您可以使用命令行方式连接到 PostgreSQL。首先,您需要使用以下命令登录到 PostgreSQL 数据库:

sudo -u postgres psql

然后,您可以使用以下命令查看所有数据库:

\l

如果您已经创建了数据库并希望连接到它,可以使用以下命令:

\c db_name

替换 "db_name" 为您所需连接的数据库名称。

创建和管理数据库
创建数据库

您可以使用以下命令在 PostgreSQL 中创建数据库:

sudo -u postgres createdb db_name

替换 "db_name" 为您所需创建的数据库名称。

创建表

在创建数据库后,您可以使用以下命令创建表:

CREATE TABLE table_name (
  field1 datatype [optional],
  field2 datatype [optional],
  ...
);

替换 "table_name" 为您所需创建的表名称,"field1" 和 "field2" 分别表示表中的列名,"datatype" 表示列的数据类型,可选部分表示列的约束。

插入数据

您可以使用以下命令将数据插入表中:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

替换 "table_name" 为表名称,"column1"、"column2"、"column3" 表示列名,"value1"、"value2"、"value3" 表示要插入的值。

查询数据

您可以使用以下命令查询数据:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

替换 "table_name" 为表名称,"column1"、"column2" 表示要查询的列名,"condition" 表示您要检索的条件。

更新数据

您可以使用以下命令更新数据:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

替换 "table_name" 为表名称,"column1"、"column2" 表示要更新的列名,"value1"、"value2" 表示要更新的值,"condition" 表示更新数据的条件。

使用 Python 和 Node.js 程序连接到 PostgreSQL

您可以使用以下代码片段连接到 PostgreSQL 数据库:

Python
import psycopg2

conn = psycopg2.connect(database="db_name", user="user_name", password="password", host="host_name", port="port_number")
cur = conn.cursor()

cur.execute("INSERT INTO table_name (column1, column2) VALUES (%s, %s)", (value1, value2))
conn.commit()

cur.execute("SELECT column1, column2 FROM table_name")
rows = cur.fetchall()

for row in rows:
    print(row[0], row[1])

cur.close()
conn.close()
Node.js
const { Pool } = require("pg");

const pool = new Pool({
  user: "user_name",
  host: "host_name",
  database: "db_name",
  password: "password",
  port: "port_number",
});

(async () => {
  const client = await pool.connect();

  await client.query("INSERT INTO table_name (column1, column2) VALUES ($1, $2)", [
    value1,
    value2,
  ]);

  const result = await client.query("SELECT column1, column2 FROM table_name");

  result.rows.forEach(row => {
    console.log(row.column1, row.column2);
  });

  client.release();
})();

替换 "db_name"、"user_name"、"password"、"host_name"、"port_number" 分别为您的数据库名称、用户名、密码、主机名、端口号以及 "table_name"、"column1"、"column2"、"value1"、"value2" 分别为您的表名称、列名、要插入的值。

以上就是在 Windows 和 Ubuntu 20.04 上连接到 PostgreSQL 的完整介绍。如果您想深入学习 PostgreSQL,可以查看官方文档。