PostgreSQL学习笔记(一):PostgreSQL介绍和安装

目录

概念

PostgreSQL简介

PostgreSQL的关键特性

[1. 标准兼容性](#1. 标准兼容性)

[2. 扩展性](#2. 扩展性)

[3. 数据完整性和可靠性](#3. 数据完整性和可靠性)

[4. 丰富的数据类型](#4. 丰富的数据类型)

[5. 查询能力](#5. 查询能力)

[6. 事务和并发控制](#6. 事务和并发控制)

[7. 扩展和插件](#7. 扩展和插件)

[8. 跨平台和多语言支持](#8. 跨平台和多语言支持)

[9. 高可用性和扩展性](#9. 高可用性和扩展性)

常用场景

安装

[Linux apt安装](#Linux apt安装)

下载安装包安装

客户端


概念

PostgreSQL简介

PostgreSQL(简称Postgres:PostgreSQL: Documentation)是一款功能强大的开源关系型数据库管理系统 (RDBMS),以其稳定性、可扩展性、合规性以及强大的功能支持而闻名。它被设计为支持复杂的应用程序和大规模的并发数据处理,同时还拥有对标准SQL的高支持度,并提供了许多高级功能。

PostgreSQL的关键特性

1. 标准兼容性
  • PostgreSQL 完全支持 SQL 标准(如 SQL:2011)的大部分功能。
  • 提供高级查询功能,如窗口函数、公共表表达式(CTE)、递归查询、部分索引和多种连接类型。
2. 扩展性
  • 用户定义类型:允许用户创建自己的数据类型。
  • 扩展机制 :可以动态加载插件(如 PostGIS,支持地理空间数据)。
  • 支持存储过程和函数,允许使用多种语言编写,如 PL/pgSQL、Python、Perl 和 JavaScript。
3. 数据完整性和可靠性
  • 强大的事务支持,完全遵循 ACID(原子性、一致性、隔离性和持久性)属性。
  • 支持多版本并发控制(MVCC),避免锁竞争,提高并发性能。
  • 提供完整的数据完整性约束,包括主键、外键、唯一性约束和检查约束。
4. 丰富的数据类型
  • 基本类型INTEGERNUMERICTEXTVARCHAR 等。
  • 高级类型JSON/JSONBARRAY(数组类型)、HSTORE(键值存储)。
  • 地理类型 :通过 PostGIS 扩展支持地理空间数据。
  • 复合类型:可以在表中存储结构化的复杂数据类型。
  • 范围类型:支持存储区间值(如日期范围、数字范围)。
5. 查询能力
  • 高级查询支持:
    • 窗口函数:对分组数据执行排名、移动平均等计算。
    • 递归查询:支持层次结构数据(如树形数据)的操作。
    • 全文检索:提供高效的全文索引和搜索功能。
  • 支持多种索引:B-Tree、GIN(Generalized Inverted Index)、GiST(Generalized Search Tree)、Hash 等。
6. 事务和并发控制
  • 支持 Savepoint(保存点)和嵌套事务。
  • 基于 MVCC 的并发控制,支持高性能并发访问。
  • 提供多种隔离级别(READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSERIALIZABLE)。
7. 扩展和插件
  • 支持动态加载模块,如 PostGISCitus(分布式数据库解决方案)、pglogical(逻辑复制插件)等。
  • 用户可以创建自定义函数、运算符、数据类型和索引方法。
8. 跨平台和多语言支持
  • 可运行于主流操作系统(Linux、Windows、macOS 和 UNIX 系统)。
  • 支持的客户端语言包括:Python(通过 Psycopg2)、Java(通过 JDBC)、Node.js、C/C++ 等。
9. 高可用性和扩展性
  • 流复制:支持主从复制(同步和异步复制)。
  • 逻辑复制:支持以行粒度进行数据复制,可用于表级别的数据同步。
  • 分区表:高效管理和查询大规模数据。
  • 分布式解决方案:通过扩展(如 Citus)实现分布式数据库功能。

常用场景

  • 传统关系型数据库

    适用于电子商务、ERP、CRM 等需要强大事务支持的场景。

  • 地理信息系统(GIS)

    结合 PostGIS 扩展,用于空间数据存储和分析。

  • 数据仓库

    使用分区表、并行查询和高级索引,适合 OLAP(联机分析处理)场景。

  • 时序数据存储

    与 TimescaleDB 结合,用于物联网、监控数据等。

  • JSON 数据存储

    支持 JSON 和 JSONB,适合存储半结构化数据。

安装

Linux apt安装

bash 复制代码
sudo apt update
sudo apt install postgresql postgresql-contrib

安装完毕后,系统会创建一个数据库超级用户 postgres,密码为空。

bash 复制代码
//切换postgres用户:
#  sudo -i -u postgres

//这时使用以下命令进入 postgres,输出以下信息,说明安装成功:
~$ psql
psql (9.5.17)
Type "help" for help.

postgres=# 

//输入以下命令退出 PostgreSQL 提示符:
\q

PostgreSQL服务管理:

bash 复制代码
sudo /etc/init.d/postgresql start   # 开启
sudo /etc/init.d/postgresql stop    # 关闭
sudo /etc/init.d/postgresql restart # 重启

下载安装包安装

下载地址:EDB: Open-Source, Enterprise Postgres Database Management

安装完之后可以通过\du查看系统中默认的用户:

客户端

PostgreSQL也提供了客户端工具方便连接服务器,相比于命令行可以更方便进行一些数据库操作,这里介绍一个常用的客户端工具pgAdmin****。

网关下载安装:pgAdmin - PostgreSQL Tools

添加server:

基于界面可以进行查询、更细和删除等操作,可mysql的客户端类似:

相关推荐
Galloping-Vijay1 天前
Claude Code 使用笔记
笔记
旖旎夜光1 天前
多态(11)(下)
c++·学习
极市平台1 天前
骁龙大赛-技术分享第5期(上)
人工智能·经验分享·笔记·后端·个人开发
聊天QQ:4877392781 天前
永磁同步电机双矢量MPC模型预测电流控制探秘
postgresql
全栈陈序员1 天前
【Python】基础语法入门(十七)——文件操作与数据持久化:安全读写本地数据
开发语言·人工智能·python·学习
啄缘之间1 天前
11. UVM Test [uvm_test]
经验分享·笔记·学习·uvm·总结
RisunJan1 天前
【行测】类比推理-自称他称全同
学习
wan55cn@126.com1 天前
人类文明可通过技术手段(如加强航天器防护、改进电网设计)缓解地球两极反转带来的影响
人工智能·笔记·搜索引擎·百度·微信
石像鬼₧魂石1 天前
Termux ↔ Windows 靶机 反向连接实操命令清单
linux·windows·学习
非凡ghost1 天前
JRiver Media Center(媒体管理软件)
android·学习·智能手机·媒体·软件需求