PostgreSQL数据库常用命令有哪些?

PostgreSQL 是一款功能强大的开源关系型数据库管理系统,以其丰富的功能、高可靠性和良好的扩展性著称,掌握其常用命令是高效管理和操作数据库的基础,以下从数据库连接、用户与权限管理、数据库与对象操作、数据操作与查询、备份与恢复等方面详细介绍 PostgreSQL 的核心命令。

postgresql 数据库命令
(图片来源网络,侵删)

数据库连接与退出

连接 PostgreSQL 数据库需使用 psql 命令行工具,基本语法为:

psql -h 主机名 -p 端口号 -U 用户名 -d 数据库名

连接本地默认数据库(端口为 5432)可简化为 psql -U postgres,首次连接可能需输入密码,可通过 PGPASSWORD 环境变量或 ~/.pgpass 文件配置免密登录,退出当前会话使用 \q 命令,或直接按 Ctrl+D

用户与权限管理

用户(角色)是 PostgreSQL 权限控制的核心,创建用户需使用 CREATE ROLECREATE USER(后者默认包含登录权限),

CREATE USER user1 WITH PASSWORD 'password123' CREATEDB;

CREATEDB 表示用户具备创建数据库的权限,授予用户权限使用 GRANT,如授予表 employees 的查询权限:

postgresql 数据库命令
(图片来源网络,侵删)
GRANT SELECT ON employees TO user1;

撤销权限则用 REVOKE,如 REVOKE INSERT ON employees FROM user1;,删除用户需先处理其对象依赖,或使用 DROP USER user1 CASCADE 强制删除。

数据库与对象操作

创建数据库使用 CREATE DATABASE

CREATE DATABASE mydb WITH ENCODING 'UTF8' TEMPLATE template0;

ENCODING 指定字符集,TEMPLATE 选择模板数据库(默认为 template1),切换当前数据库使用 \c mydb(在 psql 中),创建表需定义字段及类型,如:

CREATE TABLE students (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    age INT CHECK (age > 0)
);

SERIAL 为自增主键类型,CHECK 约束确保数据有效性,修改表结构使用 ALTER TABLE,如添加列:ALTER TABLE students ADD COLUMN email VARCHAR(100);,删除表使用 DROP TABLE students;,若需级联删除关联数据则加 CASCADE

postgresql 数据库命令
(图片来源网络,侵删)

数据操作与查询

数据插入使用 INSERT INTO

INSERT INTO students (name, age, email) VALUES ('Alice', 20, 'alice@example.com');

批量插入可多组 VALUES 并用逗号分隔,更新数据通过 UPDATE,需搭配 WHERE 条件避免全表更新:

UPDATE students SET age = 21 WHERE name = 'Alice';

删除数据使用 DELETE FROM,同样需 WHERE 限制范围,否则清空表数据。

查询数据是核心操作,基本语法为:

SELECT column1, column2 FROM table_name WHERE condition GROUP BY column1 HAVING group_condition ORDER BY column1 DESC LIMIT 10;

SELECT 指定列, 表示所有列;WHERE 过滤行,GROUP BY 分组聚合,HAVING 筛选分组结果,ORDER BY 排序,LIMIT 限制返回行数,常用函数包括聚合函数(COUNT(), SUM(), AVG())和字符串函数(CONCAT(), SUBSTR())。

索引与性能优化

创建索引可加速查询,例如为 students 表的 name 列创建索引:

CREATE INDEX idx_students_name ON students(name);

索引适用于高频查询列,但会降低写入速度,查看索引使用情况可通过 \di(在 psql 中)或查询系统视图 pg_indexes

备份与恢复

备份工具为 pg_dump,可导出整个数据库或特定表:

pg_dump -U postgres -f backup.sql mydb  # 备份数据库到文件
pg_dump -U postgres -t students -f students.sql mydb  # 备份单表

恢复数据使用 psqlpg_restore(针对自定义格式备份):

psql -U postgres -d mydb -f backup.sql

对于大型数据库,建议使用 pg_dump 的自定义格式(Fc)并配合 pg_restore 实现增量恢复。

相关问答 FAQs

Q1: 如何查看 PostgreSQL 数据库中所有表的大小?
A1: 在 psql 中执行以下查询,可按表大小降序排列:

SELECT 
    schemaname,
    tablename,
    pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) AS size
FROM pg_tables 
ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC;

pg_size_pretty() 函数将字节大小转换为易读格式(如 KB、MB)。

Q2: 忘记 PostgreSQL 用户密码如何重置?
A2: 若拥有系统管理员权限,可停止 PostgreSQL 服务,编辑 pg_hba.conf 文件,将目标用户的认证方法临时改为 trust,然后重启服务,使用 psql -U postgres 连接后执行 ALTER USER user1 WITH PASSWORD 'newpassword';,最后恢复 pg_hba.conf 的原始配置并重启服务,若无法停止服务,可通过 pg_shadow 表查看密码哈希(需超级用户权限),但直接修改密码更高效。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/470735.html<

(0)
运维的头像运维
上一篇2025-11-16 06:21
下一篇 2025-11-16 06:26

相关推荐

  • WordPress如何开启他人注册功能?

    要让访客能够在WordPress网站上注册账户,需要通过一系列设置和配置来实现,以下是详细的操作步骤和注意事项,帮助您完成WordPress用户注册功能的开启与管理,启用WordPress自带注册功能WordPress默认自带用户注册功能,但需要手动启用,首先登录WordPress后台,进入“设置”>“常……

    2025-11-20
    0
  • Serv-U FTP命令有哪些常用操作?

    Serv-U FTP 是一款功能强大的 FTP 服务器软件,支持多种 FTP 命令,用户可以通过命令行或客户端工具与服务器进行交互,实现文件上传、下载、目录管理等操作,以下是 Serv-U FTP 常用命令的详细介绍及使用方法,帮助用户更好地掌握 FTP 服务的操作技巧,连接与登录相关命令在使用 Serv-U……

    2025-11-16
    0
  • MySQL 客户端命令有哪些常用操作?

    MySQL 客户端命令是数据库管理员和开发人员与 MySQL 数据库交互的核心工具,通过命令行界面可以高效地执行数据库操作、管理数据以及进行系统维护,以下是常用 MySQL 客户端命令的详细介绍,涵盖连接、数据库操作、表管理、数据查询与维护等核心功能,连接与退出 MySQL 服务器要使用 MySQL 客户端,首……

    2025-11-15
    0
  • Informix招聘要求有哪些?

    Informix招聘在当前信息技术领域中占据着重要地位,随着企业对数据管理需求的不断提升,掌握Informix技术的专业人才备受青睐,Informix作为IBM旗下的知名关系型数据库管理系统,以其高性能、高可靠性和灵活性广泛应用于金融、电信、政府、制造等多个关键行业,企业在招聘Informix相关岗位时,通常需……

    2025-11-15
    0
  • MySQL命令行工具有哪些核心操作?

    MySQL命令行工具是数据库管理员和开发人员日常工作中不可或缺的强大工具,它提供了直接与MySQL服务器交互的方式,通过简单的命令即可完成数据库的创建、表的管理、数据的查询与修改等复杂操作,与图形化界面工具相比,命令行工具具有轻量化、高效、跨平台以及脚本化自动化等优势,尤其适用于服务器环境或需要批量处理任务的场……

    2025-11-13
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注