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

相关推荐
Wilber的技术分享32 分钟前
【机器学习实战笔记 14】集成学习:XGBoost算法(一) 原理简介与快速应用
人工智能·笔记·算法·随机森林·机器学习·集成学习·xgboost
The_cute_cat1 小时前
Ajax和Axios的初步学习
前端·学习·ajax
amazinging1 小时前
北京-4年功能测试2年空窗-报培训班学测开-第四十三天
python·学习
V我五十买鸡腿2 小时前
顺序栈和链式栈
c语言·数据结构·笔记·算法
祁思妙想2 小时前
八股学习(五)---MySQL
学习
虾球xz2 小时前
CppCon 2018 学习:THE MOST VALUABLE VALUES
开发语言·c++·学习
麟城Lincoln3 小时前
【RHCSA-Linux考试题目笔记(自用)】servera的题目
linux·笔记·考试·rhcsa
丰锋ff3 小时前
计网学习笔记第2章 物理层(灰灰题库)
笔记·学习
Chef_Chen4 小时前
从0开始学习R语言--Day39--Spearman 秩相关
开发语言·学习·r语言
阿絮~5 小时前
Apache RocketMQ进阶之路阅读笔记和疑问
笔记·apache·rocketmq