PostgreSQL学习手册
postgresql教程
postgresql教程
PostgreSQL是一个开源的关系数据库管理系统(RDBMS),它的目标是成为最先进的开源数据库,并支持许多标准SQL 功能以及一些不同的高级功能。
本教程将向您介绍PostgreSQL的基本概念和用法。我们将从安装和设置开始,然后逐步深入了解表、视图、索引、事务和查询等主题。
第一部分:安装和设置
在本部分中,我们将向您介绍如何下载、安装和设置PostgreSQL数据库。我们还将介绍一些基本概念和术语,如数据库、表和列。
1. 安装PostgreSQL:在本节中,我们将向您展示如何从官方网站或其他来源下载并安装PostgreSQL。
2. 设置数据库连接:在本节中,我们将介绍如何设置和配置数据库连接,包括创建用户、设置密码和分配权限等内容。
3. 创建数据库和表:在本节中,我们将介绍如何创建数据库和表,并向您展示一些常用的数据类型和约束。
第二部分:表和视图
在本部分中,我们将更详细地介绍表格和视图的概念,并向您展示如何使用它们来存储和查询数据。
1. 创建和修改表格:在本节中,我们将介绍如何创建新的表格,并向您展示如何修改和删除现有的表格。
2. 数据类型和约束:在本节中,我们将深入了解不同的数据类型和约束,并向您展示如何使用它们来保证数据的完整性和一致性。
3. 视图和触发器:在本节中,我们将向您展示如何创建和使用视图和触发器,以及如何利用它们来简化复杂的查询和操作。
第三部分:索引和查询优化
在本部分中,我们将介绍索引和查询优化的概念,并向您展示如何使用索引来提高查询性能。
PostgreSQL学习手册(数据库维护)
PostgreSQL学习⼿册(数据库维护)
⼀、恢复磁盘空间:
在PostgreSQL中,使⽤delete和update语句删除或更新的数据⾏并没有被实际删除,⽽只是在旧版本数据⾏的物理地址上将该⾏的状态置为已删除或已过期。因此当数据表中的数据变化极为频繁时,那么在⼀段时间之后该表所占⽤的空间将会变得很⼤,然⽽数据量却可能变化不⼤。要解决该问题,需要定期对数据变化频繁的数据表执⾏VACUUM操作。
VACUUM命令存在两种形式,VACUUM和VACUUM FULL,它们之间的区别见如下表格:
⽆VACUUM VACUUM VACUUM FULL
删除⼤量数据之后只是将删除数据的
状态置为已删除,
该空间不能记录被
重新使⽤。
如果删除的记录位于表的末端,其所占⽤
的空间将会被物理释放并归还操作系统。
如果不是末端数据,该命令会将指定表或
索引中被删除数据所占⽤空间重新置为可
⽤状态,那么在今后有新数据插⼊时,将
优先使⽤该空间,直到所有被重⽤的空间
⽤完时,再考虑使⽤新增的磁盘页⾯。
不论被删除的数据是否处于数据表的末
端,这些数据所占⽤的空间都将被物理
的释放并归还于操作系统。之后再有新
数据插⼊时,将分配新的磁盘页⾯以供
使⽤。
执⾏效率由于只是状态置为操作,因此效率较⾼。在当前版本的PostgreSQL(v9.1)中,该命令会为指定的表或索引重新⽣成⼀个数据⽂件,并将原有⽂件中可⽤的数据导⼊到新⽂件中,之后再删除原来的数据⽂件。因此在导⼊过程中,要求当前磁盘有更多的空间可⽤于此操作。由此可见,该命令的执⾏效率相对较低。
PostgreSQL8.0.0简体中文教程
PostgreSQL 8.0.0 中文文档(PostgreSQL 中国制作)Prev Fast
Backward
Index
Symbols
$, 位置参数
$libdir, 动态装载
*, 选择列表项
.pgpass, 口令文件
安装, 安装指导
在Windows 上, 要求, 在Windows 上安装客户端
版本, 系统信息函数
兼容性, 在不同版本之间迁移
保存点
定义, SAVEPOINT
回滚, ROLLBACK TO
释放, RELEASE SAVEPOINT
备份, 系统管理函数, 备份和恢复
比较
操作符, 比较操作符
逐行的, 行和数组比较
子查询结果行, 子查询表达式
编译
libpq 应用, 制作libpq 程序
标量
See 表达式
标签
See 别名
标识符
长度, 标识符和关键字
语法, 标识符和关键字
标准差, 聚集函数
表, 概念, 表的基本概念
删除, 表的基本概念
重命名, 给表改名字
表表达式, 表表达式
表达式
计算顺序, 表达式计算规则
语法, 值表达式
表函数, 表函数
表空间, 表空间
缺省, 语句行为
别名
用于查询里的表名字, 在表之间连接
在FROM 子句里, 表和列别名
在选择列表里的, 字段标签
并发, 并发控制
并集合, 组合查询
参考完整性, 外键, 外键
参数
语法, 位置参数
操作符, 函数和操作符, 逻辑操作符
调用, 操作符调用
一次调用里的类型解析, 操作符
优先级, 词法优先级
语法, 操作符
操作符r
用户定义的, 用户定义操作符
操作符表, 操作符表
测试, 回归测试
层次型数据库, 概念
插入数据, 插入数据
查询, 查询一个表, 查询
PostgreSQL学习手册(目录)
PostgreSQL学习⼿册(⽬录)
事实上之前有很长⼀段时间都在纠结是否有必要好好学习它,但是始终都没有⼀个很好的理由说服⾃⼰。甚⾄是直到这个项⽬最终决定选⽤PostgreSQL时,我都没有真正意识到学习它的价值,当时只是想反正和其它数据库差不多,能⽤就⾏了。然⽽有⼀天晚上,⾃⼰也不知道为什么,躺在床上开始回想整个项⽬的实施过程,想着想着就想到了数据库选型这⼀问题上了。事情是这样的,最初客户将他们的产品⽬标定位为主打中型规模,同时也要在⼀定程度上⽀持⼩型规模。鉴于此,我们为他们提供的⽅案是中型规模的数据库选⽤Oracle,⼩型规模的选定MySQL,在经过多轮商谈之后这个⽅案通过了。然⽽随着项⽬的深⼊,客户突然有⼀天提出,由于成本和市场推⼴等问题,该产品的数据库部分需要进⾏⼀定的调整,调整的结果是中型规模可以同时⽀持Oracle和MySQL,⽽⼩型规模则要同时⽀持MySQL和PostgreSQL,原因⾮常简单,PostgreSQL是纯免费的数据库产品。听到这个消息之后,我当时就⾮常恼⽕,因为当初为了保证运⾏时效率(国标),我们的数据库访问层是完全基于数据库供应商提供的原始C接⼝开发的,甚⾄都没有考虑ODBC提供的原始C接⼝,以防在转换中失去效率,或是ODBC本⾝为了强调通⽤性⽽不得不牺牲某些数据库的优化特征,如批量插⼊、批量读取等。最后的结果显⽽易见,客户就是上帝,上帝的意见就是真理,这样我们就不得不基于现有的访问层接⼝⼜重新开发了⼀套⽀持PostgreSQL原⽣C接⼝的驱动。然⽽随着对PostgreSQL的不断学习,对它的了解也在逐步加深,后来发现它的功能还是⾮常强⼤的,特别是对GIS空间数据的⽀持就更加的吸引我了。于是就在脑⼦⾥为MySQL和PostgreSQL做了⼀个简单的对⽐和分析,最后得出⼀个结论,相⽐MySQL,PostgreSQL并没有什么刚性的缺点,但是它的纯免费特征确实是MySQL⽆法⽐拟的。它完全可以成为软件产品解决⽅案中⾮常重要的⼀环,特别是针对很多中低端⽤户,不仅在使⽤中不会感到任何差异,⽽且还能节省⼀部分额外的费⽤,这对于产品的市场推⼴是⾮常有帮助的。想到这⾥便决定起⽽⾏之,花上⼀段时间好好的学习和研究它,于是就有了这个系列的博客。
PostgreSQL入门教程(命令行)
PostgreSQL⼊门教程(命令⾏)
初次安装完成后
1.默认⽣成⼀个名为postgres的数据库
2.⼀个名为postgres的数据库⽤户
3.这⾥需要注意的是,同时还⽣成了⼀个名为postgres的Linux系统⽤户。
下⾯,我们使⽤postgres⽤户,来⽣成其他⽤户和新数据库。好⼏种⽅法可以达到这个⽬的,这⾥介绍两种。
第⼀种⽅法:使⽤PostgreSQL控制台
⾸先,新建⼀个Linux新⽤户,可以取你想要的名字,这⾥为dbuser。
sudo adduser dbuser
然后,切换到postgres⽤户。
sudo su - postgres
下⼀步,使⽤psql命令登录PostgreSQL控制台
psql
这时相当于系统⽤户postgres以同名数据库⽤户的⾝份,登录数据库,这是不⽤输⼊密码的。如果⼀切正常,系统提⽰符会变
为”postgres=#”,表⽰这时已经进⼊了数据库控制台。以下的命令都在控制台内完成。
第⼀件事是使⽤\password命令,为postgres⽤户设置⼀个密码。
\password postgres
第⼆件事是创建数据库⽤户dbuser(刚才创建的是Linux系统⽤户),并设置密码。
CREATE USER dbuser WITH PASSWORD 'password';
第三件事是创建⽤户数据库,这⾥为exampledb,并指定所有者为dbuser。
CREATE DATABASE exampledb OWNER dbuser;
第四件事是将exampledb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限。
PostgreSQL基础教学与应用
PostgreSQL基础教学与应用第一章:PostgreSQL简介
1.1 PostgreSQL的定义和特点
1.2 PostgreSQL在数据库领域的应用价值
第二章:PostgreSQL的安装和配置
2.1 安装PostgreSQL
2.2 配置PostgreSQL
第三章:PostgreSQL数据库的基本操作
3.1 连接数据库
3.2 创建数据库
3.3 创建表
3.4 插入数据
3.5 查询数据
3.6 更新数据
3.7 删除数据
第四章:PostgreSQL数据库的高级操作
4.1 约束
4.2 索引
4.3 视图
4.4 存储过程
4.5 触发器
第五章:PostgreSQL的高可用性
5.1 水平扩展
5.2 热备份
5.3 流复制
第六章:PostgreSQL与其他数据库的比较6.1 PostgreSQL与MySQL的比较
6.2 PostgreSQL与Oracle的比较
第七章:PostgreSQL的应用案例分析
7.1 PostgreSQL在电子商务领域的应用7.2 PostgreSQL在大数据处理中的应用7.3 PostgreSQL在地理信息系统中的应用第八章:PostgreSQL的未来发展趋势
8.1 PostgreSQL的发展历程
8.2 PostgreSQL的未来发展方向
第一章:PostgreSQL简介
PostgreSQL是一个开源的关系型数据库管理系统,其具有可扩
展性、稳定性和安全性等特点。它被广泛应用于企业级数据库管
理和大规模数据处理领域,成为了目前世界上发展最快的开源数
据库之一。
第二章:PostgreSQL的安装和配置
PostgreSQL使用方法
PostgreSQL使用方法
本文将介绍PostgreSQL的一些基本使用方法,包括安装、配置、创
建数据库、表和用户,以及常用的查询语句和操作。
1. 安装和配置PostgreSQL
1.2 配置PostgreSQL:在安装过程中,您将被要求设置一个超级用
户密码。此密码将用于登录PostgreSQL服务器。
2.创建数据库、表和用户
2.1创建数据库:可以使用以下命令创建一个新的数据库。
CREATE DATABASE database_name;
2.2连接到数据库:可以使用以下命令连接到一个数据库。
\c database_name;
2.3创建表:在连接到数据库后,可以使用以下命令创建一个新的表。您可以指定表的列及其数据类型。
CREATE TABLE table_name
column1 datatype1,
column2 datatype2,
....
2.4创建用户:可以使用以下命令创建一个新的用户。
CREATE USER username WITH PASSWORD 'password';
3.数据库查询和操作
3.1插入数据:可以使用以下命令将数据插入到表中。
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
3.2更新数据:可以使用以下命令更新表中的数据。
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
postgresql教程
postgresql教程
PostgreSQL是一种开源的对象-关系型数据库管理系统,它有很多强大的功能和特性。本教程将为你提供一个详细的介绍,帮助你更好地了解和使用PostgreSQL。
PostgreSQL对标准SQL支持非常好,它实现了大部分SQL标准的功能,并且还有一些额外的扩展功能。它支持复杂的查询语句、子查询和联接操作等。另外,PostgreSQL还支持事务管理,可以保证数据的一致性和可靠性。
PostgreSQL具有很多高级特性,比如支持多个并发连接,可以同时处理多个用户的请求。它还支持多版本并发控制(MVCC)机制,可以避免并发写操作引起的冲突。此外,PostgreSQL还支持复制和故障转移,可以保证系统的高可用性。
本教程将介绍如何安装和配置PostgreSQL,包括各种平台的安装方法。我们还将介绍如何创建数据库和数据表,并进行增删改查等操作。同时,你还将学习如何使用索引来提高查询效率,以及如何优化数据库性能。
除了基本的增删改查操作,本教程还将介绍如何使用PostgreSQL的高级功能和特性。我们将提供示例代码和实践案例,帮助你更好地理解和运用这些功能。
最后,本教程还将介绍PostgreSQL的安全性和可扩展性。我们将阐述如何设置用户权限和访问控制,以及如何进行备份和
恢复操作。此外,我们还将介绍PostgreSQL的水平扩展和垂直扩展方法,以满足不同规模的应用需求。
希望通过本教程,你能够深入了解和掌握PostgreSQL的各种功能和特性,能够熟练地使用和管理PostgreSQL数据库。无论你是初学者还是有经验的开发人员,本教程都将为你提供有用的信息和指导。开始学习吧!
PostgreSQL教程
PostgreSQL教程
PostgreSQL 教程
PostgreSQL 是⼀个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发⾏。
PostgreSQL 开发者把它念作 post-gress-Q-L。
PostgreSQL 的 Slogan 是 "世界上最先进的开源关系型数据库"。
Linux 上安装 PostgreSQL
Ubuntu 安装 PostgreSQL
Ubuntu 可以使⽤ apt-get 安装 PostgreSQL:
sudo apt-get update
sudo apt-get install postgresql postgresql-client
Centos 安装 PostgreSQL
1、安装rpm⽂件
yum install https:///pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2、安装客户端
yum install postgresql10
3、安装服务端
yum install postgresql10-server
4、初始化
/usr/pgsql-10/bin/postgresql-10-setup initdb
5、设置⾃动启动并且启动postgresql服务
systemctl enable postgresql-10
systemctl start postgresql-10
安装完毕后,系统会创建⼀个数据库超级⽤户 postgres,密码随机。修改登录PostgreSQL密码ALTER USER postgres WITH PASSWORD '123456';
PostgreSQL学习手册(PLpgSQL过程语言)
PostgreSQL学习⼿册(PLpgSQL过程语⾔)
⼀、概述:
PL/pgSQL函数在第⼀次被调⽤时,其函数内的源代码(⽂本)将被解析为⼆进制指令树,但是函数内的表达式和SQL命令只有在⾸次⽤到它们的时候,PL/pgSQL解释器才会为其创建⼀个准备好的执⾏规划,随后对该表达式或SQL命令的访问都将使⽤该规划。如果在⼀个条件语句中,有部分SQL命令或表达式没有被⽤到,那么PL/pgSQL解释器在本次调⽤中将不会为其准备执⾏规划,这样的好处是可以有效地减少为PL/pgSQL函数⾥的语句⽣成分析和执⾏规划的总时间,然⽽缺点是某些表达式或SQL命令中的错误只有在其被执⾏到的时候才能发现。由于PL/pgSQL在函数⾥为⼀个命令制定了执⾏计划,那么在本次会话中该计划将会被反复使⽤,这样做往往可以得到更好的性能,但是如果你动态修改了相关的数据库对象,那么就有可能产⽣问题,如:
CREATE FUNCTION populate() RETURNS integer AS $$
DECLARE
-- 声明段
BEGIN
PERFORM my_function();
END;
$$ LANGUAGE plpgsql;
在调⽤以上函数时,PERFORM语句的执⾏计划将引⽤my_function对象的OID。在此之后,如果你重建了my_function函数,那么populate函数将⽆法再找到原有my_function函数的OID。要解决该问题,可以选择重建populate函数,或者重新登录建⽴新的会话,以使PostgreSQL重新编译该函数。要想规避此类问题的发⽣,在重建my_function时可以使⽤CREATE OR REPLACE FUNCTION命令。
postgresql中文手册
postgresql中文手册PostgreSQL中文手册
概述
PostgreSQL是一个功能强大的开源关系型数据库管理系统,它提供了多种高级特性,可以满足各种规模的应用需求。本文档将为您介绍PostgreSQL的基本概念、使用方法以及高级特性。
第一章:入门指南
1.1 安装PostgreSQL
本节将指导您如何下载、安装和配置PostgreSQL。您可以根据不同的操作系统选择适合的安装方法,并了解基本的配置选项。
1.2 数据库连接
学习如何连接到PostgreSQL数据库,并使用命令行工具或者图形化界面进行操作。您将了解如何创建、删除和管理数据库。
1.3 SQL语法
PostgreSQL支持标准的SQL语法,并且还提供了许多扩展功能。本节将介绍常用的SQL语句,包括表的创建、数据的插入、更新和删除,以及查询语句的使用。
第二章:高级特性
2.1 事务管理
了解PostgreSQL的事务管理功能,包括事务的启动、提交和回滚,并学习如何处理并发访问和锁定。
2.2 索引和性能优化
学习如何创建索引以提高查询性能,并了解如何使用EXPLAIN命令来分析查询执行计划。
2.3 触发器和事件管理
本节将介绍如何使用触发器来自动化处理某些数据库事件,并学习
如何对触发器进行管理和监控。
2.4 备份和恢复
学习如何创建数据库的备份,并了解如何恢复数据库的数据。
第三章:高级应用
3.1 数据复制
本节介绍PostgreSQL的数据复制功能,包括主从复制和逻辑复制。您将学习如何配置复制服务器,并设置故障转移和负载均衡。
3.2 分区表
PostgreSQL学习手册:SQL语言函数
PostgreSQL学习手册:SQL语言函数
第一篇:PostgreSQL学习手册:SQL语言函数
PostgreSQL学习手册:SQL语言函数
一、基本概念:
SQL函数可以包含任意数量的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。在简单情况下,返回最后一条查询结果的第一行。如果最后一个查询不返回任何行,那么该函数将返回NULL 值。如果需要该函数返回最后一条SELECT语句的所有行,可以将函数的返回值定义为集合,即SETOF sometype。
SQL函数的函数体应该是用分号分隔的SQL语句列表,其中最后一条语句之后的分号是可选的。除非函数声明为返回void,否则最后一条语句必须是SELECT。事实上,在SQL函数中,不仅可以包含SELECT查询语句,也可以包含INSERT、UPDATE和DELETE等其他标准的SQL语句,但是和事物相关的语句不能包含其中,如BEGIN、COMMIT、ROLLBACK和SAVEPOINT等。
CREATE FUNCTION命令的语法要求函数体写成一个字符串文本。通常来说,该文本字符串常量使用美元符($$)围住,如:
CREATE FUNCTION clean_emp()RETURNS void AS $$
DELETE FROM emp WHERE salary < 0;
$$ LANGUAGE SQL;
最后需要说明的是SQL函数中的参数,PostgreSQL定义$1表示第一个参数,$2为第二个参数并以此类推。如果参数是复合类型,则可以使用点表示法,即$访问复合类型参数中的name字段。需要注意的是函数参数只能用作数据值,而不能用于标识符,如:INSERT INTO mytable VALUES($1);--合法
pgsql官方文档学习笔记
pgsql官⽅⽂档学习笔记
⽬录
从头开始
安装
本次是使⽤docker 拉取的pgsql的镜像来学习pgsql的
拉取镜像
docker pull postgres
查看镜像:
docker images
启动容器
docker run --name pg -e POSTGRES_PASSWORD=123456 -e POSTGRES_USER=postgres -p 5432:5432 -d postgres:latest
进⼊容器
docker exec -it 5ad99bf0c1d5 /bin/bash
连接postgresSql 命令
psql -h localhost -p 5432 -U postgres
创建⾓⾊赋予权限
⼀个数据库⾓⾊可以有⼀系列属性,这些属性定义他的权限,以及与客户认证系统的交互。
登陆权限
CREATE ROLE root LOGIN;
CREATE USER name; # 默认就有登录权限
超级⽤户权限
默认的超级⽤户是 postgres ,密码是 123456 ,创建与初始超级⽤户权限⼀样的⾓⾊
CREATE ROLE root SUPERUSER;
创建数据库的权限
⽤户创建数据库也是需要权限的,拥有该权限才能创建数据库(对于超级⽤户是例外,因为他们超越所有权限检查)
CREATE ROLE name CREATEDB ;
创建⾓⾊权限
创建⾓⾊的权限也需要赋予,拥有该权限的⾓⾊,拥有更改和删除其他⾓⾊,以及给其他成员赋予或者撤销成员关系,不过,要创建、更改、删除⼀个超级⽤户⾓⾊的成员关系,需要具有超级⽤户属性;只有CREATEROLE还不够。
PostgreSQL学习手册
零、口令文件:
在给出其它PostgreSQL客户端命令之前,我们需要先介绍一下PostgreSQL中的口令文件。之所以在这里提前说明该文件,是因为我们在后面的示例代码中会大量应用该文件,从而保证我们的脚本能够自动化完成。换句话说,如果在客户端命令执行时没有提供该文件,PostgreSQL的所有客户端命令均会被口令输入提示中断。
在当前用户的HOME目录下,我们需要手工创建文件名为 .pgpass的口令文件,这样就可以在我们连接PostgreSQL服务器时,客户端命令自动读取该文件已获得登录时所需要的口令信息。该文件的格式如下:
hostname:port:database:username:password
以上数据是用冒号作为分隔符,总共分为五个字段,分别表示服务器主机名(IP)、服务器监听的端口号、登录访问的数据库名、登录用户名和密码,其中前四个字段都可以使用星号(*)来表示匹配任意值。见如下示例:/> cat > .pgpass
*:5432:postgres:postgres:123456
CTRL+D
#.pgpass文件的权限必须为0600,从而防止任何全局或者同组的用户访问,否则这个文件将被忽略。
/> chmod 0600 .pgpass
在学习后面的客户端命令之前,我们需要根据自己的应用环境手工创建该文件,以便后面所有的示例代码都会用到该口令文件,这样它们就都可以以批处理的方式自动完成。
一、createdb:
创建一个新的PostgreSQL数据库。该命令的使用方式如下:
PostgreSQL数据库中文学习手册
目录
PostgreSQL学习手册(数据表) (4)
一、表的定义: (4)
PostgreSQL学习手册(模式Schema) (9)
PostgreSQL学习手册(表的继承和分区) (10)
一、表的继承: (10)
PostgreSQL学习手册(常用数据类型) (16)
一、数值类型: (16)
六、数组: (22)
PostgreSQL学习手册(函数和操作符<一>) (25)
一、逻辑操作符: (25)
四、字符串函数和操作符: (27)
五、位串函数和操作符: (29)
PostgreSQL学习手册(函数和操作符<二>) (30)
六、模式匹配: (30)
八、时间/日期函数和操作符: (33)
PostgreSQL学习手册(函数和操作符<三>) (35)
九、序列操作函数: (35)
十二、系统信息函数: (38)
PostgreSQL学习手册(索引) (42)
一、索引的类型: (42)
四、唯一索引: (43)
PostgreSQL学习手册(事物隔离) (45)
PostgreSQL学习手册(性能提升技巧) (46)
一、使用EXPLAIN: (46)
PostgreSQL学习手册(服务器配置) (50)
一、服务器进程的启动和关闭: (50)
PostgreSQL学习手册(角色和权限) (52)
PostgreSQL学习手册(数据库管理) (54)
一、概述: (54)
PostgreSQL学习手册(数据库维护) (56)
一、恢复磁盘空间: (56)
二、更新规划器统计: (57)
四、定期重建索引: (59)
PostgreSQL基础教程说明书
About the T utorial
PostgreSQL is a powerful, open source object-relational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, and correctness.
PostgreSQL runs on all major operating systems, including Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), and Windows.
This tutorial will give you quick start with PostgreSQL and make you comfortable with PostgreSQL programming.
Audience
This tutorial has been prepared for the beginners to help them understand the basic to advanced concepts related to PostgreSQL Database.
Prerequisites
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
tgreSQL学习手册(五) 函数和操作符
阿里云携手开源中国众包平台发布百万悬赏项目»
一、逻辑操作符:
常用的逻辑操作符有:AND、OR和NOT。其语义与其它编程语言中的逻辑操作符完全相同。
二、比较操作符:
下面是PostgreSQL中提供的比较操作符列表:
操作符描述
<小于
>大于
<=小于或等于
>=大于或等于
=等于
!=不等于
比较操作符可以用于所有可以比较的数据类型。所有比较操作符都是双目操作符,且返回boolean类型。除了比较操作符以外,我们还可以使用BETWEEN语句,如:
a BETWEEN x AND y 等效于 a >= x AND a <= y
a NOT BETWEEN x AND y 等效于 a < x OR a > y
三、数学函数和操作符:
下面是PostgreSQL中提供的数学操作符列表:
操作符描述例子结果
+加 2 + 35
-减 2 - 3-1
*乘 2 * 36
/除 4 / 22
%模 5 % 41
^幂 2.0 ^ 3.08
|/平方根|/ 25.05
||/立方根||/ 27.03
!阶乘 5 !120
!!阶乘!! 5120
@绝对值@ -5.05
&按位AND91 & 1511
|按位OR32 | 335
#按位XOR17 # 520
~按位NOT~1-2
<<按位左移 1 << 416
>>按位右移8 >> 22
按位操作符只能用于整数类型,而其它的操作符可以用于全部数值数据类型。按位操作符还可以用于位串类型bit和bit varying,
下面是PostgreSQL中提供的数学函数列表,需要说明的是,这些函数中有许多都存在多种形式,区别只是参数类型不同。除非特别指明,任何特定形式的函数都返回和它的参数相同的数据类型。
函数返回类
型
描述例子结果
abs(x)绝对值abs(-17.4)17.4 cbrt(double)立方根cbrt(27.0)3
ceil(double/numeric)不小于参数的最小的整
数
ceil(-42.8)-42
degrees(double) 把弧度转为角度degrees(0.5)28.6478897565412 exp(double/numeric)自然指数exp(1.0) 2.71828182845905 floor(double/numeric)不大于参数的最大整数floor(-42.8)-43
ln(double/numeric)自然对数ln(2.0)0.693147180559945 log(double/numeric)10为底的对数log(100.0)2
log(b numeric,x numeric)numeric指定底数的对
数
log(2.0, 64.0) 6.0000000000
mod(y, x)取余数mod(9,4)1
pi() double"π"常量pi() 3.14159265358979 power(a double, b double)double求a的b次幂power(9.0, 3.0)729
power(a numeric, b
numeric)
numeric求a的b次幂power(9.0, 3.0)729
radians(double)double把角度转为弧度radians(45.0)0.785398163397448
random()double 0.0到1.0之间的随机
数值
random()
round(double/numeric)圆整为最接近的整数round(42.4)42
round(v numeric, s int)numeric圆整为s位小数数字round(42.438,2)42.44
sign(double/numeric)参数的符号(-1,0,+1) sign(-8.4)-1
sqrt(double/numeric)平方根sqrt(2.0) 1.4142135623731 trunc(double/numeric)截断(向零靠近)trunc(42.8)42
trunc(v numeric, s int)numeric 截断为s小数位置的数
字
trunc(42.438,2)42.43
三角函数列表:
函数描述
acos(x)反余弦
asin(x)反正弦
atan(x)反正切
atan2(x, y)正切y/x 的反函数
cos(x)余弦
cot(x)余切
sin(x)正弦
tan(x)正切
四、字符串函数和操作符:
下面是PostgreSQL中提供的字符串操作符列表:
函数返回
类型
描述例子结果
string || string text字串连接'Post' || 'greSQL'PostgreSQL bit_length(string)int字串里二进制位的个数bit_length('jose')32
char_length(string)int字串中的字符个数char_length('jose')4
convert(string using conversion_name)text
使用指定的转换名字改变编
码。
convert('PostgreSQL' using
iso_8859_1_to_utf8)
'PostgreSQL'
lower(string)text把字串转化为小写lower('TOM')tom octet_length(string)int字串中的字节数octet_length('jose')4
overlay(string placing string from int [for int])text替换子字串
overlay('Txxxxas' placing 'hom'
from 2 for 4)
Thomas
position(substring in
string)
int指定的子字串的位置position('om' in 'Thomas')3 substring(string [from
int] [for int])
text抽取子字串substring('Thomas' from 2 for 3)hom
substring(string from pattern)text
抽取匹配POSIX 正则表达
式的子字串
substring('Thomas' from '...$')mas
substring(string from pattern for escape)text
抽取匹配SQL正则表达式的
子字串
substring('Thomas' from
'%#"o_a#"_' for '#')
oma
trim([leading | trailing |
both] [characters] from string)text
从字串string的开头/结尾/
两边/ 删除只包含
characters(缺省是一个空
白)的最长的字串
trim(both 'x' from 'xTomxx')Tom
upper(string)text把字串转化为大写。upper('tom')TOM ascii(text)int参数第一个字符的ASCII码ascii('x')120
btrim(string text [, characters text])text
从string开头和结尾删除只
包含在characters里(缺省
是空白)的字符的最长字串
btrim('xyxtrimyyx','xy')trim
chr(int)text给出ASCII码的字符chr(65)A
convert(string text, [src_encoding name,] text
把字串转换为
dest_encoding
convert( 'text_in_utf8', 'UTF8',
'LATIN1')
以ISO 8859-1编
码表示的