PostgreSQL介绍与安装

一、PostgreSQL数据库介绍

1、什么是数据库?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。

我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。

所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

ORDBMS(对象关系数据库系统)是面向对象技术与传统的关系数据库相结合的产物,查询处理是 ORDBMS 的重要组成部分,它的性能优劣将直接影响到DBMS 的性能。

ORDBMS在原来关系数据库的基础上,增加了一些新的特性。

RDBMS 是关系数据库管理系统,是建立实体之间的联系,最后得到的是关系表。

OODBMS 面向对象数据库管理系统,将所有实体都看成对象,并将这些对象类进行封装,对象之间的通信通过消息 OODBMS 对象关系数据库在实质上还是关系数据库 。

PostgreSQL是一个功能强大的开源关系型数据库管理系统(RDBMS),它具有良好的可扩展性、稳定性和安全性。

2、ORDBMS 术语

在我们开始学习 PostgreSQL 数据库前,让我们先了解下 ORDBMS 的一些术语:

  • 数据库: 数据库是一些关联表的集合。
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
  • **行:**一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • **外键:**外键用于关联两个表。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • **索引:**使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

3、PostgreSQL 特征

  • 函数:通过函数,可以在数据库服务器端执行指令程序。

  • 索引:用户可以自定义索引方法,或使用内置的 B 树,哈希表与 GiST 索引。

  • 触发器:触发器是由SQL语句查询所触发的事件。如:一个INSERT语句可能触发一个检查数据完整性的触发器。触发器通常由INSERT或UPDATE语句触发。

  • **多版本并发控制:**PostgreSQL使用多版本并发控制(MVCC,Multiversion concurrency control)系统进行并发控制,该系统向每个用户提供了一个数据库的"快照",用户在事务内所作的每个修改,对于其他的用户都不可见,直到该事务成功提交。

  • 规则:规则(RULE)允许一个查询能被重写,通常用来实现对视图(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、删除(DELETE)。

  • 数据类型:包括文本、任意精度的数值数组、JSON 数据、枚举类型、XML 数据

    等。

  • 全文检索:通过 Tsearch2 或 OpenFTS,8.3版本中内嵌 Tsearch2。

  • NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 数据库的外部数据包装器。

  • 数据仓库:能平滑迁移至同属 PostgreSQL 生态的 GreenPlum,DeepGreen,HAWK 等,使用 FDW 进行 ETL。

4、PostgreSQL 特点

  • 开源性:PostgreSQL是开源软件,可以免费获取和使用。
  • 关系型数据库:支持关系型数据模型,使用SQL语言进行数据操作。
  • 可扩展性:支持丰富的扩展功能和插件,可以满足各种复杂的数据处理需求。
  • 事务支持:具有强大的事务处理能力,支持ACID(原子性、一致性、隔离性、持久性)属性,确保数据的完整性和一致性。
  • 多版本并发控制(MVCC):支持多个事务同时对同一数据进行读写操作,提高并发访问性能。
  • 复杂查询:支持复杂的查询操作,包括联合查询、子查询、聚合函数等。
  • 完整的数据类型支持:支持丰富的数据类型,包括基本数据类型、数组、JSON等。
  • 安全性:提供丰富的安全特性,包括访问控制、SSL支持、数据加密等。
  • 可定制性:提供丰富的可定制选项和配置参数,可以根据具体需求进行灵活配置。

二、PosetgreSQL与其他数据比较

PostgreSQL、MySQL和Oracle是三种常见的关系型数据库管理系统(RDBMS),它们在一些方面有着相似之处,但在很多方面也存在着显著的差异。以下是它们之间的比较:

1、开源性和许可证

  • PostgreSQL是一种开源数据库,采用的是PostgreSQL许可证,允许用户自由使用、修改和分发。
  • MySQL也是开源的,采用的是GNU通用公共许可证(GPL),但也有商业许可证版本由Oracle提供。
  • Oracle是一种闭源的商业数据库,需要购买许可证才能使用。

2、数据完整性和约束

  • PostgreSQL在这方面非常严格,支持多种约束、外键、触发器和存储过程,可以确保数据的完整性和一致性。
  • MySQL在默认情况下对数据完整性的支持较弱,但可以通过设置来实现一定程度的约束。
  • Oracle提供了强大的数据完整性支持,包括复杂的约束和触发器。

3、功能和扩展性

  • PostgreSQL在功能和扩展性方面非常强大,支持复杂的数据类型(如数组、JSON、XML)、全文搜索、地理空间数据和自定义扩展。PostgreSQL还支持主从复制、流复制、逻辑复制等方式实现数据备份和高可用性。可以通过内置的或第三方的工具实现集群部署和自动故障转移。
  • MySQL在功能方面较为简化,但在处理简单的事务时性能较好。它支持存储过程、触发器和视图,但功能相对较少。
  • Oracle在功能和扩展性方面也非常强大,支持复杂的企业级应用需求,包括高级分析、数据挖掘和大规模数据处理。

4、性能和扩展性

  • 在大型企业级应用中,Oracle通常提供了出色的性能和扩展性,但也伴随着高昂的成本。
  • PostgreSQL在处理复杂查询和高并发时表现优异,对于读写均衡的应用具有良好的性能。
  • MySQL在处理简单查询和读密集型应用时表现良好,但在复杂查询和高并发情况下性能可能有所下降。

5、存储引擎和事务管理

  • PostgreSQL使用MVCC(多版本并发控制)来实现事务隔离,支持多种存储引擎。
  • MySQL拥有多种存储引擎,如InnoDB、MyISAM等,可以根据需求选择合适的引擎。
  • Oracle拥有自己的存储引擎和事务管理机制,提供了高度可靠的事务处理和数据保护。

6、适用场景

  • PostgreSQL适用于需要高度可定制性和复杂查询的应用,如大型企业应用和数据仓库。
  • MySQL适用于需要快速读取和简单事务处理的应用,如Web应用和小型企业应用。
  • Oracle适用于大型企业级应用,如金融系统和电信系统等对性能和可用性要求较高的应用。

三、PosetgreSQL下载与安装

1、下载与安装

  • 官网

    • https://www.postgresql.org/
  • 下载地址

    • Windows 上安装 PostgreSQ,在这里我们使用 EnterpriseDB 来下载安装,EnterpriseDB 是全球唯一一家提供基于 PostgreSQL 企业级产品与服务的厂商。
    • https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
  • 一路下一步(中间有个设置密码的要记住咯),但是记得最后一步有个选项不要勾选,如下图

在这里插入图片描述

2、连接服务器

(1)pgAdmin4连接

下载完会发现多了很多东西,首先我们先打开pgAdmin4。

在这里插入图片描述

打开看到有个Server下面会有个PostgreSQL 16,双击,会弹出验证密码的输入框,输入之前安装设置的密码即可,连接成功就是下面的界面。

在这里插入图片描述

(2)SQL Shell连接

现在打开上面的SQL Shell,按照下面输入即可,口令就是你安装设置的密码。

在这里插入图片描述

(3)Navicat连接

上面两种都是PostgreSQL自带的,通过Navicat连接的话,最好是17版本及以上(因为我之前16版本连接失败了),首先在连接里面选择PostgreSQL。

在这里插入图片描述

输入连接名称,用户名默认就是postgres,密码就是安装时候设置的,然后就是测试连接,出现连接成功就可以直接连接了。

在这里插入图片描述

连接成功

在这里插入图片描述

其实还有一种cmd连接的,但是太麻烦了,懒得弄了

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

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

相关文章

倒装COB显示屏与传统SMD显示屏安装方式有哪些不同?

COB显示屏与传统SMD显示屏是商业显示领域中非常重要的两种载体,在前面的文章当中我们为大家阐述了倒装COB显示屏的技术特点,今天跟随COB显示屏厂家深圳市中品瑞科技一起来看看,COB显示屏的安装与传统LED显示屏的安装有哪些不同? 一…

数据结构之“刷链表题”

🌹个人主页🌹:喜欢草莓熊的bear 🌹专栏🌹:数据结构 目录 前言 一、相交链表 题目链接 大致思路 代码实现 二、环形链表1 题目链接 大致思路 代码实现 三、环形链表2 题目链接 大致思路 代码实…

爬虫逆向实战(41)-某巢登陆(AES、MD5、RSA、滑块验证码)

一、数据接口分析 主页地址:某巢 1、抓包 通过抓包可以发现在登录时,网站首先请求captcha/querySlideImage/来获取滑块验证码的图片,然后请求captcha/checkCode/接口来验证滑块验证码。滑块验证码校验成功后,请求noshiro/getPu…

论坛万能粘贴手(可将任意文件转为文本)

该软件可将任意文件转为文本。 还原为原文件的方法:将得到的文本粘贴到记事本,另存为UUE格式,再用压缩软件如winrar解压即可得到原文件。建议用于小软件。 下载地址:https://download.csdn.net/download/wgxds/89505015 使用演示…

【PYG】切片语法[:,]

在 Python 中,使用切片语法 [:,] 是一种方便的方式来选择多维数组或张量的特定部分。具体来说,这种语法在处理 NumPy 数组或 PyTorch 张量时非常有用。让我们详细解释一下为什么可以写成 [:, :] 以及这种语法的含义。 切片语法解释 ::表示选…

pytorch自适应的调整特征图大小

文章目录 代码 代码 256256 --> 224224 import torch import torch.nn as nn# 假设 x 是你的特征图,形状为 (4, 32, 256, 256) x torch.randn(4, 32, 256, 256)# 方法一:使用自适应平均池化调整大小 adaptive_avg_pool nn.AdaptiveAvgPool2d((224…

Kafka 位移

Consumer位移管理机制 将Consumer的位移数据作为一条条普通的Kafka消息,提交到__consumer_offsets中。可以这么说,__consumer_offsets的主要作用是保存Kafka消费者的位移信息。使用Kafka主题来保存位移。 消息格式 位移主题就是普通的Kafka主题。也是…

【JavaScript脚本宇宙】探索前端打包利器:从Webpack到Esbuild的全面解析

即刻更新,无缝开发:六大打包工具的热重载实战指南 前言 在现代前端开发中,高效的模块打包工具对提高开发效率和代码质量起着至关重要的作用。本文将详细介绍六种流行的JavaScript打包工具:Webpack、Parcel、Vite、Snowpack、Rol…

基于KDE下kcrash框架二次开发core dump工具

将kde下框架的源码编译后安装使用 配置环境和依赖 根据kcrash源码的cmakelist文件可知该项目的主要环境和依赖包括: qt6.6以上;EMC6.4(KDE下EMC框架,其他地方没找到这个版本的EMC),KCoreAddons&#xff0…

HCIE实验这样玩太高级了吧?实现FRR+BFD+OSPF与BGP的联动

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 晚上好,我的网工朋友。 今天搞个HCIE实验玩玩,上回分享了个张总讲解的防火墙配置实验思路,后来还特地搞了个视…

GPT-4o文科成绩超一本线,理科为何表现不佳?

目录 01 评测榜单 02 实际效果 什么?许多大模型的文科成绩竟然超过了一本线,还是在竞争激烈的河南省? 没错,最近有一项大模型“高考大摸底”评测引起了广泛关注。 河南高考文科今年的一本线是521分,根据这项评测&…

python与matlab微分切片的区别

python python使用np中的linespace生成等间隔数值, import numpy as np numpy.linspace(start, stop, num50, endpointTrue, retstepFalse, dtypeNone, axis0)start:序列的起始值。stop:序列的结束值。如果 endpoint 为 True,该…

代码随想录算法训练营第55天 [ 42. 接雨水 84.柱状图中最大的矩形]

代码随想录算法训练营第55天 [ 42. 接雨水 84.柱状图中最大的矩形] 一、42. 接雨水 链接: 代码随想录. 思路:找到左边第一个大于我的和右边第一个大于我的 做题状态:看解析后做出来了 //暴力法(会超时) class Solution { public:i…

CesiumJS【Basic】- #043 绘制脉冲线(Entity方式)- 需要自定义着色器

文章目录 绘制脉冲线(Entity方式)- 需要自定义着色器1 目标2 代码2.1 main.ts3 资源文件绘制脉冲线(Entity方式)- 需要自定义着色器 1 目标 使用Entity方式绘制脉冲线 2 代码 2.1 main.ts import * as Cesium from cesium;const viewer = new Cesium.Viewer(cesiumCont…

【TB作品】打地鼠游戏,ATMEGA16单片机,Proteus仿真 打地鼠游戏

11个按键LCD1602显示器9个灯蜂鸣器打地鼠小游戏就是九个灯泡,对应九个按键,灯泡有红黄蓝,每间隔一会儿就会亮一个灯,代表地鼠冒出来,按一下按键让灯泡灭掉代表打地鼠,红的三分,黄的两分&#xf…

一句话介绍什么是AI智能体?

什么是AI智能体? 一句话说就是利用各种AI的功能的api组合,完成你想要的结果。 例如你希望完成一个关于主题为啤酒主题的小红书文案图片,那么它就可以完成 前面几个步骤类似automa的组件,最后生成一个结果。

面试突击指南:Java基础面试题4

1. HTTP响应码有哪些 HTTP响应码分为以下几类: 1xx(临时响应):表示请求已被接收,继续处理。2xx(成功):表示请求已成功被服务器接收、理解、并接受。3xx(重定向):表示需要进一步的操作以完成请求。4xx(客户端错误):表示请求包含错误或无法被服务器处理。5xx(服务…

RIP 路由 3 个定时器的工作流程和 4 种防环方法

RIP 路由 3 个定时器的工作流程 根据 RFC2453, RIP 协议一共定义了 3 种定时器,分别是: ・更新定时器 (Update Timer) ・老化定时器 (Age Timer) ・垃圾收集定时器 (Garbage-collectTimer) RIP 的更新信息发布是由更新定时器控制的,默认…

IT专业入门——高考假期预习指南,我来做你的引路人

目录 认识IT知识体系 什么是计算机 按规模、速度和功能分类 按照其工作模式分类 硬件 操作系统 编程语言 对学习语言的一点建议 对于学python的一点看法 网络 数据结构与算法 数据库 Web开发 Web前端 Web后端 基础预习指南 技术路线学习一览 学习资源推荐 刷…

spring interceptor失效

适用方式 增加interceptor,implements HandlerInterceptor,实例如下 Slf4j public class AccessInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object han…