Mysql不行了!!?PostgreSQL成主流!
早在 Stack Overflow 2024 年开发者调查报告中,PostgreSQL 已经取代了 MySQL 成为目前最流行的数据库,而且比例高出 MySQL 8%,差距不小。

对于专业开发者,PostgreSQL 进一步拉开了和 MySQL 的差距,高出 12%!
值得一提的是,PostgreSQL 于 2018 年首次出现在开发人员调查中,当时有 33% 的开发人员表示使用它,而当年最受欢迎的选项是 MySQL,有 59% 的开发人员使用它。六年后,49% 的开发人员使用 PostgreSQL,连续第二年成为最受欢迎的数据库。目前,官方都自称 PostgreSQL 是世界上最先进的开源关系型数据库。
那么!!!
一、什么是 PostgreSQL?
PostgreSQL (通常简称为 “Postgres”) 是一个功能强大、开源的对象-关系型数据库管理系统 (ORDBMS)。它诞生于加州大学伯克利分校,拥有超过35年的活跃开发历史,以其无与伦-比的可靠性、功能健壮性和性能而闻名。
可以把它想象成一个高度可靠且功能极其丰富的“数据仓库”。你不仅可以存储传统的文本、数字等数据,还能处理复杂的查询和存储地理位置、JSON文档等高级数据类型。最重要的是,它是完全免费和开源的。
二、核心功能与特性 (为什么它如此受欢迎?)
PostgreSQL 的强大之处在于它几十年如一日对“正确性”和“功能性”的坚持。
开源与社区驱动 (Open Source & Community-Driven)
完全免费: 你可以免费用于任何目的,无论是个人项目、商业应用还是学术研究,没有昂贵的许可证费用。
活跃的社区: 一个全球化的、充满活力的社区在不断地贡献代码、修复错误、编写文档,确保数据库的持续进步和稳定。
ACID 事务与可靠性 (ACID Compliance & Reliability)
它严格遵守 ACID 原则(原子性、一致性、隔离性、持久性)。这意味着即使在断电、系统崩溃等极端情况下,你的数据也能保持安全和一致,这对于金融、交易等关键业务至关重要。
无与伦比的可扩展性 (Extensibility)
PostgreSQL 的设计哲学就是“可扩展”。你可以自定义数据类型、函数、操作符、索引方法等。
最著名的扩展是 PostGIS,它为 PostgreSQL 增加了强大的地理空间数据支持,使其成为地理信息系统 (GIS) 领域的首选数据库。
丰富的数据类型 (Rich Data Types)
JSON/JSONB: 高效地存储和查询 JSON 文档,性能堪比专门的 NoSQL 数据库。
Array: 可以在一个字段中存储数组。
HSTORE: 键值对存储。
XML: 支持 XML 数据。
UUID: 用于存储通用唯一标识符。
除了常见的 INTEGER, TEXT, VARCHAR, TIMESTAMP 等,它还内置了许多高级数据类型:
并发控制 (Concurrency Control)
它使用 多版本并发控制 (MVCC) 机制。简单来说,读取数据的操作不会阻塞写入数据的操作,反之亦然。这使得 PostgreSQL 在高并发读写场景下表现出色,能支持大量用户同时访问。
强大的 SQL 功能 (Advanced SQL Features)
它遵循 SQL 标准,并支持许多高级 SQL 功能,如窗口函数 (Window Functions)、公共表表达式 (CTEs)、递归查询等,让复杂的数据分析和报表生成变得更简单。
强大的安全特性 (Security)
提供基于角色的访问控制 (Role-Based Access Control)、行级安全策略 (Row-Level Security)、SSL 连接加密等多种安全机制,确保数据访问的安全可控。
附带安装及使用教程!!
三、安装教程(图文教程)
PostgreSQL安装教程:
官方链接:PostgreSQL: The world’s most advanced open source database

编辑

编辑

编辑

编辑

编辑

编辑

编辑
默认端口:5432

编辑
Next…

编辑
waiting … 时间可能略久。。。

编辑
这里可以不勾选!
四、初始化PostgreSQL
打开应用:

编辑
第一次打开会提示设置密码。这个密码是pgAdmin的密码,以后连接服务器的密码需要保存,则会使用pgAdmin的密码对其加密和解密。
这里输入的密码,并不是安装过程中设置的PostgreSQL超级用户postgres的密码。

编辑
ok,连接上了。

六、基本 SQL 命令示例
我们来创建一个简单的“用户表”。
a. 创建数据库 虽然你已经连接到默认的 postgres 数据库,但通常最好为每个应用创建独立的数据库。
SQL
-- 在 psql 提示符中输入 CREATE DATABASE my_app_db; -- \q 退出 psql -- \l 查看所有数据库 -- \c my_app_db 连接到新数据库
b. 创建表 (CREATE TABLE) 连接到 my_app_db 后,我们创建一个 users 表。
SQL
CREATE TABLE users ( id SERIAL PRIMARY KEY, -- 自增主键 username VARCHAR(50) UNIQUE NOT NULL, -- 用户名,唯一且不能为空 email VARCHAR(100) UNIQUE NOT NULL, -- 邮箱,唯一且不能为空 created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP -- 创建时间,默认为当前时间 );
- SERIAL PRIMARY KEY: 一个会自动增长的整数,用作唯一标识符。
- VARCHAR(50): 最多包含50个字符的可变长度字符串。
- UNIQUE NOT NULL: 该列的值必须是唯一的,且不能为空。
- TIMESTAMP WITH TIME ZONE: 带时区的时间戳。
c. 插入数据 (INSERT) 向 users 表中添加一些记录。
SQL
INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com'), ('bob', 'bob@example.com');
d. 查询数据 (SELECT) 这是最常用的命令,用于从表中检索数据。
SQL
-- 查询所有用户的所有信息 SELECT * FROM users; -- 查询特定用户的信息 SELECT * FROM users WHERE username = 'alice'; -- 只查询用户名和邮箱 SELECT username, email FROM users;
e. 更新数据 (UPDATE) 修改已有记录。
SQL
UPDATE users SET email = 'alice_new@example.com' WHERE username = 'alice';
f. 删除数据 (DELETE) 删除记录。
SQL
DELETE FROM users WHERE username = 'bob';
总结:何时选择 PostgreSQL?
如果你的项目符合以下任何一点,PostgreSQL 都是一个绝佳的选择:
需要高度的数据完整性和可靠性 (例如:金融系统、科学研究数据)。
需要处理复杂的查询和数据分析。
需要地理空间数据功能 (使用 PostGIS)。
应用未来可能会变得复杂,需要良好的扩展性。
希望避免商业数据库的高昂成本,同时又不想牺牲功能和性能。
从苹果、Instagram 到许多初创公司和大型企业,PostgreSQL 驱动着无数的应用。它是一个你学会之后,可以在未来几十年职业生涯中都持续受益的强大工具。
一款开源高效的自由职业管理系统
没有啦 (T▽T)
延伸阅读:
Mysql不行了!!?PostgreSQL成主流!
早在 Stack Overflow 2024 年开发者调查报告中,PostgreSQL 已经取代了 MySQ...
告别复杂命令!nftables 才是 Linux 防火墙的未来
对于任何暴露在公网的 Linux 服务器而言,防火墙不是可选项,而是首要的安全防线。它就像一个数字哨兵,按照预设规则筛查...
BGP4已死?BGP4+才是下一代互联网的答案!
在广袤无垠的互联网疆域里,谁来决定数据应该往哪走?BGP4 和 BGP4+,正是这场全球网络交通调度的幕后英雄。而当 I...
DockerHub被封禁,怎么将镜像传到国内?一种简单合规的镜像同步到国内方案[最佳实践]
Docker将容器化技术普及,推动云计算向云原生的演进。Docker的核心创新技术之一是容器镜像,它是一种文件的打包方式...