
postgresql使用入门到进阶
文章平均质量分 93
近年来postgresql越来越流行,本专栏是使用入门教程,让没有接触过的同学,可以轻松入门数据库的操作使用,创建表,操作表,使用事务等等,掌握一种数据库是非常重要的,在面试时也可以加分不少。
韩楚风
多年服务端开发经验,目前在做数据库内核研发,希望和大家多交流数据库和产品研发方面的经验^.^
展开
-
【postgresql 基础入门】抢先学习PostgreSQL,为未来数据世界赢得先机
在数字化时代,数据库技术的重要性日益凸显。其中,PostgreSQL数据库凭借其强大的功能和稳定性,在全球数据库排行榜上不断攀升,成为了越来越多企业和开发者的首选。因此,提早学习PostgreSQL,不仅能让你的毕业设计得心应手,更能为未来的职业生涯奠定坚实基础。原创 2024-05-08 08:09:17 · 353 阅读 · 34 评论 -
【postgresql 基础入门】入门教程成形了,八大章节,涵盖库,表,事务,约束,数据类型,聚集函数,轻松入门
PostgreSQL,简称PG,是一款强大的开源关系型数据库管理系统, 近年来参与者越来越多,开源社区趋于成熟,因为它的开源和开放,很多其它数据库的从业者也转向了postgresql数据库。而内核版本的更新从原来几年一个大版本,固定为每年一个大版本。对于数据库初学者来说,postgresql是一个不错的选择,源于它的开源代码,各种机制完全可以了解很明白,而且社区的强大,有更多资源可供参考。入门PostgreSQL需要掌握一些基本概念和操作。首先,了解数据库、表、字段等基本概念是必需的。数据库是存原创 2024-04-10 08:17:33 · 2509 阅读 · 87 评论 -
postgresql 使用之 存储架构 触摸真实数据的存储结构以及组织形式,存入数据库的数据原来在这里
postgresql 数据库服务运行时,数据在磁盘上是如何存储的呢?这就涉及到了存储架构。在文件系统中,我们可以看到以目录和文件为形式的存储单元,这是物理存储架构,这些目录和文件实际上有一定的联系和组织形式,比如最外层目录就是集群数据目录,每个数据库会有一个目录,这就是逻辑存储架构。逻辑存储架构,维护着物理磁盘文件的组织形式,物理存储架构是具体的磁盘文件的呈现方式。文件/目录描述PG_VERSION一个包含PostgreSQL主版本号的文件base包含每个数据库对应的子目录的子目录。原创 2023-08-06 11:29:04 · 9493 阅读 · 80 评论 -
postgresql 服务的启动操作,不再是DBA的专属
本文是基于postgresql 15的代码进行分析解读,演示是在centos8系统上进行。服务架构概述postgresql数据库架构,整体是client -server模式:服务端,由一组服务进程,对数据文件进行管理,对用户发送的SQL执行处理;客户端,可以是命令行的psql,也可以是调用jdbc, c, odbc等的程序;客户端与服务端之间通过tcp/ip协议进行通信,当然一个服务端可以同时被多个客户端连接,也可以同时处理多个客户端的请求。原创 2023-06-11 22:15:00 · 9480 阅读 · 9 评论 -
PostgreSQL入门与进阶学习,体系化的SQL知识,完成终极目标高可用与容灾,性能优化与架构设计,以及安全策略
对于后端开发者而言,对数据库的熟悉程度不仅是岗位需求的基础,更是职业发展中不可或缺的一环,其全面性对于技术定级具有显著的推动作用。在选择学习的数据库时,建议从广泛应用的postgresql入手,因其在互联网领域占据重要地位。接下来,让我们逐步深入,从基础到进阶,系统梳理数据库技术的关键点。原创 2024-07-28 10:58:09 · 4011 阅读 · 258 评论 -
【postgresql初级使用】视图上的触发器instead of,替代计划的rewrite,实现不一样的审计日志
在视图上的instead of 触发器,可以将原本的执行计划重写 替换为触发器执行,这样可以进行更为复杂的动作,这里以审计为例,演示了触发器的效果。原创 2024-06-08 09:03:44 · 3309 阅读 · 148 评论 -
【postgresql初级使用】触发器的创建删除,你不知道的触发器函数中的系统变量,数据一致性还可以这样来保证
本文主要分享了触发器的创建,删除,以及触发器函数定义和系统变量,触发器中的系统变量可以帮助我们获取触发器当前的环境信息。适当的使用触发器可以将应用变得简单,现在也流行减少函数和存储过程,为了更好的移植性和维护性。原创 2024-06-04 08:55:25 · 2256 阅读 · 94 评论 -
【postgresql初级使用】触发器的enable与disable,可以自动化精准管理触发器,避免重写触发器复杂逻辑
通过对触发器的启用和禁用,来精确管理触发器的使用,让触发器的定义一直保持在系统当中。原创 2024-06-19 13:29:14 · 4116 阅读 · 82 评论 -
【postgresql初级使用】条件表达式触发器,兼顾DML执行性能,又能执行复杂逻辑,只在结帐时计算总帐
本章节分享了通过表达式条件来限制触发器执行,这样不仅提升DML操作的性能,同时还能利用触发器实现复杂的功能。最后通过一个经典的帐单结算的案例,演示了条件触发器,会在订单转为完成状态时自动生成帐单。原创 2024-06-18 07:20:01 · 2319 阅读 · 80 评论 -
【postgresql初级使用】事件触发器event trigger,被忽略的table rewrite,组合策略保障重大操作
postgresql 中的事件触发器,可以指定的事件有 `ddl_command_start` ` ddl_command_end` `table_rewrite` `sql_drop`, 它可以让我们制定对这些事件的约束策略,当然也可以实现之前的审计案例。其中特别要注意表的重写事件,它是一个经常被忽视,对业务影响非常大的事件,可以通过一系列规则进行限制。原创 2024-06-13 08:22:00 · 3575 阅读 · 126 评论 -
【postgresql初级使用】初识触发器,在数据行发生变化时自动执行用户行为,也可以SQL级别触发,特别是视图上可以有触发器了
和其它商业数据库一样,在postgresql 中也支持触发器这一功能,那么什么是触发器呢,又有什么作用呢?本节内容就是带大家认识一下触发器,以及触发器的作用。原创 2024-05-30 09:02:02 · 2426 阅读 · 93 评论 -
【postgresql初级使用】基于表达式或者函数的索引,字符串拼接可以使用索引了,带来不一样的优化效果
在postgresql 中,一个索引不仅仅是基于表的一列或多列来创建,还可以基于函数,或者一个表达式来创建。本文就来分享在postgresql 如何基于表达式来创建索引。原创 2024-05-22 07:49:36 · 3592 阅读 · 166 评论 -
【postgresql初级使用】在表的多个频繁使用列上创建一个索引,多条件查询优化,多场景案例揭示索引失效
在实际业务的查询中,往往会带有多个过滤条件,涉及多个列,而索引也能够以多列数据构成。在postgresql 中,一个索引可以由最多32个列来构建,如果业务中有多列查询情况,可以对此进行优化。当然,多列索引在应用时,复杂度会提升,应用不当反尔性能下降。本文就来分享一下多列索引的使用,同时通过案例来剖析它的原理,揭示它的优势与不足,避免遇坑。原创 2024-05-20 08:15:25 · 3526 阅读 · 86 评论 -
【postgresql初级使用】索引带来性能提升,它背后默默服务的维护者reindex功不可莫,并发维护与业务的取舍
索引虽好,但不要贪哟,还需要时常维护的。 本文介绍了索引维护命令reindex, 它有两种命令形态,一是工具方式执行,另一种是SQL的方式。通过一个案例,可以清晰的看到,经过一系列模拟使用后,索引数据明显发生了膨胀,势必造成索引的磁盘IO增加,影响索引的性能,经过reindex之后,又恢复了它初建的大小。原创 2024-05-27 08:43:51 · 3611 阅读 · 119 评论 -
【postgresql初级使用】可以存储数据的视图-物化视图,加速大数据下的查询分析
本节主要分享物化视图(materialize view)的基础知识,分为原理机制,创建,数据刷新,以及删除等小节。在原理机制一节,会与普通view对比不同点,它们执行机制的差异;之后的各小节结合案例分享语法与使用场景。原创 2024-05-06 21:25:17 · 3530 阅读 · 72 评论 -
【postgresql初级使用】小小索引大用途,奇妙的索引让大数据查询提升成百上千倍,多种索引类型的区别,你用对索引了吗?
在postgresql 中支持了丰富的索引类型,如btree, gin, gist, spgist, brin等索引类型,每种索引类型适应不同的数据类型进行选择,同时还支持一些用户定义的索引类型,如bloom类型的索引。下面对索引类型进行概述。原创 2024-05-09 07:57:34 · 1984 阅读 · 80 评论 -
【postgresql初级使用】创建不同索引类型,选择适合数据类型的索引,查看执行计划,评估不同索引路径的性能
在postgresql中内置了丰富的索引类型如btree, hash, gin, gist, sp-gist,还有扩展的bloom等等索引,同时还可以有不同的用途,如主键,外键,唯一性等。本文分享如何使用不同类型的索引,如创建,查看,删除;同时通过查看执行计划,了解查询状态与索引使用情况,最后通过案例如果分析增加适合自己的索引。原创 2024-05-13 13:08:24 · 1885 阅读 · 69 评论 -
【postgresql初级使用】视图的基础操作,管理员与普通员工看到不同的数据,视图的作用与重要性介绍
数据库视图是一个虚拟的表,它基于一个或多个实际表的查询结果。视图并不实际存储数据,而是通过查询语句动态地生成数据。视图的内容由查询定义,包含一系列带有名称的列和行数据。从用户角度来看,视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,视图是由SELECT语句组成的查询定义的虚拟表。本文主要介绍视图的创建与删除,而视图的查询与普通表是一样的,当然一般不能修改视图的数据。原创 2024-04-23 20:13:12 · 1834 阅读 · 58 评论 -
【postgresql初级使用】updatable view 可修改的视图,以及视图数据致性的控制,完全分离数据报表业务与数据的维护操作部署架构尝试
updatable view 视图可以展示不同视角的数据,前面介绍了视图的创建,查询和删除,在一些场景下需要对看到的数据能够进行修改,也就是insert/update/delete操作,此时用户操作类似于普通表一样。本文就来分享一下可修改视图的使用,以及它的限制条件。原创 2024-04-25 20:12:53 · 4436 阅读 · 75 评论 -
【postgresql 基础入门】update命令与delete命令,表达式作为值,带筛选条件的删除,避够清空全表
已经存储在数据库中的数据,在日常使用过程中,在现实当中一些数据已经发生了变化,相应的我们需要更新或者删除数据库中的数据条目,让它们变得更加有效,减少数据的冗余。本章节主要分享如何更新 update, 删除 delete数据。原创 2024-04-12 08:00:00 · 2969 阅读 · 113 评论 -
【postgresql 基础入门】聚合函数,通用型,统计分析型,多种多样的聚合函数满足数据的大数据的统计分析
在数据库管理系统中,SQL(结构化查询语言)的聚集函数扮演着至关重要的角色。它们能够对一组值执行计算,并返回单个值,为数据分析与决策提供了极大的便利。聚集函数不仅简化了复杂的数据处理任务,还使得数据的统计与汇总变得高效且准确。常见的SQL聚集函数包括求和(SUM)、平均值(AVG)、最大值(MAX)、最小值(MIN)以及计数(COUNT)等。这些函数能够快速地处理大量数据,提取出关键信息,帮助用户更好地了解数据的分布与特征。随着大数据时代的到来,数据的规模与复杂性不断增加,SQL聚集函数的重要性也日原创 2024-04-08 08:45:19 · 3349 阅读 · 75 评论 -
【postgresql 基础入门】分组查询 group by 子句的写法,分组条件过滤having子句的写法,多列的分组以及与join联合的多表分组
在数据查询中,我们经常对数据进行分类,往往不止一种分类,分类的好处是将大的数据集能划分成更小的数据集,方便我们进行递归的分析,更精确的查找想要的数据。那么如何进行分组,以及分组中的过滤查找呢? 对结果集进行分组,是在前面介绍的基本查询 `select ... from ... where ... ` 后面再使用 `group by `关键字;在分组上进行按条件筛选过滤就不能使用`where`子句中的条件了,而是使用`having`关键字来指定条件;原创 2024-04-01 08:03:43 · 4379 阅读 · 116 评论 -
【postgresql 基础入门】自然连接(natural join)与交叉连接(cross join),等价SQL变换形式,以及它们独到的应用场景
本文分享了natural join和cross join的语法格式,同时它们有几种等价的SQL写法;因为natural join简洁的写法,有时会带来麻烦,在使用前要检查两表中是否有多列会产生join效果。cross join虽然简单,但是它也有很多应用场景,在统计分析,任务分析等方面经常使用。原创 2024-03-28 07:45:55 · 3641 阅读 · 93 评论 -
【postgresql 基础入门】表的约束(二) 唯一unique、非空not null、check、exclusion约束,原理机制以及多列组合约束
数据库的约束是一种规则,用于限制或规范数据库中的数据,确保数据的完整性和一致性。这些约束可以定义在表级别或列级别,处理机制是一致的。约束不占用任何数据库空间,而是存在于数据字典中,并在执行SQL期间使用。用户可以指明约束是启用的还是禁用的,当约束启用时,它增强了数据的完整性。原创 2024-03-25 08:10:43 · 3342 阅读 · 88 评论 -
【postgresql 基础入门】表的约束(一)主键与外键,数据的实体完整性与参照完整性,外键引用数据被修改时的动作触发
数据库的约束是一种规则,用于限制或规范数据库中的数据,确保数据的完整性和一致性。这些约束可以定义在表级别或列级别,处理机制是一致的。约束不占用任何数据库空间,而是存在于数据字典中,并在执行SQL期间使用。用户可以指明约束是启用的还是禁用的,当约束启用时,它增强了数据的完整性。原创 2024-03-20 13:24:58 · 4878 阅读 · 111 评论 -
【postgresql 基础入门】数据类型介绍,整型,字符串,浮点数,日期时间类型特点,精度及表示范围,选择合适类型来提升性能
postgresql 数据库作为一款被各领域广泛使用的开源数据库,有丰富的数据类型,像其它编程语言一样,在开始使用编程语言时,先要了解它的数据类型,与自然语言表达的数据能够一一对应起来。本文将给大家分享postgresql现有的数据类型,对一些常用的数据类型进行详细介绍。原创 2024-03-15 08:06:31 · 3279 阅读 · 136 评论 -
【postgresql 基础入门】事物transaction的开启,提交,回滚命令,自动提交设置
在数据库中,事务是所有工作任务的最小单位,它里面可以包括一条SQL,也可以包括多条SQL,它们一起完成。本文就来介绍postgresql中的事务命令`begin`、`end`、`rollback`的使用,在我们平常SQL中事务的应用。原创 2024-03-11 07:50:29 · 3441 阅读 · 102 评论 -
【postgresql 基础入门】UPSERT语句,INSERT违反约束条件时可以转变为UPDATE语句,UPDATE与INSERT的合体
在我们插入数据时,尤其是批量插入数据,经常会碰到某一条数据已经存在,插入失败的情况,不得不停下来进行检查,看看需要更新呢,还是什么都不做,这使得加载数据的任务变得很麻烦。本文将给大家分享insert语句针对此种情况的处理,这就是upsert方式,也就是把update,insert 能同时处理,就会避免上述的麻烦。原创 2024-03-08 21:19:57 · 2873 阅读 · 108 评论 -
【postgresql 基础入门】CTE(common table expression)让你轻松写出复杂多变的嵌套SQL,同时SQL也可以递归树的遍历查询
在一些分析型业务中,通常会遇到一些非常复杂的SQL语句,多个子查询的联合,此时可以使用 common table expression (CTE) 方式的SQL写法,来让SQL更加简化和易于理解,本文就来分享一下postgresql中的CTE语言的写法,以及使用案例。原创 2024-03-05 08:41:46 · 2865 阅读 · 111 评论 -
【postgresql 基础入门】带过滤条件的查询,where子句中的操作符介绍,案例展示,索引失效的大坑就在这里
在使用SQL查询数据时,一般不会查询全部数据,而是使用条件或者很多条件的组合来缩小结果集的范围,甚至精准查询到想要的数据。本文将介绍postgresql数据库中如何筛选过滤数据,如何设置条件,以及有那些操作符可以使用。原创 2024-02-29 07:55:40 · 3304 阅读 · 144 评论 -
【postgresql 基础入门】基础架构和命名空间层次,查看数据库对象再也不迷路
postgresql 数据库是一款通用的关系型数据,在开源数据库中能与商业数据媲美,在业界也越来越流行。因为是开源数据库,不仅公开源码,还有很多使用案例,好用的插件,所以它的慢慢变成了数据库的先驱和标准,通过postgresql可以很好从使用到原理,彻底搞懂;如果是学习编程,也可以学到丰富的编程知识,数据结构,编程技巧,它里面还有很多精妙的架构设计,分层思想,可以灵活定制的思想。原创 2023-09-07 08:07:17 · 7774 阅读 · 48 评论 -
postgresql 从应用角度看快照snapshot使用,事务隔离控制不再神密
快照snapshot 是事务中使用,配合事务的隔离级别,体现出不同的可见性。开启事务1,保存事务1的快照,然后在别一个事务中应用此快照,那么这两个事务看到的内容是一样的。事务1启动可重复读事务,并导出快照。原创 2023-06-22 11:58:16 · 7631 阅读 · 18 评论 -
【postgresql基础入门】 新建数据库服务集群目录,定制属于自己的独享数据区
postgresql 数据库是一款通用的关系型数据,在开源数据库中能与商业数据媲美,在业界也越来越流行。因为是开源数据库,不仅公开源码,还有很多使用案例,好用的插件,所以它的慢慢变成了数据库的先驱和标准,通过postgresql可以很好从使用到原理,彻底搞懂;如果是学习编程,也可以学到丰富的编程知识,数据结构,编程技巧,它里面还有很多精妙的架构设计,分层思想,可以灵活定制的思想。原创 2023-09-03 23:30:00 · 6498 阅读 · 17 评论 -
【postgresql 基础入门】数据库服务的管理,启动、停止、状态查看、配置加载、重启都在这里
postgresql 数据库是一款通用的关系型数据,在开源数据库中能与商业数据媲美,在业界也越来越流行。因为是开源数据库,不仅公开源码,还有很多使用案例,好用的插件,所以它的慢慢变成了数据库的先驱和标准,通过postgresql可以很好从使用到原理,彻底搞懂;如果是学习编程,也可以学到丰富的编程知识,数据结构,编程技巧,它里面还有很多精妙的架构设计,分层思想,可以灵活定制的思想。原创 2023-09-03 23:30:00 · 10413 阅读 · 4 评论 -
【postgresql 基础入门】创建数据库的方法,存储位置,决定自己的数据的访问用户和范围
postgresql 数据库是一款通用的关系型数据,在开源数据库中能与商业数据媲美,在业界也越来越流行。因为是开源数据库,不仅公开源码,还有很多使用案例,好用的插件,所以它的慢慢变成了数据库的先驱和标准,通过postgresql可以很好从使用到原理,彻底搞懂;如果是学习编程,也可以学到丰富的编程知识,数据结构,编程技巧,它里面还有很多精妙的架构设计,分层思想,可以灵活定制的思想。原创 2023-09-09 23:16:37 · 7763 阅读 · 12 评论 -
【postgresql 基础入门】pgAdmin4 最新图形化客户端的安装使用,值得推荐的数据库开发工具,还有大家喜欢的暗黑主题
postgresql 数据库是一款通用的关系型数据,在开源数据库中能与商业数据媲美,在业界也越来越流行。因为是开源数据库,不仅公开源码,还有很多使用案例,好用的插件,所以它的慢慢变成了数据库的先驱和标准,通过postgresql可以很好从使用到原理,彻底搞懂;如果是学习编程,也可以学到丰富的编程知识,数据结构,编程技巧,它里面还有很多精妙的架构设计,分层思想,可以灵活定制的思想。原创 2023-09-11 22:00:00 · 8383 阅读 · 24 评论 -
【postgresql 基础入门】psql客户端的使用方法
postgresql 数据库是一款通用的关系型数据,在开源数据库中能与商业数据媲美,在业界也越来越流行。因为是开源数据库,不仅公开源码,还有很多使用案例,好用的插件,所以它的慢慢变成了数据库的先驱和标准,通过postgresql可以很好从使用到原理,彻底搞懂;如果是学习编程,也可以学到丰富的编程知识,数据结构,编程技巧,它里面还有很多精妙的架构设计,分层思想,可以灵活定制的思想。原创 2023-09-03 23:45:00 · 9155 阅读 · 78 评论 -
【postgresql 基础入门】从了解数据库访问权限,访问数据库,到认识数据库的所有者及属性,从此打开了数据库使用的大门
postgresql 数据库是一款通用的关系型数据,在开源数据库中能与商业数据媲美,在业界也越来越流行。因为是开源数据库,不仅公开源码,还有很多使用案例,好用的插件,所以它的慢慢变成了数据库的先驱和标准,通过postgresql可以很好从使用到原理,彻底搞懂;如果是学习编程,也可以学到丰富的编程知识,数据结构,编程技巧,它里面还有很多精妙的架构设计,分层思想,可以灵活定制的思想。原创 2023-09-10 22:00:00 · 6024 阅读 · 24 评论 -
【postgresql 基础入门】数据表的创建,永久数据放普通表,中间结果放临时表,附带信用卡业务案例SQL设计
postgresql 数据库是一款通用的关系型数据,在开源数据库中能与商业数据媲美,在业界也越来越流行。因为是开源数据库,不仅公开源码,还有很多使用案例,好用的插件,所以它的慢慢变成了数据库的先驱和标准,通过postgresql可以很好从使用到原理,彻底搞懂;如果是学习编程,也可以学到丰富的编程知识,数据结构,编程技巧,它里面还有很多精妙的架构设计,分层思想,可以灵活定制的思想。原创 2023-09-13 22:00:00 · 7513 阅读 · 43 评论 -
【postgresql 基础入门】表的操作,表结构查看、修改字段类型、增加删除字段、重命名表,对表的操作总是比别人棋高一着
postgresql 数据库是一款通用的关系型数据,在开源数据库中能与商业数据媲美,在业界也越来越流行。因为是开源数据库,不仅公开源码,还有很多使用案例,好用的插件,所以它的慢慢变成了数据库的先驱和标准,通过postgresql可以很好从使用到原理,彻底搞懂;如果是学习编程,也可以学到丰富的编程知识,数据结构,编程技巧,它里面还有很多精妙的架构设计,分层思想,可以灵活定制的思想。原创 2023-09-21 04:00:00 · 9939 阅读 · 53 评论