Skip to content

PostgreSQL 教程

PostgreSQL 是世界上最先进的开源关系型数据库管理系统,以其强大的功能、出色的性能和可靠性著称。

什么是 PostgreSQL

PostgreSQL(简称 Postgres)是一个功能强大的开源对象关系型数据库系统,具有超过35年的活跃开发历史。它以可靠性、功能健壮性和性能著称。

PostgreSQL 的特点

  • 完全的 ACID 合规:支持完整的事务特性
  • 丰富的数据类型:支持 JSON、数组、几何类型等
  • 强大的扩展性:支持自定义类型、函数、操作符
  • 高级索引:支持 B-tree、Hash、GiST、GIN 等多种索引
  • 并发控制:MVCC(多版本并发控制)机制
  • 全文搜索:内置全文搜索引擎
  • 地理信息:PostGIS 扩展支持地理空间数据

PostgreSQL vs MySQL

特性PostgreSQLMySQL
类型对象关系型关系型
ACID完全支持完全支持
JSON支持原生JSON/JSONBJSON支持
全文搜索内置需要引擎支持
窗口函数完整支持8.0+支持
扩展性极强一般
复杂查询优秀良好
适用场景复杂业务、数据分析Web应用、简单业务

学习路径

本教程按照从入门到进阶的顺序组织,建议按以下路径学习:

第一阶段:基础入门

  1. 入门介绍 - 了解PostgreSQL的基本概念、安装配置
  2. 数据库操作 - 学习数据库的创建和管理
  3. 数据类型 - 掌握PostgreSQL丰富的数据类型
  4. 表操作 - 学习表的创建、修改和删除
  5. 数据操作 - 掌握数据的增删改查

第二阶段:进阶技能

  1. 查询进阶 - 学习复杂查询、子查询、CTE
  2. 多表查询 - 掌握各种连接查询
  3. 索引 - 学习索引的类型和优化
  4. 视图 - 掌握视图的创建和使用

第三阶段:高级特性

  1. 函数 - 学习自定义函数
  2. 存储过程 - 掌握存储过程的编写
  3. 触发器 - 学习触发器的使用
  4. 事务 - 掌握事务和并发控制

第四阶段:运维管理

  1. 用户权限 - 学习用户和权限管理
  2. 备份恢复 - 掌握数据备份和恢复
  3. 性能优化 - 学习查询优化和调优

快速体验

sql
-- 连接PostgreSQL后,快速体验基本操作

-- 1. 创建数据库
CREATE DATABASE mydb;

-- 2. 连接到数据库
\c mydb

-- 3. 创建表
CREATE TABLE users (
    id SERIAL PRIMARY KEY,        -- 自增主键
    name VARCHAR(50) NOT NULL,    -- 姓名,不能为空
    email VARCHAR(100) UNIQUE,    -- 邮箱,唯一
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP  -- 创建时间
);

-- 4. 插入数据
INSERT INTO users (name, email) VALUES 
    ('张三', 'zhangsan@example.com'),
    ('李四', 'lisi@example.com');

-- 5. 查询数据
SELECT * FROM users;

-- 6. 更新数据
UPDATE users SET name = '张三丰' WHERE name = '张三';

-- 7. 删除数据
DELETE FROM users WHERE name = '李四';

适用人群

本教程适合以下人群:

  • 后端开发工程师:需要使用PostgreSQL进行数据存储
  • 全栈开发工程师:希望掌握关系型数据库技术
  • 数据库管理员:需要管理PostgreSQL数据库
  • 数据分析师:需要处理和分析数据
  • 学生和初学者:希望学习数据库技术

前置知识

学习本教程前,建议具备以下基础知识:

  • 基本的计算机操作能力
  • 了解SQL基本概念(可选)
  • 简单的命令行操作(可选)

章节目录

章节内容
入门介绍PostgreSQL概念、安装配置、基本操作
数据库操作数据库的创建、切换、删除
数据类型数值、字符串、日期、JSON等类型
表操作表的创建、约束、修改、删除
数据操作数据的插入、查询、更新、删除
查询进阶条件查询、聚合、子查询、CTE
多表查询内连接、外连接、交叉连接
索引索引类型、创建管理、执行计划
视图视图创建、物化视图
函数内置函数、自定义函数
存储过程存储过程的创建和调用
触发器触发器的创建和管理
事务事务ACID、隔离级别、锁机制
用户权限用户管理、角色权限
备份恢复pg_dump、pg_restore、导入导出
性能优化查询优化、索引优化、配置调优

准备好了吗?让我们从入门介绍开始你的PostgreSQL学习之旅!