前言

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;清理和优化表空间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/915912.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915912.shtml
英文地址,请注明出处:http://en.pswp.cn/news/915912.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java日志按天切分方法

使用 Logrotate(推荐)Logrotate 是 Linux 系统自带的日志管理工具,支持自动切割、压缩和删除旧日志。步骤:创建 Logrotate 配置文件在 /etc/logrotate.d/ 下新建配置文件(如 java-app):sudo nan…

进阶向:基于Python的本地文件内容搜索工具

概述 大家好!今天我们将一起学习如何用Python创建一个简单但强大的本地文件内容搜索工具。这个工具特别适合处理大量文本文件时的快速检索需求。 为什么要学习这个工具 如果你刚接触编程,完全不用担心!我会从零开始讲解,确保每…

多模态AI的可解释性

多模态AI的可解释性挑战 在深入探讨解决方案之前,首先需要精确地定义问题。多模态模型因其固有的复杂性,其内部决策过程对于人类观察者而言是不透明的。 模态融合机制 (Modal Fusion Mechanism):模型必须将来自不同来源(如图像和文…

MySQL深度理解-MySQL事务优化

1.什么是事务事务就是进行多个操作,要么同时执行成功,要么同时执行失败。2.事务的特性 - ACID特性2.1原子性Atomicity原子性(Atomicity):当前事务的操作要么同时成功,要么同时失败。原子性由undo log日志来…

2025小学所有学习科目的全部版本电子教材

2025春小学最新课本-新版电子教材【文末自行获取全部资料~】 小学语文: 小学数学: 小学英语: 小学科学: 小学道德与法治: 小学劳动技术: 小学美术: 小学书法练习指导: 小学体育与健康…

华为视觉算法面试30问全景精解

华为视觉算法面试30问全景精解 ——技术引领 工程极致 智能未来:华为视觉算法面试核心考点全览 前言 华为作为全球领先的ICT(信息与通信技术)解决方案供应商,在智能终端、云计算、智慧城市、自动驾驶、工业互联网等领域持续推动视觉AI的创新与产业落地。华为视觉算法岗…

【Anaconda】Conda 虚拟环境打包迁移教程

Conda 虚拟环境打包迁移教程本文介绍如何使用 conda-pack 将 Conda 虚拟环境打包,并在另一台电脑上快速迁移、部署。0. 安装 conda-pack conda-pack 并非 Conda 默认自带工具,首次使用前必须手动安装。以下两种安装方式任选其一即可: ✅ 方法…

matrix-breakout-2-morpheus靶机通关教程

目录 一、信息搜集 二、尝试GetShell 三、反弹Shell 一、信息搜集 首先搜集信息,观察页面。 发现什么都没有,我们先来发现一下它的IP以及开放的端口。首先我们观察一下它的网络模式是怎么样的,来确定IP段。 可以发现他是NAT模式&#xff0…

深入思考【九九八十一难】的意义,试用歌曲能否解释

1. 《平凡之路》- 朴树契合点:前半生追求明白:“我曾经失落失望失掉所有方向,直到看见平凡才是唯一的答案”。后半生修行糊涂:“时间无言,如此这般,明天已在眼前”。对过去的释然与对未来的随缘&#xff0c…

SSM之表现层数据封装-统一响应格式全局异常处理

SSM之表现层数据封装-统一响应格式&全局异常处理一、为什么需要表现层数据封装?二、表现层数据封装的通用格式成功响应示例失败响应示例三、SSM中实现统一响应对象3.1 定义响应对象类(Result.java)四、全局异常处理4.1 实现全局异常处理器…

微软Fabric重塑数据管理:Forrester报告揭示高ROI

在数字化转型加速的今天,微软公司推出的Microsoft Fabric数据管理平台正以其卓越的经济效益和全面的技术能力引领行业变革。根据Forrester Consulting最新发布的总体经济影响(TEI)研究报告,该平台展现出令人瞩目的商业价值:实现379%的投资回报…

基于Qt和OpenCV的图片与视频编辑器

应用技术:Qt C、OpenCV、多线程、单例模式,qss样式表、OpenGL、ffmpeg。 本项目为Qt mingw6.5.3版本,QtCreator编写运行。 void XVideoWidget::do_setImage(cv::Mat mat) {QImage::Format fmt QImage::Format_RGB888;int pixSize 3;//处理…

NOTEPAD!NPCommand函数分析之comdlg32!GetSaveFileNameW--windows记事本源代码分析

第一部分:kd> kcUSER32!InternalCallWinProc USER32!UserCallDlgProcCheckWow USER32!DefDlgProcWorker USER32!SendMessageWorker USER32!InternalCreateDialog USER32!InternalDialogBox USER32!DialogBoxIndirectParamAorW USER32!DialogBoxIndirectParamW US…

【Qt开发】信号与槽(一)

目录 1 -> 信号和槽概述 1.1 -> 信号的本质 1.2 -> 槽的本质 2 -> 信号与槽的连接方式 2.1 -> 一对一 2.2 -> 一对多 2.3 -> 多对一 3 -> 小结 1 -> 信号和槽概述 在 Qt 中,用户和控件的每次交互过程称为一个事件。比如 “用户…

目标检测中的标签分配算法总结

目标检测中的标签分配算法是训练过程中的一个核心环节,它决定了如何将标注好的真实目标框分配给模型预测出来的候选框(Anchor Boxes或Points),从而为这些候选框提供监督信号(正样本、负样本、忽略样本)。它…

图片转 PDF三个免费方法总结

📌 为什么需要图片转 PDF? 在工作和生活中,我们经常需要将多张图片整理成 PDF 文档,例如:工作资料归档, 学习笔记整理,作品集展示,便捷分享。 方法一、iLoveOFD在线工具 提供图片…

Kafka 在分布式系统中的关键特性与机制深度解析

在分布式系统架构中,消息中间件扮演着 "数据枢纽" 的核心角色,而 Kafka 凭借其卓越的性能和可靠性,成为众多企业的首选。本文将深入剖析 Kafka 在分布式环境中的核心特性与底层机制,揭示其高吞吐、高可用的底层逻辑。一…

Python实战:基于Streamlit的股票筛选系统,实时K线图+数据缓存优化

基于 Streamlit 构建的股票筛选分析工具,整合了 Tushare 接口获取股票数据,并通过交互式界面实现股票筛选、信息展示和 K 线图分析。以下是深度解读:一、代码结构概览依赖库导入import streamlit as st import tushare as ts import pandas a…

网络安全威胁和防御措施

网络安全基础概念网络安全指保护网络系统及其数据免受未经授权的访问、破坏或泄露。涵盖硬件、软件、数据及服务的安全防护,涉及技术、管理和法律等多层面措施。常见网络安全威胁恶意软件:病毒、蠕虫、勒索软件等通过漏洞感染系统。网络钓鱼:…

Spring DeferredResult 实现长轮询

1、背景 在项目开发中,有一个流程性的方法执行,这个方法会调用各种方法,可能会导致时间比较长 ,如果一直等待响应结果的话,可能会造成超时,如果直接使用异步的方式的话,前端无法知道整体流程什…