![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PostgreSQL学习总结
文章平均质量分 88
备份
xinlianluohan
本博客都是为了方便自己复习
展开
-
PostgreSQL兼容之mysql的date_formate函数
DATE_FORMAT转换转载 2022-10-06 15:09:48 · 4638 阅读 · 0 评论 -
PostgreSQL学习总结(二十)——(PL/pgSQL过程语言)
一、概述: PL/pgSQL函数在第一次被调用时,其函数内的源代码(文本)将被解析为二进制指令树,但是函数内的表达式和SQL命令只有在首次用到它们的时候,PL/pgSQL解释器才会为其创建一个准备好的执行规划,随后对该表达式或SQL命令的访问都将使用该规划。如果在一个条件语句中,有部分SQL命令或表达式没有被用到,那么PL/pgSQL解释器在本次调用中将不会为其准备执行规划,这样的好处是可以有效地减少为PL/pgSQL函数里的语句生成分析和执行规划的总时间,然而缺点是某些表达式或SQL命令中的错误转载 2022-08-12 23:05:07 · 2048 阅读 · 0 评论 -
PostgreSQL学习总结(十九)——(SQL语言函数)
SQL函数的函数体应该是用分号分隔的SQL语句列表,其中最后一条语句之后的分号是可选的。事实上,在SQL函数中,不仅可以包含SELECT查询语句,也可以包含INSERT、UPDATE和DELETE等其他标准的SQL语句,但是和事物相关的语句不能包含其中,如BEGIN、COMMIT、ROLLBACK和SAVEPOINT等。该方法对于返回复合类型的函数而言特别有用,如果该函数定义为返回一个基本类型,那么该函数生成一个单字段表,如果该函数定义为返回一个复合类型,那么该函数生成一个复合类型里每个属性组成的行。...转载 2022-08-12 23:03:36 · 534 阅读 · 0 评论 -
PostgreSQL学习总结(十八)——(客户端命令<二>)
表示任意单个字符,.(dot)表示schema和object之间的分隔符,如a*.b*,表示以a开头的schema和以b开头的数据库对象。参数与命令动词以及其他参数之间可以用空白符隔开,如果参数里面包含空白符,该参数必须用单引号括起,如果参数内包含单引号,则需要用反斜杠进行转义,此外单引号内的参数还支持类似C语言printf函数所支持的转义关键字,如\t、\n等。这个格式缺省的时候是压缩的。#文件导入时,2、4和8等三个对象将不会被导入,在恢复的过程中将先导入编号为10的对象的数据,再导入对象6的数据。..转载 2022-08-08 00:45:46 · 335 阅读 · 0 评论 -
PostgreSQL学习总结(十七)——(客户端命令<一>)
在当前用户的HOME目录下,我们需要手工创建文件名为 .pgpass的口令文件,这样就可以在我们连接PostgreSQL服务器时,客户端命令自动读取该文件已获得登录时所需要的口令信息。删除一个PostgreSQL用户帐户,需要说明的是只有超级用户或带有CREATEROLE权限的用户可以执行该命令,如果要删除超级用户,只能通过超级用户的身份执行该命令。在学习后面的客户端命令之前,我们需要根据自己的应用环境手工创建该文件,以便后面所有的示例代码都会用到该口令文件,这样它们就都可以以批处理的方式自动完成。...转载 2022-08-08 00:43:57 · 476 阅读 · 0 评论 -
PostgreSQL学习总结(十六)——(系统视图)
如果在一个最后退出的事务中发出了UPDATE命令,那么UPDATE命令的效果将在事务回滚之后消失。该视图提供了对数据库用户的相关信息的访问。这个视图只是pg_shadow表的公众可读的部分的视图化,但是不包含口令字段。这个视图只是pg_authid表的公开可读部分的视图化,同时把口令字段用空白填充。该视图提供了对数据库里每个视图的有用信息的访问途径。该视图提供了对有关数据库中每个表的有用信息地访问。该视图提供对数据库中每个索引的有用信息的访问。该视图提供对查询重写规则的有用信息访问的接口。...转载 2022-08-08 00:43:01 · 852 阅读 · 0 评论 -
PostgreSQL学习总结(十五)——(系统表)
和大多数系统表不同的是,在一个集群里该表是所有数据库共享的,即每个集群只有一份pg_database拷贝,而不是每个数据库一份。该系统表主要存储字段缺省值,字段中的主要信息存放在pg_attribute系统表中。该系统表存储所有表(包括系统表,如pg_class)的字段信息。#4. 系统创建时自动创建的两个表空间(pg_default和pg_global)的文件位置为空(不是NULL)。#查看该索引所在表的名称,以及构成该索引的键值数量和具体键值的字段编号。#查看指定表包含的索引,同时列出索引的名称。...转载 2022-08-08 00:41:35 · 1140 阅读 · 0 评论 -
PostgreSQL学习总结(十四)——(数据库维护)
我们可以为特定的表,甚至是表中特定的字段运行ANALYZE命令,这样我们就可以根据实际情况,只对更新比较频繁的部分信息执行ANALYZE操作,这样不仅可以节省统计信息所占用的空间,也可以提高本次ANALYZE操作的执行效率。对于重建后的索引还存在另外一个性能上的优势,因为在新建立的索引上,逻辑上相互连接的页面在物理上往往也是连在一起的,这样可以提高磁盘页面被连续读取的几率,从而提高整个操作的IO效率。#10. 这里需要额外说明的是,上面删除的数据均位于数据表的前部,如果删除的是末尾部分,...转载 2022-08-08 00:40:36 · 524 阅读 · 0 评论 -
PostgreSQL学习总结(十三)——(数据库管理)
PostgreSQL服务器提供了大量的运行时配置变量,我们可以根据自己的实际情况为某一数据库的某一配置变量指定特殊值,通过执行下面的SQL命令可以使该数据库的某一配置被设置为指定值,而不再使用缺省值。在PostgreSQL中,数据库在物理上是相互隔离的,对它们的访问控制也是在会话层次上进行的。命令,然而要删除一个包含数据库对象的表空间,则需要先将该表空间上的所有对象全部删除后,才可以再在删除该表空间。与数据库相关联的表空间用于存储该数据库的系统表,以及任何使用该数据库的服务器进程创建的临时文件。......转载 2022-08-08 00:39:05 · 852 阅读 · 0 评论 -
PostgreSQL学习总结(十二)——(角色和权限)
然而与此不同的是,赋予wheel角色的权限在该会话中将不可用,因为joe角色只是wheel角色的一个间接成员,它是通过admin角色间接传递过来的,而admin角色却含有NOINHERIT属性,这样wheel角色的权限将无法被joe继承。不过需要注意的是,在删除之前,任何属于该组角色的对象都必须先被删除或者将对象的所有者赋予其它角色,与此同时,任何赋予该组角色的权限也都必须被撤消。在PostgreSQL中,首先需要创建一个代表组的角色,之后再将该角色的membership权限赋给独立的用户角色即可。...转载 2022-08-08 00:37:59 · 2116 阅读 · 0 评论 -
PostgreSQL学习总结(十)——(性能提升技巧)
通过提高checkpoint_segments变量的值,可以有效的减少检查点的数目。这个规划仍然试图用同样的索引扫描从tenk1里面取出符合要求的100行,并把它们存储在内存中的散列(哈希)表里,然后对tenk2做一次全表顺序扫描,并为每一条tenk2中的记录查询散列(哈希)表,寻找可能匹配t1.unique2 = t2.unique2的行。在该SQL中,表的数据行是以索引的顺序来读取的,这样就会令读取它们的开销变得更大,然而事实上这里将要获取的行数却少得可怜,因此没有必要在基于行的物理位置进行排序了。..转载 2022-08-08 00:31:42 · 597 阅读 · 0 评论 -
PostgreSQL学习总结(九)——(事物隔离)
事务隔离转载 2022-08-08 00:24:59 · 312 阅读 · 0 评论 -
PostgreSQL学习总结(八)——(索引)
postgresql索引转载 2022-08-08 00:22:32 · 1179 阅读 · 0 评论 -
PostgreSQL——双冒号(::)的含义
:: 强制类型转换符原创 2022-08-07 18:18:41 · 3005 阅读 · 0 评论 -
postgresql-10.15-1-windows-x64安装详细步骤
PostgreSQL 10 安装详细步骤:https://blog.csdn.net/antma/article/details/83579920 PostGIS 2.5.0 安装详细步骤:https://blog.csdn.net/antma/article/details/83580859一、下载安装包1、进入PostgreSQL 官网,进入下载导航,点击windows系统,或直接打开如下网址:https://www.postgresql.org/download/window...转载 2021-04-28 17:57:08 · 826 阅读 · 0 评论 -
PostgreSQL学习总结(开始篇)——安装详细步骤(windows)
PostgreSQL安装:一、windows下安装过程安装介质:postgresql-9.1.3-1-windows.exe(46M),安装过程非常简单,过程如下:1、开始安装:2、选择程序安装目录:注:安装 PostgreSQL 的分区最好是 NTFS 格式的。PostgreSQL 首要任务是要保证数据的完整性,而 FAT 和 FAT32 文件系统不能提供这样的可靠性保障,而且 FAT 文件系统缺乏安全性保障,无法保证原始数据在未经授权的情况下被更改。此外,PostgreSQL..转载 2021-03-17 21:42:17 · 610 阅读 · 0 评论 -
PostgreSQL学习总结(七)——函数和操作符[三]
九、序列操作函数:序列对象(也叫序列生成器)都是用CREATE SEQUENCE创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。下面序列函数,为我们从序列对象中获取最新的序列值提供了简单和并发读取安全的方法。函数 返回类型 描述 nextval(regclass) bigint 递增序列对象到它的下一个数值并且返回该值。这个动作是自动完成的。即使多个会话并发运行nextval,每个进程也会安全地收到一个唯一的序列值。 currval(regclas转载 2020-12-08 14:55:44 · 427 阅读 · 0 评论 -
PostgreSQL学习总结(六)——函数和操作符[二]
六、模式匹配:PostgreSQL中提供了三种实现模式匹配的方法:SQL LIKE操作符,更近一些的SIMILAR TO操作符,和POSIX-风格正则表达式。 1. LIKE: stringLIKEpattern [ESCAPEescape-character ] stringNOT LIKEpattern [ESCAPEescape-character ] 每个pattern定义一个字串的集合。如果该string包含在pattern代表的字串集合里,那么...转载 2020-12-08 14:46:21 · 279 阅读 · 0 评论 -
PostgreSQL学习总结(五)——函数和操作符[一]
一、逻辑操作符:常用的逻辑操作符有:AND、OR和NOT。其语义与其它编程语言中的逻辑操作符完全相同。二、比较操作符: 下面是PostgreSQL中提供的比较操作符列表:操作符 描述 < 小于 > 大于 <= 小于或等于 >= 大于或等于 = 等于 != 不等于 比较操作符可以用于所有可以比较的数据类型。所有比较操作符都是双目操作符,且返回boolean类型。除了比较操作符以外,我们还可以使用.....转载 2020-12-08 14:23:59 · 492 阅读 · 0 评论 -
PostgreSQL学习总结(四)——常用数据类型
一、数值类型:下面是PostgreSQL所支持的数值类型的列表和简单说明:名字 存储空间 描述 范围 smallint 2 字节 小范围整数 -32768 到 +32767 integer 4 字节 常用的整数 -2147483648 到 +2147483647 bigint 8 字节 大范围的整数 -9223372036854775808 到 9223372036854775807 decimal 变长.转载 2020-12-05 01:03:53 · 2567 阅读 · 0 评论 -
PostgreSQL学习总结(三)——表的继承和分区
一、表的继承:这个概念对于很多已经熟悉其他数据库编程的开发人员而言会多少有些陌生,然而它的实现方式和设计原理却是简单易懂,现在就让我们从一个简单的例子开始吧。 1. 第一个继承表: CREATE TABLEcities (--父表 name text, population float, altitude int ); CREATE TABLEcapitals (--子表 st...转载 2020-12-05 00:16:34 · 786 阅读 · 0 评论 -
PostgreSQL学习总结(二)——模式Schema
一个数据库包含一个或多个命名的模式,模式又包含表。模式还包含其它命名的对象,包括数据类型、函数,以及操作符。同一个对象名可以在不同的模式里使用而不会导致冲突; 比如,schema1和myschema都可以包含叫做mytable的表。和数据库不同,模式不是严格分离的:一个用户可以访问他所连接的数据库中的任意模式中的对象,只要他有权限。 我们需要模式有以下几个主要原因: 1). 允许多个用户使用一个数据库而不会干扰其它用户。 2). 把数据库对象组织成逻辑组,让它们更便于管理。 ...转载 2020-12-04 23:59:14 · 513 阅读 · 0 评论 -
PostgreSQL学习总结(一)——数据表
目录一、表的定义:一、表的定义:对于任何一种关系型数据库而言,表都是数据存储的最核心、最基础的对象单元。现在就让我们从这里起步吧。 1. 创建表: CREATE TABLEproducts ( product_no integer, name text, price numeric ); 2. 删除表: DROP TABLEproducts; 3. 创建带有缺省值的表: CREATE T............转载 2020-12-04 23:34:15 · 775 阅读 · 0 评论