都什么年代了你还不学习postgreSQL(入门篇)(上)

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB PostgreSQL 版,企业版 4核16GB
推荐场景:
HTAP混合负载
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 都什么年代了你还不学习postgreSQL(入门篇)

postgreSQL学习


一,简介

1.什么是postgresql

https://www.postgresql.org/#官网

PostgreSQL 是一个功能强大的开源对象关系数据库系统,它使用和扩展了 SQL 语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能。PostgreSQL的起源可以追溯到1986年,是加州大学伯克利分校POSTGRES项目的一部分,并且在核心平台上拥有超过35年的积极开发经验。


开源许可独特性

(Postgres遵守BSD许可证发行)却使开发者们得以获取源代码并进一步开发系统。

BSD许可协议(英语:Berkeley Software Distribution license)是自由软件中使用最广泛的许可协议之一。BSD就是遵照这个许可证来发布,也因此而得名 BSD许可协议。


BSD包最初所有者是加州大学的董事会,这是由于 BSD 源自加州大学伯克利分校。BSD开始后,BSD许可协议得以修正,使得以后许多BSD变种,都采用类似风格的条款。


跟其他条款相比,从GNU通用公共许可证(GPL)到限制重重的著作权(Copyright),BSD许可证比较宽松,甚至跟公有领域更为接近。“Take it down to the copy center and make as many copies as you want”[1]。可以说,GPL强迫后续版本必须一样是自由软件,BSD的后续版本可以选择要继续是BSD或其他自由软件条款或封闭软件等等。


2.为什么使用postgresql

PostgreSQL 具有许多功能,旨在帮助开发人员构建应用程序、管理员保护数据完整性和构建容错环境,并帮助您管理数据,无论数据集大小。除了免费和开源之外,PostgreSQL还具有高度的可扩展性。


3.postgresql的各功能详尽列表

数据类型

  1. 基元:整数、数字、字符串、布尔值
  2. 结构化:日期/时间、数组、范围/多范围、UUID
  3. 文档:JSON/JSONB、XML、KEY-VALUE (HSTORE)
  4. 几何:点、线、圆、多边形
  5. 自定义:复合、自定义类型

数据完整性

  1. 唯一,不为空
  2. 主键
  3. 外键
  4. 排除约束
  5. 显式锁、咨询锁

并发性、性能

  1. 索引:B 树、多列、表达式、部分索引
  2. 高级索引:GiST,SP-Gist,KNN Gist,GIN,BRIN,覆盖索引,布隆过滤器
  3. 复杂的查询规划器/优化器,仅索引扫描,多列统计信息
  4. 事务,嵌套事务(通过保存点)
  5. 多版本并发控制 (MVCC)
  6. 并行化读取查询和构建 B 树索引
  7. 表分区
  8. SQL 标准中定义的所有事务隔离级别,包括可序列化
  9. 表达式的实时 (JIT) 编译

可靠性、灾难恢复

  1. 预写日志记录 (WAL)
  2. 复制:异步、同步、逻辑
  3. 时间点恢复 (PITR),活动备用
  4. 表空间

安全

  1. 身份验证:GSSAPI、SSPI、LDAP、SCRAM-SHA-256、证书等
  2. 强大的门禁系统
  3. 列级和行级安全性
  4. 使用证书和其他方法进行多重身份验证

扩展

  1. 存储函数和过程
  2. 过程语言:PL/pgSQL、Perl、Python 和 Tcl。还有其他语言可以通过扩展使用,例如Java,JavaScript(V8),R,Lua和Rust。
  3. SQL/JSON 路径表达式
  4. 外部数据包装器:使用标准 SQL 接口连接到其他数据库或流
  5. 可定制的表存储界面
  6. 许多提供附加功能的扩展模块,包括 PostGIS

国际化、文本搜索

  1. 支持国际字符集,例如通过 ICU 排序规则
  2. 不区分大小写和不区分重音的排序规则
  3. 全文搜索

二,postgresql安装

1.Linux源码安装

1.获取源码

目前最新版:https://www.postgresql.org/ftp/source/v15.3/

2.安装依赖包

yum -y install readline
yum -y install zlib zlib-devel
yum -y install ncurses-devel
yum install -y readline-devel

3.解压编译安装

tar -zxf postgresql-15.3.tar.gz -C /usr/src/
cd /usr/src/postgresql-15.3/
./configure
make && make install

4.创建用户

groupadd postgres
useradd -g postgres postgres

5.创建初始化数据

mkdir -p /home/psql/data
chown postgres:postgres /home/psql/data/
• 1
• 2

6.配置环境变量

vi /etc/profile
#最后添加一行
PATH=$PATH:/usr/local/pgsql/bin/
source /etc/profile

7.进入postgres

1.切换用户并初始化数据库
su - postgres
2.初始化
initdb -D /home/psql/data/

8.修改配置文件

[root@localhost ~]# vi /home/psql/data/pg_hba.conf
修改listen_addresses为listen_addresses = ‘*’,允许别的机器访问
[root@localhost ~]# vi /home/psql/data/pg_hba.conf
在ipv4的配置下添加host all all 0.0.0.0/0 md5,允许密码登录

9.通过systemcat管理

vi /etc/systemd/system/pgsql.service
#添加一下内容
[Unit]
Description=postgresql
[Service]
Type=forking
User= postgres
Group=postgres
ExecStart=/usr/local/pgsql/bin/pg_ctl start -D /var/pgsqldata
ExecReload=/usr/local/pgsql/bin/pg_ctl restart -D /var/pgsqldata
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D /var/pgsqldata
PrivateTmp=true
[Install]
WantedBy=multi-user.target
#保存

10.测试启动

systemctl daemon-reload
systemctl start pgsql.service && systemctl enable pgsql.service
systemctl status pgsql.service

2.yum安装

https://www.postgresql.org/download/      #官网地址

根据个人需求进行选择

1.安装rpm,初始化

#安装过程
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
#安装
sudo yum install -y postgresql12-server
#数据库初始化
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb

2.设置允许外包连接

#设置允许外部连接
vim /var/lib/pgsql/11/data/pg_hba.conf
host all all 0.0.0.0/0 md5
vim /var/lib/pgsql/11/data/postgresql.conf 
listen_addresses = '*'

3.设置允许root命令登录

vim /var/lib/pgsql/11/data/pg_hba.conf
#修改:
local all  all  peer
#为:
local all  all  trust

4.启动服务

sudo systemctl enable postgresql-12
sudo systemctl start postgresql-12

5.切换用户

su - postgres
psql -U postgres   #远程访问-W 提示输入密码
ALTER USER postgres with encrypted password '123456'; #设置密码

3.win10安装

1.访问官网

https://www.enterprisedb.com/downloads/postgres-postgresql-downloads


相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
1月前
|
SQL 运维 关系型数据库
课程导航 | 学姐领航,共学PolarDB-X:从入门到精通实操课
本课程旨在教授核心技术和实际操作,学习安装部署、架构原理、SQL开发及最佳实践。本文将提供讲师介绍、学习群和扩展资料,适合各层次学习者,助你成为数据大师,入群方式和更多资料可在文章中获取。
课程导航 | 学姐领航,共学PolarDB-X:从入门到精通实操课
|
1月前
|
存储 SQL 人工智能
01-PostgreSQL 存储过程的基本介绍以及入门(基本结构、声明和赋值、控制结构)(下)
01-PostgreSQL 存储过程的基本介绍以及入门(基本结构、声明和赋值、控制结构)
|
1月前
|
Docker 容器 关系型数据库
【PolarDB-X从入门到精通】 第四讲:PolarDB分布式版安装部署(源码编译部署)
本期课程将于4月11日19:00开始直播,内容包括源码编译基础知识和实践操作,课程目标是使学员掌握源码编译部署技能,为未来发展奠定基础,期待大家在课程中取得丰富的学习成果!
【PolarDB-X从入门到精通】 第四讲:PolarDB分布式版安装部署(源码编译部署)
|
2天前
|
存储 关系型数据库 数据库
经验大分享:PostgreSQL学习之【用户权限管理】说明
经验大分享:PostgreSQL学习之【用户权限管理】说明
|
1月前
|
关系型数据库 MySQL 分布式数据库
【PolarDB-X从入门到精通】 第五讲:PolarDB集中式版安装部署(源码编译部署)
4月18日本周四晚19:00,一站式学习源码编译PolarDB-X标准版(集中式),各位敬请期待,我们不见不散!
【PolarDB-X从入门到精通】 第五讲:PolarDB集中式版安装部署(源码编译部署)
|
1月前
|
Cloud Native 分布式数据库 数据库
【PolarDB-X 从入门到精通】课程随堂互动获奖公告
【PolarDB-X 从入门到精通】课程随堂互动获奖名单出炉!快看看你是否在榜?
【PolarDB-X 从入门到精通】课程随堂互动获奖公告
|
1月前
|
大数据 关系型数据库 分布式数据库
课程预告 | 学姐领航,共学PolarDB-X:从入门到精通实操课
与阿里云学姐共学PolarDB-X,15分钟直达实操精髓,解锁课后问题,巩固知识,迈向数据大师之路!
课程预告 | 学姐领航,共学PolarDB-X:从入门到精通实操课
|
1月前
|
存储 SQL 关系型数据库
01-PostgreSQL 存储过程的基本介绍以及入门(基本结构、声明和赋值、控制结构)(上)
01-PostgreSQL 存储过程的基本介绍以及入门(基本结构、声明和赋值、控制结构)
|
1月前
|
Oracle 关系型数据库 数据库
PostgreSQL从入门到精通教程 - 第42讲:pg_rman部署与使用
PostgreSQL从入门到精通教程 - 第42讲:pg_rman部署与使用
116 1
|
1月前
|
SQL 存储 关系型数据库
MySQL技能完整学习列表——1、数据库基础概念——1、关系型数据库(Relational Database)
MySQL技能完整学习列表——1、数据库基础概念——1、关系型数据库(Relational Database)
198 0