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

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
7月前
|
关系型数据库 数据库 PostgreSQL
PostgreSQL从入门到精通 - 第40讲:数据库不完全恢复
PostgreSQL从入门到精通 - 第40讲:数据库不完全恢复
215 1
|
7月前
|
存储 SQL 人工智能
01-PostgreSQL 存储过程的基本介绍以及入门(基本结构、声明和赋值、控制结构)(下)
01-PostgreSQL 存储过程的基本介绍以及入门(基本结构、声明和赋值、控制结构)
|
4月前
|
SQL 存储 关系型数据库
新手如何入门学习PostgreSQL?
新手如何入门学习PostgreSQL?
|
4月前
|
SQL 存储 关系型数据库
PostgreSQL核心之SQL基础学习
PostgreSQL核心之SQL基础学习
50 3
|
5月前
|
SQL 存储 关系型数据库
关系型数据库PostgreSQL学习
【7月更文挑战第4天】
458 2
|
6月前
|
存储 关系型数据库 数据库
经验大分享:PostgreSQL学习之【用户权限管理】说明
经验大分享:PostgreSQL学习之【用户权限管理】说明
103 0
|
7月前
|
关系型数据库 数据库 PostgreSQL
|
7月前
|
存储 SQL 关系型数据库
01-PostgreSQL 存储过程的基本介绍以及入门(基本结构、声明和赋值、控制结构)(上)
01-PostgreSQL 存储过程的基本介绍以及入门(基本结构、声明和赋值、控制结构)
|
7月前
|
Oracle 关系型数据库 数据库
PostgreSQL从入门到精通教程 - 第42讲:pg_rman部署与使用
PostgreSQL从入门到精通教程 - 第42讲:pg_rman部署与使用
178 1
|
7月前
|
SQL 监控 关系型数据库
postgresql|数据库|插件学习(二)---postgresql-12的外置插件pg_profile的启用和使用
postgresql|数据库|插件学习(二)---postgresql-12的外置插件pg_profile的启用和使用
225 0