PostgreSQL入门

作者:灰太狼大王🍂 发布时间: 2026-06-04 阅读量:29 评论数:0

一. PostgreSQL介绍

PostgreSQL是一款功能强大的开源关系型数据库,遵循BSD许可证,底层基于C语言实现

PostgreSQL支持丰富的数据类型,具有强大的并发控制,社区特别活跃,适合各种规模的应用需求

由于PostgreSQL支持二次封装。目前国内许多数据库基于PostgreSQL进行封装,如华为的GaussDB,阿里的PolarDB For PostgreSQL等

PostgreSQL的开源协议和Linux内核版本的开源协议一致

由于PostgreSQL开源,因此衍生出许多数据迁移工具,可以快速的从MySQL,SQLServer,Oracle平滑迁移到PostgreSQL中

二. PostgreSQL和MySQL的区别

MySQL不支持的内容:

  • 不支持序列概念

  • 性能优化监控工具少,定位问题的成本较高

  • MySQL基于GPL开源协议,对商业闭源应用有限制

  • 复杂查询能力较弱

PostgreSQL相对MySQL上述问题特点:

  • 极其丰富的数据类型

  • PostgreSQL存在序列概念

  • 具有极其丰富的插件

  • 支持主从复制的同步行为,可以实现数据的0丢失

  • PostgreSQL的MVCC实现和MySQL不同,PostgreSQL的一行数据可存储多个版本,每个事务版本拥有独立的事务ID,理论空间约为42亿

三. PostgreSQL的安装

基于Ubuntu 24.04安装

方式一:基于官网方式进行安装

进入PostgreSQL下载页面,选择Linux,选择Ubuntu发行版,根据官方网站方式进行下载

1.webp

方式二:手动配置仓库进行安装

导入存储库密钥

sudo apt install curl ca-certificates
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc

创建源文件

# 使用vim命令创建源文件
# vim /etc/apt/sources.list.d/pgdg.sources
Types: deb deb-src
URIs: https://apt.postgresql.org/pub/repos/apt
Suites: noble-pgdg
Architectures: amd64
Components: main
Signed-By: /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc

安装PostgreSQL

sudo apt update
# 根据所需更换18为所需版本
sudo apt install postgresql-18

Tips:以上方式为通过PostgreSQL官方地址安装,受网络影响

四. PostgreSQL的配置

连接配置

PostgreSQL默认和MySQL一样,不支持远程连接,需修改配置文件

修改配置文件,切记重启服务

# postgresql.conf
# - Connection Settings -

# 修改监听地址为'*'
listen_addresses = '*'
					# comma-separated list of addresses;
					# defaults to 'localhost'; use '*' for all
					# (change requires restart)

日志配置

五. PostgreSQL的基本使用

构建用户

# 构建超级管理用户
# CREATE USER默认具有登录权限
CREATE USER 名称 WITH SUPERUSER PASSWORD '密码';
CREATE ROLE 名称 WITH SUPERUSER PASSWORD '密码';

Schema模式

数据库中的文件夹或命令空间

权限管理的基本单位

防止对象名称冲突的隔离层

一个数据库可存在多个模式,每个模式可存在独立的表,视图,索引和触发器等,权限颗粒度比MySQL更细一些

语法

-- 构建Schema模式,默认所有者为当前用户
CREATE SCHEMA Schema模式名;
-- 构建Schema模式,指定所有者
CREATE SCHEMA Schema模式名 AUTHORIZATION 所有者用户;
-- 修改Schema模式名
ALTER SCHEMA 旧Schema模式名 RENAME TO 新Schema模式名;
-- 修改Schema模式的所有者
ALTER SCHEMA Schema模式名 OWNER TO 所有者用户;
-- 删除空的Schema模式
DROP SCHEMA Schema模式名;
-- 强制删除Schema模式及其所有对象
DROP SCHEMA Schema模式名 CASCADE;

评论