Postgresql数据库入门简介

news2024/9/20 4:48:43

Postgresql入门

1.Postgresql数据库简介

PostgresQL是一个功能强大的开源数据库系统。经过长达15年以上的积极开发和不断改进,PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内极高的声誉。目前PostgreSql可以运行在所有主流操作系统上,包括Linux、Unix(AIX、BSD、HP-UX、SGIIRIX、MacOs X、Solaris和Tru64)和Windows。

作为一种企业级数据库,PostgresQL以它所具有的各种高级功能而自豪,像多版本并发控制(MVCC)、按时间点恢复(PITR)、表空间、异步复制、嵌套事务、在线热备、复杂查询的规划和优化以及为容错而进行的预写日志等。它支持国际字符集、多字节编码并支持使用当地语言进行排序、大小写处理和格式化等操作。

截止2024年三月份,postgresql数据库得分排名第四,且仍出现上升去世
image.png
来源:https://db-engines.com/en/ranking

2.postgresql特性

极限值:
最大单个数据库大小: 不限
最大数据单表大小:32 TB
单条记录最大:1.6 TB
单字段最大允许:1 GB
单表允许最大记录数:不限
单表最大字段数:250-1600(取决于字段类型)
单表最大索引数:不限

3.postgresql兼容性

  • PostgreSQL对SQL标准高度兼容,它实现的功能完全遵守于ANSI-SQL:2008标准。目前完全支持子查询(包括在FROM中的子查询)、授权读取和可序列化的事务隔离级别。同时PostgreSQL也具有完整的关系数据库系统的目录功能,它支持单数据库的多模式功能,每一个目录可通过SQL标准中定义的字典信息模式进行访问。
  • Data集成性功能包括(复合)主键、含有严格约束或级联更新和删除功能的外键、录入检查约束、唯一性约束和非空约束。
  • PostgreSQL也具有很多扩展模块和更高级的功能。其中有为方便使用的通过序列实现的自增字段、允许返回部分记录集的LIMIT/OFFSET选项,也支持复合、唯一、部分和函数式索引,索引并支持B-Tree、R-Tree、Hash或GiST存储方式。

4.postgresql高度可定制性

PostgreSQL的存储过程开发可以使用众多的程序语言,包括Java、Perl、Python、Ruby、Tc1、C/C++和自带的PL/pgSQL,其中的PL/pgSQL与Oracle的PL/SQL很相似,内置了数百个函数,功能从基本的算术计算和字符串处理到加密逻辑计算并与0racle有高度兼容性。
由于有很多的存储过程语言可以使用,这样也产生了很多的库接口,这样允许各种编译型或是解释型的语言在PostgreSQL进行使用,包括Java(JDBC)、0DBC、Perl、Python、Ruby、C、C++、PHP、Lisp、Scheme和Qt等。
最重要的一点,PostgreSQL的源代码可以自由获取,它的授权是在非常自由的开源授权下,这种授权允许用户在各种开源或是闭源项目中使用、修改和发布PostgreSQL的源代码。用户对源代码的可以按用户意愿进行任何修改、改进。

5.PostgreSQL部分历史大版本发布时间

  1. post-Ingres :1985年,成立该项目
  2. Postgres V1 - V4:1988年至1993年
  3. Postgres95 :1995年,重写了SQL解释器
  4. PostgreSQL 6.x:1996年,正式更名,表示Postgres + SQL,发布第一个开源版本
  5. PostgreSQL 7.1 :加入了预写式日志功能;不再限制文本类型的数据段长度
  6. PostgreSQL 8.x :对Windows平台支持;支持事务保存点、表空间、即时恢复等功能;并开始支持Perl服务器端编程语言
  7. PostgreSQL 9.0:加入流复制、Hot Standby功能
  8. PostgreSQL 9.1:加入同步流复制
  9. PostgreSQL 9.2:加入级联复制功能
  10. PostgreSQL 9.3:加入物化视图功能;支持事件触发;可写外部表
  11. PostgreSQL 9.4:逻辑复制 btre索引
  12. PostgreSQL 9.5:加入行级别安全功能,TABLESAMPLE 数据取样功能
  13. PostgreSQL 9.6:加入并行查询功能;多standby节点数据同步
  14. PostgreSQL 10: 表分区、提高并行查询性能
  15. PostgreSQL 11: 并行功能增强、分区增强、存储过程支持嵌入事务
  16. PostgreSQL 12: 在线重建索引、索引优化、流复制配置简化
VersionCurrent minorSupportedFirst ReleaseFinal Release
1616.2YesSeptember 14, 2023November 9, 2028
1515.6YesOctober 13, 2022November 11, 2027
1414.11YesSeptember 30, 2021November 12, 2026
1313.14YesSeptember 24, 2020November 13, 2025
1212.18YesOctober 3, 2019November 14, 2024
1111.22NoOctober 18, 2018November 9, 2023
1010.23NoOctober 5, 2017November 10, 2022
9.09.0.23NoSeptember 20, 2010October 8, 2015
8.08.0.26NoJanuary 19, 2005October 1, 2010
7.07.0.3NoMay 8, 2000May 8, 2005
6.56.5.3NoJune 9, 1999June 9, 2004
6.06.0.0NoMarch 1, 1998March 1, 2003

6.postgresql学习资源

  1. 官网:https://www.postgresql.org/
  2. postgresql中文:http://www.postgres.cn/v2/home
  3. 墨天轮社区:https://www.modb.pro/

7.引用

  1. PostgreSQL主要特性及发展里程碑事件https://blog.csdn.net/weixin_43346403/article/details/129708877
  2. postgresql入门到精通教程

https://www.bilibili.com/video/BV1bM411a7Fm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1535488.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

运动想象 (MI) 迁移学习系列 (14) : EEGNet-Fine tuning

运动想象迁移学习系列:EEGNet-Fine tuning 0. 引言1. 主要贡献2. 提出的方法2.1 EEGNet框架2.2 微调 3. 实验结果3.1 各模型整体分类结果3.2 算法复杂度比较3.3 不同微调方法比较 4. 总结欢迎来稿 论文地址:https://www.nature.com/articles/s41598-021-99114-1#cit…

【Git】第一课:Git的介绍

简介 什么是Git? Git是一个开源的分布式版本控制系统,用于跟踪代码的改变和协同开发。它最初由Linus Torvalds为了管理Linux内核开发而创建,现已成为开源软件开发中最流行的版本控制系统,没有之一。Git允许多人同时在不同的分支上工作&…

ubuntu - 编译 linphone-sdk

业务需求需要定制sdk,首先声明我们需要的是在Android4.4上跑的sdk,因此本次编译的sdk最低支持为19(不同版本需要的环境不一致),编译过程较容易,难点在于环境配置 环境准备 Ubuntu 18.04.6 android-sdk_r24.…

Python解释器介绍及安装和目录文件说明

什么是解释器? Python 的代码必须要通过解释器才能运行, 比如我们自己书写python代码想要实现最近本的文字打印:print(hello world!)。但电脑不知道你写的这句代码是干什么用的,当有了python解释器后,Python 解释器会把…

专业135+总分400+重庆邮电大学801信号与系统考研经验重邮电子信息与通信工程,真题,大纲,参考书。

今年分数出来还是比较满意,专业801信号与系统135,总分400,没想到自己也可以考出400以上的分数,一年的努力付出都是值得的,总结一下自己的复习心得,希望对大家复习有所帮助。专业课:(…

JavaWeb里的控制器Servlet,过滤器Filter,监听器Listener

文章目录 简介控制器servlet控制器(Controller)概述控制器的工作原理控制器的生命周期控制器的种类控制器的应用场景示例代码Servlet控制器示例Spring MVC控制器示例 总结 过滤器filter过滤器(Filter)概述过滤器的工作原理过滤器的生命周期过滤器的链式调用过滤器的应用场景示例…

【案例】一个在本地目录下检索文件内容的应用程序

文章目录 需求分析软件设计使用模块程序流程图InputProcessOutput软件实现源码后记存在问题接下来...需求分析 Windows 环境下,软件提供一个使用友好的交互界面,根据关键字检索指定的本地目录下不同文档中的内容,关键字提供或和且索引方式,并且可以同时指定多个目录。 软…

Linux学习-进程

目录 进程基本概念 进程相关命令 进程的创建 进程的调度 进程相关函数接口 进程的消亡 实例:创建九个子进程 目录 进程基本概念 进程相关命令 进程的创建 进程的调度 进程相关函数接口 进程的消亡 实例:创建九个子进程 exec函数…

量子计算机

近日,在AWS re:Invent全球大会上,亚马逊官宣AWS三箭齐发量子计算组合拳:Braket、AWS量子计算中心和量子解决方案实验室。 随着亚马逊的强势入局,加上此前鼓吹量子霸权的谷歌、起步最早的IBM、暗自发力的微软&#xff…

LabVIEW高效光伏数据监控与管理系统

LabVIEW高效光伏数据监控与管理系统 随着新能源技术的发展,光伏发电系统作为一种清洁、高效的能源获取方式受到了广泛的关注。但是,由于光伏发电的特性受到多种环境因素的影响,其运行效率和安全性成为了关键问题。因此,开发一个高…

【现代C++】范围基于的for循环

现代C中的范围基于的for循环(range-based for loop)是C11引入的一项特性,旨在简化对容器或范围的迭代过程。这种循环语法不仅使代码更清晰易读,还减少了迭代时的错误。以下是范围基于的for循环的详细介绍: 1. 基本用法…

ElasticSearch使用(一)

文章目录 一、简介1. 数据类型2. 倒排索引3. Lucene4. ElasticSearch5. Solar VS ElasticSearch 二、ElasticSearch入门1. 简介2. 分词器3. 索引操作4. 文档操作5. ES文档批量操作 二、ElasticSearch的DSL1. 文档映射Mapping2. Index Template3. DSL 一、简介 1. 数据类型 结…

Shopee如何选品?Shopee爆品市场趋势预测

Shopee母公司Sea近日发布了其截至2023年12月31日的全年财务业绩报告。 在2023财年报告中,Shopee继续保持稳健增长态势,全年总交易额(GMV)达到创纪录的 785亿美元 ,同比去年增长6.8%。 年度营收增至90亿美元 &…

C#非强签名dll搜索顺序

由于不是强签名dll,所以无效考虑全局程序集缓存 (GAC)。 预备工作 新建解决方案ClassLibrary1,新建类库ClassLibrary1,新建控制台程序ShowDllLoc。 利用VS添加引用。 一,利用app.config设置codebase,设置dll的加载路径为:code…

计算结构体的大小(结构体的内存对齐)

一:问题 问题所在:两个结构体应该都是6个字节大小,为什么一个12,一个6??? 二:如何正确的计算结构体大小? 首先得掌握结构体的对齐规则: 第一: 第一…

mysql四种事务隔离级别,2024金三银四

TransactionDefinition.PROPAGATION_MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。 TransactionDefinition.PROPAGATION_NESTED:如果当前存在事务,则创建一个事务作为当前事务的…

Eureka的介绍和作用,以及搭建

一、Eureka的介绍和作用 Eureka是Netflix开源的一种服务发现和注册工具,它为分布式系统中的服务提供了可靠的服务发现和故障转移能力。Eureka是Netflix的微服务架构的关键组件之一,它能够实时地监测和管理服务实例的状态和可用性。 在Eureka架构中&…

哪些事是你当了领导才明白的?

哪些事是你当了领导才明白的? 毕业5年,17年开始带团队,确实很多事不做到管理这一层,就真的意识不到。 带着【执行者】和【管理者】这2个视角,再结合我毕业至今这5年的所有职场经历,聊聊“职场潜规则”。 …

2023最新版Node.js下载安装及环境配置教程(非常详细)从零基础入门到精通,看完这一篇就够了

一、进入官网地址下载安装包 https://nodejs.org/zh-cn/download/ 选择对应你系统的Node.js版本,这里我选择的是Windows系统、64位 Tips:如果想下载指定版本,点击【以往的版本】,即可选择自己想要的版本下载 二、安装程序 &…

分布式锁简单实现

分布式锁 Redis分布式锁最简单的实现 想要实现分布式锁,必须要求 Redis 有「互斥」的能力,我们可以使用 SETNX 命令,这个命令表示SET if Not Exists,即如果 key 不存在,才会设置它的值,否则什么也不做。 …