2025年PostgreSQL 详细安装教程(windows)

2025年PostgreSQL 详细安装教程(windows)

前言

PostgreSQL 是一个功能强大的开源关系型数据库管理系统(ORDBMS),以下是对它的全面介绍:

基本概况

  • 名称:通常简称为 "Postgres"
  • 类型:对象-关系型数据库管理系统
  • 许可:开源,采用类MIT许可证
  • 首次发布:1996年(起源于1986年的POSTGRES项目)
  • 最新版本:PostgreSQL 16(截至2023年9月发布)

核心特性

  1. 标准兼容性
    • 完全符合ACID(原子性、一致性、隔离性、持久性)
    • 高度兼容SQL标准
  2. 高级功能
    • 复杂查询
    • 外键
    • 触发器
    • 可更新视图
    • 事务完整性
    • 多版本并发控制(MVCC)
  3. 扩展性
    • 支持自定义数据类型
    • 自定义函数
    • 使用不同编程语言编写代码(如PL/pgSQL, PL/Python, PL/Perl等)
  4. 数据完整性
    • 主键
    • 外键
    • 排他约束
    • 显式锁定
    • 咨询锁定

技术优势

  • 可扩展架构:允许添加新功能而不影响核心系统
  • 丰富的数据类型:包括原生JSON/JSONB支持、几何图形、网络地址等
  • 强大的索引支持:B-tree、哈希、GiST、SP-GiST、GIN和BRIN索引
  • 全功能SQL实现:包括复杂子查询、窗口函数、公共表表达式(CTE)
  • 并发控制:多版本并发控制(MVCC)实现高效读写并发

应用场景

PostgreSQL适用于各种应用场景,包括:

  • Web应用程序
  • 地理信息系统(GIS)
  • 科学数据分析
  • 金融系统
  • 物联网(IoT)应用
  • 内容管理系统

生态系统

PostgreSQL拥有丰富的扩展生态系统,包括:

  • PostGIS(地理空间数据库扩展)
  • pgAdmin(图形化管理工具)
  • 多种连接池解决方案
  • 多种复制和集群解决方案

PostgreSQL以其稳定性、功能丰富性和标准合规性,成为企业级应用和关键任务系统的理想选择。

一、PostgreSQL 安装

1、下载官网:EDB:开源企业 Postgres 数据库管理

2、根据不同的操作系统选择对应的安装包进行下载,以下是各个版本的情况说明:

PostgreSQL 版本情况对比:

版本发布时间支持状态主要特性亮点停止支持时间
172024-09活跃支持VACUUM优化(tid store)、WAL写入2倍提升、逻辑复制故障转移、JSON_TABLE()~2029
162023-09安全维护并行逻辑复制、pg_stat_io监控、ICU排序增强~2028
152022-10安全维护MERGE命令、Zstd压缩、逻辑复制权限细化~2027
142021-09安全维护长事务性能优化、JSONB下标访问、扩展管理改进~2026
132020-09EOL(已终止)索引优化(B树去重)、并行VACUUM、增量排序

⚠ EOL(已终止):表示版本不再接收安全更新,建议尽快升级。

3、这里我选择的是 15.13版本的windows x86-64安装包

4、双击安装

5、点击  Next       

6、选择数据库安装目录

7、四个默认全选,点击下一步。

8、数据库存储路径(默认就好),点击下一步。

9、对数据库进行用户密码设置,完成后点击 Next。

10、PostgreSQL的默认端口号:5432,直接点击下一步 Next。

11、选择语言,选择简体中文,点击Next。(推荐默认语言最好)

12、这里将预览文件路径及数据库信息,直接点击下一步。

13、点击下一步,开始安装。

14、取消勾选Stack Builder,然后点击Finish关闭窗口。

 二、配置环境变量 

验证: psql --version

 三、下载PostgreSQL 数据库管理工具

1、pgAdmin官网下载:下载

 2、我选择下载了9.4版本,需要下载什么版本请按照对照表选择自己适合的。

 

3、pgAdmin 4 各版本与 PostgreSQL 兼容性对照表

版本发布日期兼容的 PostgreSQL 版本核心改进与特性支持状态
v9.52025年6月30日PostgreSQL 14~18支持 PG18 新特性,优化查询计划可视化活跃支持
v9.42025年5月29日PostgreSQL 13~17修复 JSON 编辑器性能问题安全维护
v9.32025年4月30日PostgreSQL 12~17新增 OAuth2 认证支持安全维护
v8.142024年12月12日PostgreSQL 11~16增强 Schema Diff 工具安全维护
v7.82023年10月19日PostgreSQL 10~15修复高并发连接崩溃问题已停止维护
v6.212023年3月9日PostgreSQL 9.6~14最后支持 Python 2 的版本已停

4、下载完成之后进行双击

5、点击install for me only,看个人需求,也可以给所有用户安装。

 6、点击Next。

7、接受许可,点击Next。

8、选择安装路径

 9、点击Next。

10、点击install

11、点击完成

四、使用pgAdmin4

1、应用搜索pgAdmin4。

2、稍等1~2分钟

3、设置中文界面

完成

4、连接到 PostgreSQL 数据库服务器,双击Servers 输入安装数据库时的密码进行连接。

 

5、连接成功。

五、PostgreSQL 常用命令速查表

类别命令说明
数据库连接psql -U username -d dbname -h host -p port连接到指定数据库(示例:psql -U postgres -d mydb -h localhost -p 5432
\c dbname切换数据库(在psql中)
信息查询\l列出所有数据库
\dt列出当前数据库的所有表
\d+ tablename查看表结构(含索引、约束等详细信息)
\du列出所有用户/角色
数据库操作CREATE DATABASE dbname;创建数据库
DROP DATABASE dbname;删除数据库
表操作CREATE TABLE tablename (id SERIAL PRIMARY KEY, name VARCHAR(50));创建表(示例)
ALTER TABLE tablename ADD COLUMN columnname datatype;添加列
DROP TABLE tablename;删除表
数据操作INSERT INTO tablename (col1, col2) VALUES (val1, val2);插入数据
UPDATE tablename SET col1=val1 WHERE condition;更新数据
DELETE FROM tablename WHERE condition;删除数据
SELECT * FROM tablename WHERE condition;查询数据(支持复杂JOIN、GROUP BY等)
索引管理CREATE INDEX idx_name ON tablename (column);创建索引
DROP INDEX idx_name;删除索引
用户权限CREATE USER username WITH PASSWORD 'password';创建用户
GRANT ALL PRIVILEGES ON DATABASE dbname TO username;授予数据库权限
REVOKE privilege ON tablename FROM username;撤销权限
备份恢复pg_dump -U username -d dbname -f backup.sql备份数据库到文件
psql -U username -d dbname -f backup.sql从文件恢复数据库
事务控制BEGIN;开始事务
COMMIT;提交事务
ROLLBACK;回滚事务
性能分析EXPLAIN ANALYZE SELECT * FROM tablename;分析查询执行计划
VACUUM (VERBOSE, ANALYZE) tablename;清理和优化表空间

Read more

MySQL 高频面试题(由浅到深 完整版,面试必背)

MySQL 高频面试题(由浅到深 完整版,面试必背)

一、基础核心篇(初级 / 中级必问,重中之重,面试保底分,占比 40%) 1. MySQL 是什么?核心特点有哪些?         答案要点 MySQL 是一款开源的关系型数据库(RDBMS),基于 SQL 语言,主打轻量、高性能、高可用、易部署,是互联网行业首选的数据库(电商、金融、社交等 90% 以上业务都在用)。核心特点: 1. 支持关系型数据库特性:ACID 事务、外键、约束、多表关联查询。 2. 高性能:底层优化优秀,支持海量数据存储,单表千万级数据查询依然高效。 3. 多存储引擎:支持插件式引擎,最常用 InnoDB(默认)、MyISAM。 4.

By Ne0inhk
运维效率翻倍!Ansible 批量部署 Nginx 的实战心得

运维效率翻倍!Ansible 批量部署 Nginx 的实战心得

前言 作为一名常年和服务器打交道的运维人员,我曾无数次被批量部署软件的工作折磨得焦头烂额。上百台服务器,手动逐台登录、安装、配置,不仅耗时耗力,还总免不了因为手抖输错命令,导致某几台机器的配置出问题,后续排查又要花费大把时间。直到接触并用上 Ansible,才真正体会到 “解放双手” 的滋味。 用 Ansible 最大的感受就是省心,它不用在目标服务器装额外的代理程序,靠 SSH 就能通信,上手也快,写好一次 Playbook,不管是几十台还是上百台服务器,一条命令就能完成标准化部署,而且重复执行也不会出问题,完美解决了手动操作的一致性难题。还有一次假期,公司临时要给内网服务器部署 Nginx,我本以为得赶回公司,结果用 cpolar 做了内网穿透,在家就能远程用 Ansible 完成部署,那一刻真的觉得选对工具太重要了。 好东西当然要和同行们分享,下面就把这套用 Ansible 自动化部署 Nginx 的完整流程整理出来,从 Ansible 安装到借助

By Ne0inhk
【MySQL】数据库表的操作

【MySQL】数据库表的操作

MySQL数据库表的操作 * MySQL表的操作 * github地址 * 0. 前言 * 1. 创建表 * 2. 查看表与表结构 * 查看已有表 * 查看表的具体结构 * 查看表创建时的使用的命令 * 3. 修改表 * 修改表名 * 修改表的属性 * 在表中添加列 * 在表中修改列属性 * 在表中删除列 * 修改表的列名 * 4. 删除表 * 用法 * 注意与危害 * 🧨 一、数据不可恢复 * ⚙️ 二、表结构丢失 * 💣 三、可能导致依赖关系破坏 * 🕳 四、日志与恢复机制受限 * ⚡ 五、误操作风险高 * ✅ 安全建议 * 5. 结语 MySQL表的操作 github地址 有梦想的电信狗 0. 前言 在学习 MySQL 的过程中,“表”是数据库操作的核心对象。 无论是存储用户信息、记录日志、还是管理订单数据,

By Ne0inhk
Rust异步测试与调试的实践指南

Rust异步测试与调试的实践指南

Rust异步测试与调试的实践指南 一、异步测试的基础 1.1 异步测试的概念 💡异步测试是对异步代码的功能和性能进行验证的过程,确保异步操作能够正确、高效地执行。与同步测试相比,异步测试需要处理任务调度、I/O操作和资源管理等复杂问题。 在Rust中,异步测试通常使用tokio::test宏或async-std::test宏来标记测试函数,这些宏会自动创建异步运行时环境。 1.2 常用的异步测试框架 * Tokio测试框架:适用于使用Tokio异步运行时的项目,提供tokio::test宏和tokio::spawn函数。 * Async-std测试框架:适用于使用async-std异步运行时的项目,提供async-std::test宏和async-std::task::spawn函数。 * Proptest:用于属性测试,支持异步属性测试。 * Mockall:用于模拟依赖对象,支持异步模拟。 1.3 简单异步函数的测试 下面是一个简单的异步函数测试示例: // src/lib.rsusetokio::time::sleep;usestd::time::D

By Ne0inhk