PostgreSql
文章平均质量分 72
python5915
我愿分享我所学的,持之以恒
展开
-
PostgreSql数据库计算表字段,表,数据库等占用磁盘大小的方法
在PostgreSql中如何计算表字段,表,数据库,以及索引等的大小?需要介绍PostgreSql的内置函数,在文档中就有,如下:pg_column_size(any)intNumber of bytes used to store a particular value (possibly compressed)pg_database_size(oid)原创 2015-01-07 14:58:16 · 3713 阅读 · 0 评论 -
PostgreSql索引的使用3--多字段索引
多字段索引就是索引中的字段不是一个,其创建的方式与单字段索引的语法一致。如:create index idx_name on tanle_name(column_name1,column_name2); 多字段索引只适合B-tree, GiST 和 GIN三种索引方式,并且字段是有限制的,字段个数最大为32个。这边只讨论B_tree类型。 一个多字段索引创建后,只要在在原创 2015-05-19 10:10:38 · 5966 阅读 · 0 评论 -
PostgreSql中使用ctid去重
最近的开发中使用PostgreSql时也遇到了去重的问题,开始的时候确实一筹莫展,不像Oracle有rowid这样的字段(是因为我不知道pg中也有类似的字段),因此就在文档中找类似的字段,于是想起了几个系统字段来,这边着重就看解决问题的ctid。 ctid是一个表中物理上确认版本的字段,这是个系统字段,只要表中存在数据那么就会存在这个字段,与oid不同。要想使用OID,创建表时应原创 2015-05-18 15:12:05 · 7835 阅读 · 0 评论 -
PostgreSql中更新指定的某些行
当在做测试或者需求就是需要更新10条数据中的第二行到第八行的数据,那应该这么办?开始的时候我也是白死不得其解,也就是知道了ctid用法才解决了类似的问题。 下面就直接说一下例子, 一个简单的表mytest7,, "id" "name_1""name_2" "name_3" "id""name_1" "name_2""name_3""原创 2015-05-18 15:47:27 · 3925 阅读 · 0 评论 -
PostgreSql的执行计划1--获取执行计划
获取执行计划的方式是由Explain关键字来执行的,Explain的用法是:EXPLAIN [ ( option [, ...] ) ] statement其中option是值可以包含:analyze,timing,verbose,buffers,format option的含义:其中analyze 为true时,是实际执行了statement,所以在执行update,de原创 2015-05-28 11:10:08 · 1234 阅读 · 1 评论 -
PostgreSql函数和操作符一之时间函数
PostgreSql常用的时间函数1. 时间间隔age函数函数描述:计算两个日期之间相隔多少天,单个参数时表示与当前日期(current_date)相比参数:age(timestamp,timestamp),age(timestamp)返回值:interval,两个日期之间的相隔天数示例:Select age(timestamp '2001-04-10', time原创 2015-04-15 14:09:36 · 7892 阅读 · 0 评论 -
PostgreSql函数和操作符一之时间运算1
时间的类型PostgreSql数据库中的时间类型大致可以分为四种类型或者格式,分别为:1、 Date:4个字节,只有日期没有时间如:“2015-04-10”;2、 Timestamp:8个字节,可以有时区也可以没有,包含日期和时间,如:“2015-04-10 10:00:00”;3、 Interval:时间间隔 16字节,;4、 Time:单指时间,可以有时区也可以不加,如原创 2015-04-13 15:09:41 · 10898 阅读 · 0 评论 -
PostgreSql中WITH语句的使用
PostgreSql中WITH语句的使用With语句是为庞大的查询语句提供了辅助的功能。这些语句通常是引用了表表达式或者CTEs(一种临时数据的存储方式),可以看做是一个查询语句的临时表。在With语句中可以使用select,insert,update,delete语句。当然with也可以看成是一个单独的语句。1. With语句中使用selectWITH regiona原创 2015-04-01 16:36:50 · 11521 阅读 · 0 评论 -
PostgreSql聚合函数二---聚合函数,分析函数和窗口函数
PostgreSql的窗口函数使用文档中涉及的表的结构和数据:1. 表emp_detail:create table emp_detail( empno integer, ename varchar(10), sal numeric, dept_no integer, time_stamp date ); insert into emp_detail原创 2015-04-01 11:26:44 · 9794 阅读 · 0 评论 -
PostgreSql的聚合函数--string_agg
聚合函数顾名思义,聚合函数就是类似于min(),max(),sum()等函数,当然这些都是SQL标准的函数,应该都是比较熟悉,也比较常见。这边不对这些常见的函数进行介绍,主要涉及的是PostgreSql自带的一些特色聚合函数进行介绍,自己学习,也与大家共享。主要介绍的聚合函数:String_agg,xmlagg,array_agg三者的道理是一样的只是合并的值的数据类型不同而已,这边主原创 2015-03-11 10:07:51 · 47891 阅读 · 1 评论 -
PostgreSql中COPY的用法
一、Copy的基本语法Copy的作用是复制数据在数据表和文件之间。Copy在PostgreSql中的语法是(来自文档):1、 将文件中的数据复制到表中:COPY table_name [ ( column_name [, ...] ) ] FROM { 'filename' | PROGRAM 'command' | STDIN }[ [ WITH ] ( optio原创 2015-03-06 15:08:16 · 47065 阅读 · 8 评论 -
PostgreSql重建索引
PostgreSql数据库的重建索引时通过REINDEX命令来实现的,如reindexindex_name;其语法是:REINDEX { INDEX | TABLE | DATABASE | SYSTEM } name [ FORCE ];下面解释下说明情况下需要:1、 当由于软件bug或者硬件原因导致的索引不再可用,索引的数据不再可用;2、 当索引包含许多空的或者近似于空原创 2015-02-15 10:58:22 · 12519 阅读 · 0 评论 -
翻译:PostgreSql数据库的日常Vacuuming-未完待续
23.1 日常Vacuuming PostgreSql数据库要求定期的维护通过Vacuuming。对于许多安装的数据库,vacuuming的执行时用过autovacuumdaemon(自动收集信息执行的守护进程)。你可以通过调整autovacuuming 参数从而获得最佳的结果在你所在的环境中。有些数据库管理员需要替换vacuum守护进程,可以使用任务调度来完成。本质将在接下来的章节中讨翻译 2015-02-15 08:50:28 · 902 阅读 · 0 评论 -
PostgreSql的索引用法小结一
PostgreSql数据库的索引分为B-tree, Hash, GiST,SP-GiST and GIN。这边先只讨论b-tree索引。B-tree是最常用的的索引,并且PG在创建索引时如果没有明确的指定索引的类型那么默认就是b-tree(B树索引)索引,如: Create index index_nameon table_name(column_name,[…]);B-tree原创 2015-01-21 20:26:24 · 10806 阅读 · 0 评论 -
PostgreSql的索引用法小结二--唯一性索引
唯一性索引(unique index),这部分主要是翻译了PostgreSql9.3的官方文档的11.6这一节,翻译加上自己的语言组织,之后会添加更多的内容。当前只有B-tree索引才能使用唯一性索引,唯一性索引可以使单字段和多字段绑定在一个索引上。 当一个索引被定义为唯一性索引时,那么无论是单字段还是多字段的索引,其涉及到的字段再表中的值是不能重复的,类似于主键和联合主键的意思翻译 2015-01-22 10:02:05 · 4974 阅读 · 0 评论 -
PostgreSql在Windows命令行直接使用psql登录数据库
使用psql命令行登录数据库需要一些参数,如psql -h localhost -U postgres -的postgres -p 5432,如果在dos下直接使用psql无需另带参数时,需要添加几个环境变量,PGHOST=localhostPGPORT=5432PGUSER=postgres这样配置后直接使用psql后只需要输入密码就可以了。原创 2015-02-06 16:00:59 · 28215 阅读 · 3 评论 -
PostgreSql创建数据库
PostgreSql创建数据库的语法是:CREATE DATABASE name [ [ WITH ] [ OWNER [=] user_name] [ TEMPLATE [=] template] [ ENCODING [=] encoding] [ LC_COLLATE [=] lc_collate]原创 2015-02-03 10:04:40 · 8729 阅读 · 0 评论 -
PostgreSQL客户端验证
在windows下安装好PostgreSql后,当作为服务时,有应用程序或者别的客户端需要访问刚刚安装的postgreSql往往都会出现验证不能通过的异常或者错误,这个原因就是PostgreSql会对连接上来的客户端的IP进行监听和验证。 在PostgreSql中有一个参数listen_addresses,主要监听需要连接的客户端的IP,默认为“*”,表示监听所有的IP地址,这个一般原创 2015-01-29 10:10:08 · 1206 阅读 · 0 评论 -
PostgreSql索引的使用4--表达式索引和部分索引
表达式索引就是利用function或者标量表达式将索引字段包裹起来定义使用。表达式索引的定义很简单与一般索引一样:Create indexidx_name on table_name(function_name(column_name1));类似的写法。例子1:createindex idx_mytest9_name3 on mytest9(upper(name_3));原创 2015-05-19 11:01:26 · 2394 阅读 · 0 评论