PostgreSQL17.x创建数据库及数据库信息查看命令

PostgreSQL17.x创建数据库及数据库信息查看命令

文章目录

  • PostgreSQL17.x创建数据库及数据库信息查看命令
  • 1.创建数据库
    • [1. 使用 SQL 命令创建数据库](#1. 使用 SQL 命令创建数据库)
    • [2. 创建数据库并指定字符集](#2. 创建数据库并指定字符集)
    • [3. 验证数据库是否创建成功](#3. 验证数据库是否创建成功)
    • [3. 远程连接](#3. 远程连接)
      • [1. 修改 PostgreSQL 配置文件](#1. 修改 PostgreSQL 配置文件)
      • [2. 修改客户端认证配置](#2. 修改客户端认证配置)
      • [4. 指定某个用户](#4. 指定某个用户)
      • [5. 指定某个网段可连接](#5. 指定某个网段可连接)
      • [6. 重启 PostgreSQL 服务](#6. 重启 PostgreSQL 服务)
  • [2. 查看数据库及表](#2. 查看数据库及表)
    • [1. 查看数据库信息](#1. 查看数据库信息)
    • [2. 查看表信息](#2. 查看表信息)
      • [1. 连接到 PostgreSQL 服务器](#1. 连接到 PostgreSQL 服务器)
      • [2. 切换数据库](#2. 切换数据库)
      • [3. 查看当前数据库中的所有表](#3. 查看当前数据库中的所有表)
      • [4. 查看特定表的结构](#4. 查看特定表的结构)
  • [3. 常用命令](#3. 常用命令)
  • [3. 常用命令](#3. 常用命令)

1.创建数据库

创建数据库前请确保您具有足够的权限。通常,只有超级用户或被授予了 CREATEDB 权限的用户才能创建数据库。

数据库名称必须遵循 PostgreSQL 的标识符命名规则,且不能与已存在的数据库名称重复。

创建数据库时,还可以指定一些额外的选项,如字符集、模板数据库等。例如可以指定使用 UTF8 字符集

1. 使用 SQL 命令创建数据库

已经连接到了 PostgreSQL 服务器,可以直接运行 CREATE DATABASE 命令来创建一个新的数据库。

sql 复制代码
CREATE DATABASE dbName;

2. 创建数据库并指定字符集

sql 复制代码
CREATE DATABASE mydatabase WITH ENCODING 'UTF8';

3. 验证数据库是否创建成功

创建数据库后,您可以使用 \l 命令列出所有数据库,检查新创建的数据库是否存在。

sql 复制代码
\l

3. 远程连接

要允许 PostgreSQL 用户从远程主机连接到数据库,需要进行几个配置步骤。以下是在 PostgreSQL 17 中配置远程连接的详细步骤:

1. 修改 PostgreSQL 配置文件

首先,需要编辑 PostgreSQL 的配置文件 postgresql.conf,以允许监听来自外部网络的连接。

  1. 找到 postgresql.conf 文件
  • Linux系统中,默认情况下这个文件位于 PostgreSQL 的数据目录中,通常是 /etc/postgresql/17/main//var/lib/pgsql/17/data/

  • Windows系统中,默认情况下这个文件位于 PostgreSQL 的数据目录中,如:D:\Programs\PostgreSQL\17\data\

  1. 编辑 postgresql.conf 文件
  • 使用文本编辑器打开 postgresql.conf 文件。
  • 找到 listen_addresses 配置项,并将其设置为 '*',表示允许从任何 IP 地址连接。例如:
shell 复制代码
listen_addresses = '*'

2. 修改客户端认证配置

接下来,需要编辑 pg_hba.conf 文件,以允许特定的用户从特定的 IP 地址连接到数据库。

  1. 找到 pg_hba.conf 文件

    • 这个文件通常也位于 PostgreSQL 的数据目录中,与 postgresql.conf 文件在同一位置。
  2. 编辑 pg_hba.conf 文件

    使用文本编辑器打开 pg_hba.conf 文件。

    添加或修改一行,允许特定的用户从特定的 IP 地址连接。例如,允许用户 john 从 IP 地址 192.168.1.100 连接:

    复制代码
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    host    all             john            192.168.1.100/32        md5

    解释:

    • TYPE: 连接类型,host 表示 TCP/IP 连接。
    • DATABASE: 允许连接的数据库名称,all 表示所有数据库。
    • USER: 允许连接的用户名。
    • ADDRESS: 允许连接的 IP 地址和子网掩码。192.168.1.100/32 表示单个 IP 地址,192.168.1.0/24 表示整个子网。
    • METHOD: 认证方法,md5 表示使用 MD5 加密的密码认证。

4. 指定某个用户

使用文本编辑器打开 pg_hba.conf 文件。

shell 复制代码
# TYPE  DATABASE        USER            ADDRESS                 METHOD
...
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             192.168.1.26/32            scram-sha-256
# IPv6 local connections:
....

5. 指定某个网段可连接

shell 复制代码
# TYPE  DATABASE        USER            ADDRESS                 METHOD
...
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             192.168.1.0/24            scram-sha-256
# IPv6 local connections:
....

添加或修改一行,允许特定网段的主机连接。例如,允许用户 all(所有用户)192.168.1.0/24 网段的主机连接

  • 解释:
    • TYPE: 连接类型,host 表示 TCP/IP 连接。
    • DATABASE: 允许连接的数据库名称,all 表示所有数据库。
    • USER: 允许连接的用户名,all 表示所有用户。
    • ADDRESS: 允许连接的 IP 地址和子网掩码。192.168.1.0/32 表示整个 192.168.1.0192.168.1.255 的网段。
    • METHOD: 认证方法,scram-sha-256 表示使用 scram-sha-256加密的密码认证。

6. 重启 PostgreSQL 服务

修改配置文件后,需要重启 PostgreSQL 服务以使更改生效。

shell 复制代码
# Windows下先停止在启动
# 停止服务
net stop postgresql-x64-17
# 启动服务
net start postgresql-x64-17

2. 查看数据库及表

1. 查看数据库信息

shell 复制代码
\l

2. 查看表信息

在 PostgreSQL 17 中,使用 psql 命令行工具可以方便地切换数据库和查看表结构。以下是详细的步骤和命令:

1. 连接到 PostgreSQL 服务器

首先,使用 psql 命令连接到 PostgreSQL 服务器。假设您要以 john 用户连接到 localhost 上的 PostgreSQL 服务器:

复制代码
psql -h localhost -U john
  • -h localhost: 指定服务器地址,如果是本地连接,可以省略。
  • -U john: 指定连接的用户名。

连接成功后,您会看到 psql 提示符,类似于 john=#

2. 切换数据库

如果您已经连接到某个数据库,但需要切换到另一个数据库,可以使用 \c 命令。假设您要切换到 mydatabase 数据库:

复制代码
\c mydatabase

3. 查看当前数据库中的所有表

要查看当前数据库中的所有表,可以使用 \dt 命令:

复制代码
\dt

这个命令会列出当前数据库中的所有表。

shell 复制代码
# 切换到 syson-db数据库
postgres-# \c "syson-db"
您现在已经连接到数据库 "syson-db",用户 "postgres".
# 查看当前数据库下的表
syson-db-# \dt
                       关联列表
 架构模式 |          名称           |  类型  | 拥有者
----------+-------------------------+--------+--------
 public   | databasechangelog       | 数据表 | dbuser
 public   | databasechangeloglock   | 数据表 | dbuser
 public   | document                | 数据表 | dbuser
 public   | image                   | 数据表 | dbuser
 public   | nature                  | 数据表 | dbuser
 public   | project                 | 数据表 | dbuser
 public   | project_image           | 数据表 | dbuser
 public   | representation_content  | 数据表 | dbuser
 public   | representation_metadata | 数据表 | dbuser
 public   | semantic_data           | 数据表 | dbuser
 public   | semantic_data_domain    | 数据表 | dbuser
(11 行记录)

4. 查看特定表的结构

如果您想查看某个表的详细结构,可以使用 \d 命令加上表名。例如,查看 users 表的结构:

复制代码
\d users

3. 常用命令

1. 查看数据库

shell 复制代码
\l

2. 切换数据库

sql 复制代码
\c dbName

3.查看所有模式

shell 复制代码
\dn

4.查看所有函数

sql 复制代码
\df

想查看某个表的详细结构,可以使用 \d 命令加上表名。例如,查看 users 表的结构:

复制代码
\d users

3. 常用命令

1. 查看数据库

shell 复制代码
\l

2. 切换数据库

sql 复制代码
\c dbName

3.查看所有模式

shell 复制代码
\dn

4.查看所有函数

sql 复制代码
\df
相关推荐
TDengine (老段)9 分钟前
TDengine 数学函数 DEGRESS 用户手册
大数据·数据库·sql·物联网·时序数据库·iot·tdengine
TDengine (老段)12 分钟前
TDengine 数学函数 GREATEST 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
安当加密38 分钟前
云原生时代的数据库字段加密:在微服务与 Kubernetes 中实现合规与敏捷的统一
数据库·微服务·云原生
爱喝白开水a1 小时前
LangChain 基础系列之 Prompt 工程详解:从设计原理到实战模板_langchain prompt
开发语言·数据库·人工智能·python·langchain·prompt·知识图谱
想ai抽1 小时前
深入starrocks-多列联合统计一致性探查与策略(YY一下)
java·数据库·数据仓库
武子康1 小时前
Java-152 深入浅出 MongoDB 索引详解 从 MongoDB B-树 到 MySQL B+树 索引机制、数据结构与应用场景的全面对比分析
java·开发语言·数据库·sql·mongodb·性能优化·nosql
longgyy1 小时前
5 分钟用火山引擎 DeepSeek 调用大模型生成小红书文案
java·数据库·火山引擎
ytttr8732 小时前
C# 仿QQ聊天功能实现 (SQL Server数据库)
数据库·oracle·c#
盒马coding3 小时前
第18节-索引-Partial-Indexes
数据库·postgresql
不剪发的Tony老师3 小时前
CloudDM:一站式数据库开发管理工具
数据库