当前位置: 首页 > article >正文

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

目录

概念

PostgreSQL简介

PostgreSQL的关键特性

1. 标准兼容性

2. 扩展性

3. 数据完整性和可靠性

4. 丰富的数据类型

5. 查询能力

6. 事务和并发控制

7. 扩展和插件

8. 跨平台和多语言支持

9. 高可用性和扩展性

常用场景

安装

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安装

sudo apt update
sudo apt install postgresql postgresql-contrib

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

//切换postgres用户:
#  sudo -i -u postgres

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

postgres=# 

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

PostgreSQL服务管理:

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的客户端类似:


http://www.kler.cn/a/466155.html

相关文章:

  • 关于 webservice 日志中 源IP是node IP的问题,是否能解决换成 真实的客户端IP呢
  • ARM CCA机密计算安全模型之加密建议
  • CSS3——3. 书写格式二
  • Tailwind CSS 使用简介
  • ESP32自动下载电路分享
  • Jellyfin播放卡顿,占CPU的解决方法
  • leetcode 624. 数组列表中的最大距离
  • 机器人对物体重定向操作的发展简述
  • 无人机+无人车+无人船:海空地协同解决方案技术详解
  • Mac Android Studio 提升Mac的编译速度
  • 如何使用Python调用淘宝api接口获取商品详情信息?
  • 腾讯 HunyuanVideo 上线,自定义文本生成视频
  • Python(四)——SVG 图坐标轴数字和其他文本设置总结
  • Mac设置默认打开程序
  • 学生心理咨询评估系统(源码+数据库+文档)
  • 【LC】191. 位1的个数
  • Python Notes 1 - introduction with the OpenAI API Development
  • PyTorch快速入门教程【小土堆】之完整模型训练套路
  • gin集成Swagger
  • DjangoORM字段参数、常用字段类型及参数、模型和表单验证器详解
  • 三格电子新品上市——IEC103 转 ModbusTCP 网关
  • Redis - 7 ( 11000 字 Redis 入门级教程 )
  • springBoot集成netty中登录鉴权、在pieline消息传递
  • df.groupby(pd.Grouper(level=1)).sum()
  • 解决 `pnpm install` 出现 `ERR_PNPM_ENOENT` 错误的方法
  • 【前端】掌握 JavaScript Map:从入门到精通