前言
PostgreSQL 是一个功能强大的开源关系型数据库管理系统(ORDBMS),以下是对它的全面介绍:
基本概况
-
名称:通常简称为 "Postgres"
-
类型:对象-关系型数据库管理系统
-
许可:开源,采用类MIT许可证
-
首次发布:1996年(起源于1986年的POSTGRES项目)
-
最新版本:PostgreSQL 16(截至2023年9月发布)
核心特性
-
标准兼容性
-
完全符合ACID(原子性、一致性、隔离性、持久性)
-
高度兼容SQL标准
-
-
高级功能
-
复杂查询
-
外键
-
触发器
-
可更新视图
-
事务完整性
-
多版本并发控制(MVCC)
-
-
扩展性
-
支持自定义数据类型
-
自定义函数
-
使用不同编程语言编写代码(如PL/pgSQL, PL/Python, PL/Perl等)
-
-
数据完整性
-
主键
-
外键
-
排他约束
-
显式锁定
-
咨询锁定
-
技术优势
-
可扩展架构:允许添加新功能而不影响核心系统
-
丰富的数据类型:包括原生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 版本情况对比:
版本 | 发布时间 | 支持状态 | 主要特性亮点 | 停止支持时间 |
---|---|---|---|---|
17 | 2024-09 | 活跃支持 | VACUUM优化(tid store)、WAL写入2倍提升、逻辑复制故障转移、JSON_TABLE() | ~2029 |
16 | 2023-09 | 安全维护 | 并行逻辑复制、pg_stat_io监控、ICU排序增强 | ~2028 |
15 | 2022-10 | 安全维护 | MERGE命令、Zstd压缩、逻辑复制权限细化 | ~2027 |
14 | 2021-09 | 安全维护 | 长事务性能优化、JSONB下标访问、扩展管理改进 | ~2026 |
13 | 2020-09 | EOL(已终止) | 索引优化(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.5 | 2025年6月30日 | PostgreSQL 14~18 | 支持 PG18 新特性,优化查询计划可视化 | 活跃支持 |
v9.4 | 2025年5月29日 | PostgreSQL 13~17 | 修复 JSON 编辑器性能问题 | 安全维护 |
v9.3 | 2025年4月30日 | PostgreSQL 12~17 | 新增 OAuth2 认证支持 | 安全维护 |
v8.14 | 2024年12月12日 | PostgreSQL 11~16 | 增强 Schema Diff 工具 | 安全维护 |
v7.8 | 2023年10月19日 | PostgreSQL 10~15 | 修复高并发连接崩溃问题 | 已停止维护 |
v6.21 | 2023年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; | 清理和优化表空间 |