2025年PostgreSQL 详细安装教程(windows)
前言
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 版本情况对比:
⚠ 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 兼容性对照表
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
\\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;
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;