PostgreSQL

PostgreSQL基础知识之SQL操作符实践指南

前言 操作符是数据库具有的运算特性,对文本字符和一些标签字符的处理,使用操作符可以简化SQL代码,同时也可以节省开发时间和提高开发效率。 比较操作符 在PostgreSQL中,所有的数据类型都可以使用比较操作符,比较操作符运算结果返回一个布尔值。即 TRUE 或者 FALSE。比较操作符为双目操作符,因此被比较的两个值的数据类型必须是相同的数据类型或者在彼此之间可以进行隐式类型转换。在Postgr... »

Mac系统重置PostgreSQL密码的方法示例代码

PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,Pos... »

PostgreSQL图(graph)的递归查询实例

PostgreSQL图(graph)的递归查询实例

背景 在树形递归查询这篇文章,我记录了使用CTE语法查询树形结构的办法。在一个树形结构中,每一个节点最多有一个上级,可以有任意个数的下级。 在实际场景中,我们还会遇到对图(graph)的查询,图和树的最大区别是,图的节点可以有任意个数的上级和下级。如下图所示 因为图可能存在loop结构(上图红色箭头),所以在使用CTE递归的过程中,必须要破环(break loop),否则算法就会进入无限递归,永不... »

Ubuntu PostgreSQL安装和配置的介绍

Ubuntu PostgreSQL安装和配置的介绍

1、安装 使用如下命令,会自动安装最新版,这里为9.5 sudo apt-get install postgresql 安装完成后,默认会: (1)创建名为”postgres”的Linux用户 (2)创建名为”postgres”、不带密码的默认数据库账号作为数据库管理员 (3)创建名为”postgres”的表 安装完成后的一些... »

Ubuntu中卸载Postgresql出错的解决方法

前言 最近在卸载PostgreSQL数据库的出错了,无奈只能一步步的进行排查分析解决,下面将解决的过程分享出来,给同样遇到这个问题的朋友们参考学习,下面话不多说了,来一起看看详细的介绍吧。 出错输出: Removing postgresql-9.1 (9.1.18-0ubuntu0.12.04) ... /var/lib/dpkg/info/postgresql-9.1.prerm: 9: .: ... »

Linux CentOS 7安装PostgreSQL9.3图文教程

Linux CentOS 7安装PostgreSQL9.3图文教程

如题,本篇blog记录一下在Linux CentOS 7中安装PostgresSQL的整个过程以及数据库配置等,在Linux系统中,PostgreSQL的安装方式分两种,分别是: 1、二进制安装包安装 2、源码编译安装 由于我们没有什么特殊需求所在在此选择较为简单的方式——二进制安装包安装,二进制包安装的方法一般都是通过不同发行版本的Linux下的包管理器进行的,例如Debian和Ubuntu下是... »

PostgreSQL教程(十):性能提升技巧

一、使用EXPLAIN:     PostgreSQL为每个查询都生成一个查询规划,因为选择正确的查询路径对性能的影响是极为关键的。PostgreSQL本身已经包含了一个规划器用于寻找最优规划,我们可以通过使用EXPLAIN命令来查看规划器为每个查询生成的查询规划。     PostgreSQL中生成的查询规划是由1到n个规划节点构成的规... »

在windows下手动初始化PostgreSQL数据库教程

环境:win7 64 sp1 PG:9.3.5 1、创建用户postgres,密码同样是postgres: net user postgres postgres /add 2、在数据库根目录下建立data目录: C:\Program Files\PostgreSQL\9.3>md data 3、去掉administrator对data目录的权限: C:\Program Files\Postg... »

PostgreSQL中的OID和XID 说明

oid: 行的对象标识符(对象 ID)。这个字段只有在创建表的时候使用了 WITH OIDS ,或者是设置了default_with_oids 配置参数时出现。 这个字段的类型是 oid (和字段同名)。 例子: 代码如下: CREATE TABLE pg_language ( lanname name NOT NULL, lanowner oid NOT NULL, lanispl boolea... »

PostgreSQL实现批量插入、更新与合并操作的方法

PostgreSQL实现批量插入、更新与合并操作的方法

前言 就在 2019 年 1 月份微软收购了 PostgreSQL 数据库的初创公司 CitusData, 在云数据库方面可以增强与 AWS 的竟争。AWS 的 RDS 两大开源数据库就是 MySQL(Aurora 和 MariaDB 是它的变种) 和 PostgreSQL。 而 PostgreSQL 跳出了普通关系型数据库的类型约束,它灵活的支持 JSON, JSONB, XML, 数组等类型。... »

在Ubuntu中安装Postgresql数据库的步骤详解

介绍 众所周知PostgreSQL 是自由的对象-关系型数据库服务器(数据库管理系统),在ubuntu下安装Postgresql是一件非常容易的事情,下面话不多说了,来跟着小编来一起看看详细的介绍吧。 安装方法如下: 1、安装Postgresql的服务器以及客户端: sudo apt-get install postgresql postgresql-client 2、通常情况下,安装完成以后Po... »

Mac OS上安装PostgreSQL的教程

容我开头啰嗦一下。一直以来,我和 MySQL 这位久经考验的老朋友合作愉快。但自从了解了一点 PostgreSQL 后, 对其丰富的功能特性就十分着迷。比如字段类型原生支持 json, xml 和 array。跟 MySQL 比起来,感觉 PostgreSQL 更高级一些。 安装brew 官方文档: http://mxcl.github.com/homebrew/ 先安装Git,打开一个shell... »

PostgreSQL教程(九):事物隔离介绍

在SQL的标准中事物隔离级别分为以下四种:     1. 读未提交(Read uncommitted)     2. 读已提交(Read committed)     3. 可重复读(Repeatable read)     4. 可串行化(Serializable)  ... »

CentOS中运行PostgreSQL需要修改的内核参数及配置脚本分享

PostgreSQL在CentOS上部署的时候,需要设置一些操作系统的参数,官方文档上列举了一些(传送门)。除了这些,还有一些其他的设置,如单个用户允许的最大进程数,单个进程的最大句柄数等,这些一般也需要调整,否则系统会在一些条件下出现问题,或者性能下降。下面从系统资源限制类和内存参数优化类来进行说明. 系统资源限制类 1.单个用户允许的最大进程数:linux系统默认是1024,如果PG的最大连接... »

PostgreSQL 创建表分区

创建表分区步骤如下: 1. 创建主表 CREATE TABLE users ( uid int not null primary key, name varchar(20)); 2. 创建分区表(必须继承上面的主表) CREATE TABLE users_0 ( check (uid >= 0 and uid< 100) ) INHERITS (users); CREATE TABLE... »

PostgreSQL pg_ctl start启动超时实例分析

一、问题 pg_ctl start启动时报错退出:pg_ctl:server did not start in time。超时时间是多少?从什么时候到哪个阶段算超时? 二、分析:该信息打印位置,从后面代码段do_start函数中可以看出 1、pg_ctl start调用start_postmaster启动PG的主进程后,每隔0.1ms检查一次postmaster.pid文件,是否已写入ready/... »

详解PostgreSQL 语法中关键字的添加

详解PostgreSQL 语法中关键字的添加 当PostgreSQL的后台进程Postgres接收到查询语句后,首先将其传递给查询分析模块,进行词法、语法和语义分析。 记录下在parser语法解析模块添加关键字。 几个核心文件简介 源文件 说明 gram.y 定义语法结构,bison编译后生成gram.y和gram.h scan.l 定义词法结构,flex编译后生成scan.c kwlist.h ... »

PostgreSQL中常用的时间日期脚本使用教程

获取系统时间函数 select now(); --2013-11-28 16:20:25.259715+08 select current_timestamp; --2013-11-28 16:20:38.815466+08 select current_date; --2013-11-28 select current_time; --16:21:08.981171+08 时间的计算 ̵... »

PostgreSQL教程(八):索引详解

一、索引的类型:     PostgreSQL提供了多  种索引类型:B-Tree、Hash、GiST和GIN,由于它们使用了不同的算法,因此每种索引类型都有其适合的查询类型,缺省时,CREATE INDEX命令将创建B-Tree索引。         1. B-Tree:   代码如下: &nbs... »

PostgreSQL ERROR: invalid escape string 解决办法

今天有同事在配置PostgreSQL为Hive元数据库后,运行Hive SQL时遇到以下报错信息: 代码如下: Caused by: MetaException(message:Got exception: org.apache.hadoop.hive.metastore.api.MetaException javax.jdo.JDODataStoreException: Error execut... »

PostgreSQL 数据库性能提升的几个方面

8.增加maintenance_work_mem参数大小 增加这个参数可以提升CREATE INDEX和ALTER TABLE ADD FOREIGN KEY的执行效率。 »

PostgreSQL实现一个通用标签系统

PostgreSQL实现一个通用标签系统

前言 对资源打标签在建站过程中是很常见的需求,有些时候我们需要给文章打标签,有些时候我们需要给用户打标签。实现一个标签系统其实并不难,其本质就是一个多对多的关系-我可以对同一篇博客打多个标签,同时也可以把一个标签打到不同的博客身上。这篇文章主要通过分析标签系统的原理,并用PostgreSQL来实现一个能够为多种资源打标签的标签系统。 1. 单一资源标签系统 先从单一资源开始,所谓单一资源便是,我们... »

PostgreSQL数据库事务出现未知状态的处理方法

背景 数据库的事务是原子操作,要么成功,要么失败。但是实际上在客户端的视角,可能有第三种状态:unknown状态。 当客户端提交事务结束(rollback , commit , prepare xact , rollback pxact , commit pxact)的请求后,数据库收到请求,数据库可能执行失败,也可能执行成功,不管怎样都要写对于的WAL日志,还有CLOG,然后数据库要将执行结果返... »

深入解读PostgreSQL中的序列及其相关函数的用法

一、简介 序列对象(也叫序列生成器)就是用CREATE SEQUENCE 创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。 二、创建序列 方法一:直接在表中指定字段类型为serial 类型 david=# create table tbl_xulie ( david(# id serial, david(# name text); NOTICE: CREATE TABLE wi... »

PostgreSQL教程(七):函数和操作符详解(3)

九、序列操作函数:     序列对象(也叫序列生成器)都是用CREATE SEQUENCE创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。下面序列函数,为我们从序列对象中获取最新的序列值提供了简单和并发读取安全的方法。   函数 返回类型 描述 nextval(regclass) bigint 递增序列对象到它的下一个数值并且返回该值。这... »

Page 1 of 6123»