天天看点

PostgreSQL学习手册(目录)

原文地址:http://www.cnblogs.com/stephen-liu74/archive/2012/06/08/2315679.html

    事实上之前有很长一段时间都在纠结是否有必要好好学习它,但是始终都没有一个很好的理由说服自己。甚至是直到这个项目最终决定选用PostgreSQL时,我都没有真正意识到学习它的价值,当时只是想反正和其它数据库差不多,能用就行了。然而有一天晚上,自己也不知道为什么,躺在床上开始回想整个项目的实施过程,想着想着就想到了数据库选型这一问题上了。事情是这样的,最初客户将他们的产品目标定位为主打中型规模,同时也要在一定程度上支持小型规模。鉴于此,我们为他们提供的方案是中型规模的数据库选用Oracle,小型规模的选定MySQL,在经过多轮商谈之后这个方案通过了。然而随着项目的深入,客户突然有一天提出,由于成本和市场推广等问题,该产品的数据库部分需要进行一定的调整,调整的结果是中型规模可以同时支持Oracle和MySQL,而小型规模则要同时支持MySQL和PostgreSQL,原因非常简单,PostgreSQL是纯免费的数据库产品。听到这个消息之后,我当时就非常恼火,因为当初为了保证运行时效率(国标),我们的数据库访问层是完全基于数据库供应商提供的原始C接口开发的,甚至都没有考虑ODBC提供的原始C接口,以防在转换中失去效率,或是ODBC本身为了强调通用性而不得不牺牲某些数据库的优化特征,如批量插入、批量读取等。最后的结果显而易见,客户就是上帝,上帝的意见就是真理,这样我们就不得不基于现有的访问层接口又重新开发了一套支持PostgreSQL原生C接口的驱动。然而随着对PostgreSQL的不断学习,对它的了解也在逐步加深,后来发现它的功能还是非常强大的,特别是对GIS空间数据的支持就更加的吸引我了。于是就在脑子里为MySQL和PostgreSQL做了一个简单的对比和分析,最后得出一个结论,相比MySQL,PostgreSQL并没有什么刚性的缺点,但是它的纯免费特征确实是MySQL无法比拟的。它完全可以成为软件产品解决方案中非常重要的一环,特别是针对很多中低端用户,不仅在使用中不会感到任何差异,而且还能节省一部分额外的费用,这对于产品的市场推广是非常有帮助的。想到这里便决定起而行之,花上一段时间好好的学习和研究它,于是就有了这个系列的博客。

    好了,闲淡扯的差不多了,让我们还是言归正传吧!

PostgreSQL学习手册(数据表)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/16/2290803.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/16/2290803.html</a>

一、表的定义

二、系统字段

三、表的修改

四、权限

PostgreSQL学习手册(模式Schema)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/18/2291526.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/18/2291526.html</a>

PostgreSQL学习手册(表的继承和分区)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/18/2291814.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/18/2291814.html</a>

一、表的继承

二、分区表

PostgreSQL学习手册(常用数据类型)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/19/2293602.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/19/2293602.html</a>

一、数值类型

二、字符类型

三、日期/时间类型

四、布尔类型

五、位串类型

六、数组

七、复合类型

PostgreSQL学习手册(函数和操作符&lt;一&gt;)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/19/2294071.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/19/2294071.html</a>

一、逻辑操作符

二、比较操作符

三、数学函数和操作符

四、字符串函数和操作符

五、位串函数和操作符

PostgreSQL学习手册(函数和操作符&lt;二&gt;)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/20/2294643.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/20/2294643.html</a>

六、模式匹配

七、数据类型格式化函数

八、时间/日期函数和操作符

PostgreSQL学习手册(函数和操作符&lt;三&gt;)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/20/2295273.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/20/2295273.html</a>

九、序列操作函数

十、条件表达式

十一、数组函数和操作符

十二、系统信息函数

十三、系统管理函数

PostgreSQL学习手册(索引)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/22/2298182.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/22/2298182.html</a>

一、索引的类型

二、复合索引

三、组合多个索引

四、唯一索引

五、表达式索引

六、部分索引

七、检查索引的使用

PostgreSQL学习手册(事物隔离)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/25/2300863.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/25/2300863.html</a>

PostgreSQL学习手册(性能提升技巧)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/25/2301064.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/25/2301064.html</a>

一、使用EXPLAIN

二、批量数据插入

PostgreSQL学习手册(服务器配置)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/26/2302241.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/26/2302241.html</a>

一、服务器进程的启动和关闭

二、服务器配置

三、内存相关的参数配置

PostgreSQL学习手册(角色和权限)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/26/2302639.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/26/2302639.html</a>

一、数据库角色

二、角色属性

三、权限

四、角色成员

PostgreSQL学习手册(数据库管理)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/27/2303510.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/27/2303510.html</a>

一、概述

二、创建数据库

三、修改数据库配置

四、删除数据库

五、表空间

PostgreSQL学习手册(数据库维护)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/27/2304155.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/27/2304155.html</a>

一、恢复磁盘空间

二、更新规划器统计

三、VACUUM和ANALYZE的示例

四、定期重建索引

五、观察磁盘使用情况

PostgreSQL学习手册(系统表)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/28/2305415.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/28/2305415.html</a>

一、pg_class

二、pg_attribute

三、pg_attrdef

四、pg_authid

五、pg_auth_members

六、pg_constraint

七、pg_tablespace

八、pg_namespace

九、pg_database

十、pg_index

PostgreSQL学习手册(系统视图)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/29/2306115.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/29/2306115.html</a>

一、pg_tables

二、pg_indexes

三、pg_views

四、pg_user

五、pg_roles

六、pg_rules

七、pg_settings

PostgreSQL学习手册(客户端命令&lt;一&gt;)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/29/2306493.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/29/2306493.html</a>

零、口令文件

一、createdb

二、dropdb

三、reindexdb

四、vacuumdb

五、createuser

六、dropuser

PostgreSQL学习手册(客户端命令&lt;二&gt;)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2011/12/30/2307813.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2011/12/30/2307813.html</a>

七、pg_dump

八、pg_restore

九、psql

PostgreSQL学习手册(SQL语言函数)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2012/01/04/2312194.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2012/01/04/2312194.html</a>

一、基本概念

二、基本类型

三、复合类型

四、带输出参数的函数

五、返回结果作为表数据源

六、返回集合的SQL函数

七、多态的SQL函数

八、函数重载

PostgreSQL学习手册(PL/pgSQL过程语言)

<a href="http://www.cnblogs.com/stephen-liu74/archive/2012/01/05/2312759.html" target="_blank">http://www.cnblogs.com/stephen-liu74/archive/2012/01/05/2312759.html</a>

二、PL/pgSQL的结构

三、声明

四、基本语句

五、控制结构

六、游标

七、错误和消息

如果您觉得这个系列的博客可以让您有所收获,请保持持续的关注。

如果您发现博客中有明显的纰漏,欢迎指正。

如果您有意进行技术上的交流,可以通过邮件共同探讨([email protected])。

如果您有更好的建议或更好的实现方式,敬请赐教。

如果您已经是我的关注者,希望随后发布的Lua系列不会让您失望。

I am Stephen Liu.