PostgreSQL 系列学习
深入浅出、事半功倍
posts - 118, comments - 267, trackbacks - 0, articles - 0
博客园::首页::新随笔::联系::订阅::管理
日历
<2012年6月>
日一二三四五六
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567
公告
昵称:Stephen_Liu
园龄:1年1个月
粉丝:318
关注:2+加关注
搜索
我的标签
随笔分类
C++编程(5)
Java编程(34)
Linux Shell(24)
Lua编程(22)
MongoDB
NoSQL数据库(2)
PostgreSQL(21)
Redis(16)
SQLite(16)
编程和调试技巧(4)
有感而发(2)
Linux
1. Linux Shell常用技巧
对Linux中常用的Shell命令进行了较为细致和深入的讲解与归类,并给出很多实用的用例。
2. Linux Shell高级技巧
给出了更多有关Linux Shell的实用脚本,通过这些脚本,有助于更好的理解和驾驭Shell编程。
编程语言
1. Java和C++在细节上的差异
主要是从Java语言的语法层面进行了一些比较和剖析。
2. Step By Step(Java SE)
主要是对Java Core的类库进行了实例化讲解和归类。
3. Effective Java
内容源自《Effective Java》第二版。可以极大的提高编写Java程序的质量。
数据库
1. SQLite学习手册
该系列博客取材于SQLite的官方文档,覆盖了大部分应用点和内部机制。与此同时,还针对四种常用场景提供了应用代码实例。
2. Redis学习手册
该系列同样取材于官方文档,希望我的总结方式能让您更好的学习Redis,并成为您工作中的最好助手。
积分与排名
积分 -98977
排名 -1043
最新评论
1. Re:PostgreSQL学习手册(SQL语言函数)
@Jimmyzhang
可能也会写oracle。
--Stephen_Liu
2. Re:PostgreSQL学习手册(SQL语言函数)
@Jimmyzhang
我想先完成每个独立的主题,之后再做比较。就目前而言,还有mongodb和berkeleyDB要写。
--Stephen_Liu
3. Re:PostgreSQL学习手册(SQL语言函数)
搞個系列吧, 把nosql, mysql對照著比較寫一下, 可能更有益於其它人.
--Jimmyzhang
4. Re:PostgreSQL学习手册(常用数据类型)
谢谢,真心感谢,总结的很好,格式也做的很漂亮工整清晰,我转载收藏学习用,持续关注您。
--蘇's
5. Re:PostgreSQL学习手册(客户端命令&lt;一&gt;)
谢谢,学习了。
--蘇's
阅读排行榜
1. SQLite学习手册(开篇)(3765)
2. Linux Shell常用技巧(目录)(3630)
3. Linux Shell常用技巧(一)(3581)
4. SQLite学习手册(目录)(2999)
5. SQLite学习手册(数据表和视图)(2739)
6. Linux Shell常用命令总结(2621)
7. SQLite学习手册(内存数据库)(2473)
8. 速查笔记(Linux Shell编程<上>)(2456)
9. Linux Shell高级技巧(一)(2264)
10. Redis学习手册(开篇)(2262)
PostgreSQL
PostgreSQL学习手册(SQL语言函数)
摘要: 一、基本概念: SQL函数可以包含任意数量的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。在简单情况下,返回最后一条查询结果的第一行。如果最后一个查询不返回任何行,那么该函数将返回NULL值。如果需要该函数返回最后一条SELECT语句的所有行,可以将函数的返回值定义为集合,即SETOF sometype。 SQL函数的函数体应该是用分号分隔的SQL语句列表,其中最后一条语句之后的分号是可选的。除非函数声明为返回void,否则最后一条语句必须是SELECT。事实上,在SQL函数中,不仅可以包含SELECT查询语句,也可以包含INSERT、UPDATE和DELETE等其他标准的SQ阅读全文
posted @ 2012-06-04 09:04 Stephen_Liu 阅读(738) | 评论 (3) 编辑 |
PostgreSQL学习手册(客户端命令<二>)
摘要: 七、pg_dump: pg_dump是一个用于备份PostgreSQL数据库的工具。它甚至可以在数据库正在并发使用时进行完整一致的备份,而不会阻塞其它用户对数据库的访问。该工具生成的转储格式可以分为两种,脚本和归档文件。其中脚本格式是包含许多SQL命令的纯文本格式,这些SQL命令可以用于重建该数据库并将之恢复到生成此脚本时的状态,该操作需要使用psql来完成。至于归档格式,如果需要重建数据库就必须和pg_restore工具一起使用。在重建过程中,可以对恢复的对象进行选择,甚至可以在恢复之前对需要恢复的条目进行重新排序。该命令的使用方式如下: pg_dump [option...] [dbnam阅读全文
posted @ 2012-06-01 09:01 Stephen_Liu 阅读(830) | 评论 (0) 编辑 |
PostgreSQL学习手册(客户端命令<一>)
摘要: 零、口令文件: 在给出其它PostgreSQL客户端命令之前,我们需要先介绍一下PostgreSQL中的口令文件。之所以在这里提前说明该文件,是因为我们在后面的示例代码中会大量应用该文件,从而保证我们的脚本能够自动化完成。换句话说,如果在客户端命令执行时没有提供该文件,PostgreSQL的所有客户端命令均会被口令输入提示中断。 在当前用户的HOME目录下,我们需要手工创建文件名为 .pgpass的口令文件,这样就可以在我们连接PostgreSQL服务器时,客户端命令自动读取该文件已获得登录时所需要的口令信息。该文件的格式如下: hostname:port:database:username:阅读全文
posted @ 2012-05-30 09:02 Stephen_Liu 阅读(946) | 评论 (1) 编辑 |
PostgreSQL学习手册(系统视图)
摘要: 一、pg_tables: 该视图提供了对有关数据库中每个表的有用信息地访问。名字类型引用描述schemanamenamepg_namespace.nspname包含表的模式名字。tablenamenamepg_class.relname表的名字。tableownernamepg_authid.rolname表的所有者的名字。tablespacenamepg_tablespace.spcname包含表的表空间名字(如果是数据库缺省,则为 NULL)。hasindexesboolpg_class.relhasindex如果表拥有(或者最近拥有)任何索引,则为真。hasrulesboolpg_cla阅读全文
posted @ 2012-05-28 09:08 Stephen_Liu 阅读(994) | 评论 (0) 编辑 |
PostgreSQL学习手册(系统表)
摘要: 一、pg_class: 该系统表记录了数据表、索引(仍然需要参阅pg_index)、序列、视图、复合类型和一些特殊关系类型的元数据。注意:不是所有字段对所有对象类型都有意义。名字类型引用描述relnamename数据类型名字。relnamespaceoidpg_namespace.oid包含这个对象的名字空间(模式)的OI。reltypeoidpg_type.oid对应这个表的行类型的数据类型。relowneroidpg_authid.oid对象的所有者。relamoidpg_am.oid对于索引对象,表示该索引的类型(B-tree,hash)。relfilenodeoid对象存储在磁盘上的文阅读全文
posted @ 2012-05-25 09:04 Stephen_Liu 阅读(898) | 评论 (0) 编辑 |
PostgreSQL学习手册(数据库维护)
摘要: 一、恢复磁盘空间: 在PostgreSQL中,使用delete和update语句删除或更新的数据行并没有被实际删除,而只是在旧版本数据行的物理地址上将该行的状态置为已删除或已过期。因此当数据表中的数据变化极为频繁时,那么在一段时间之后该表所占用的空间将会变得很大,然而数据量却可能变化不大。要解决该问题,需要定期对数据变化频繁的数据表执行VACUUM操作。 VACUUM命令存在两种形式,VACUUM和VACUUM FULL,它们之间的区别见如下表格:无VACUUMVACUUMVACUUM FULL删除大量数据之后只是将删除数据的状态置为已删除,该空间不能记录被重新使用。如果删除的记录位于表的末端阅读全文
posted @ 2012-05-23 08:22 Stephen_Liu 阅读(1174) | 评论 (0) 编辑 |
PostgreSQL学习手册(数据库管理)
摘要: 一、概述: 数据库可以被看成是SQL对象(数据库对象)的命名集合,通常而言,每个数据库对象(表、函数等)只属于一个数据库。不过对于部分系统表而言,如pg_database,是属于整个集群的。更准确地说,数据库是模式的集合,而模式包含表、函数等SQL对象。因此完整的对象层次应该是这样的:服务器、数据库、模式、表或其他类型的对象。 在与数据库服务器建立连接时,该连接只能与一个数据库形成关联,不允许在一个会话中进行多个数据库的访问。如以postgres用户登录,该用户可以访问的缺省数据库为postgres,在登录后如果执行下面的SQL语句将会收到PostgreSQL给出的相关错误信息。 postgr阅读全文
posted @ 2012-05-21 10:12 Stephen_Liu 阅读(1011) | 评论 (0) 编辑 |
PostgreSQL学习手册(角色和权限)
摘要: PostgreSQL是通过角色来管理数据库访问权限的,我们可以将一个角色看成是一个数据库用户,或者一组数据库用户。角色可以拥有数据库对象,如表、索引,也可以把这些对象上的权限赋予其它角色,以控制哪些用户对哪些对象拥有哪些权限。 一、数据库角色: 1. 创建角色: CREATE ROLE role_name; 2. 删除角色: DROP ROLE role_name; 3. 查询角色: 检查系统表pg_role,如: SELECT usename FROM pg_role; 也可以在psql中执行du命令列出所有角色。 二、角色属性: 一个数据库角色可以有一系列属性,这些属性定义他的权限...阅读全文
posted @ 2012-05-18 09:08 Stephen_Liu 阅读(1059) | 评论 (0) 编辑 |
PostgreSQL学习手册(服务器配置)
摘要: 一、服务器进程的启动和关闭: 下面是pg_ctl命令的使用方法和常用选项,需要指出的是,该命令是postgres命令的封装体,因此在使用上比直接使用postgres更加方便。 pg_ctl init[db] [-D DATADIR] [-s] [-o "OPTIONS"] pg_ctl start [-w] [-t SECS] [-D DATADIR] [-s] [-l FILENAME] [-o "OPTIONS"] pg_ctl stop [-W] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE] pg_c阅读全文
posted @ 2012-05-16 07:58 Stephen_Liu 阅读(840) | 评论 (0) 编辑 |
PostgreSQL学习手册(性能提升技巧)
摘要: 一、使用EXPLAIN: PostgreSQL为每个查询都生成一个查询规划,因为选择正确的查询路径对性能的影响是极为关键的。PostgreSQL本身已经包含了一个规划器用于寻找最优规划,我们可以通过使用EXPLAIN命令来查看规划器为每个查询生成的查询规划。 PostgreSQL中生成的查询规划是由1到n个规划节点构成的规划树,其中最底层的节点为表扫描节点,用于从数据表中返回检索出的数据行。然而,不同的扫描节点类型代表着不同的表访问模式,如:顺序扫描、索引扫描,以及位图索引扫描等。如果查询仍然需要连接、聚集、排序,或者是对原始行的其它操作,那么就会在扫描节点"之上"有其它额阅读全文
posted @ 2012-05-14 09:23 Stephen_Liu 阅读(1145) | 评论 (0) 编辑 |
PostgreSQL学习手册(事物隔离)
摘要: 在SQL的标准中事物隔离级别分为以下四种: 1. 读未提交(Read uncommitted) 2. 读已提交(Read committed) 3. 可重复读(Repeatable read) 4. 可串行化(Serializable) 然而PostgreSQL在9.1之前的版本中只是实现了其中两种,即读已提交和可串行化,如果在实际应用中选择了另外两种,那么PostgreSQL将会自动向更严格的隔离级别调整。在PostgreSQL v9.1的版本中提供了三种实现方式,即在原有的基础上增加了可重复读。在这篇博客中我们将只是针对2)和4)进行说明和比较,因为在9.1中,3)和4)的差别也是非常小.阅读全文
posted @ 2012-05-11 09:09 Stephen_Liu 阅读(1055) | 评论 (0) 编辑 |
PostgreSQL学习手册(索引)
摘要: 一、索引的类型: PostgreSQL提供了多 种索引类型:B-Tree、Hash、GiST和GIN,由于它们使用了不同的算法,因此每种索引类型都有其适合的查询类型,缺省时,CREATE INDEX命令将创建B-Tree索引。 1. B-Tree: CREATE TABLE test1 ( id integer, content varchar ); CREATE INDEX test1_id_index ON test1 (id); B-Tree索引主要用于等于和范围查询,特别是当索引列包含操作符" <、<=、=、>=和>"作为查询条件时,Post阅读全文
posted @ 2012-05-09 08:40 Stephen_Liu 阅读(1092) | 评论 (0) 编辑 |
PostgreSQL学习手册(函数和操作符<三>)
摘要: 九、序列操作函数: 序列对象(也叫序列生成器)都是用CREATE SEQUENCE创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。下面序列函数,为我们从序列对象中获取最新的序列值提供了简单和并发读取安全的方法。函数返回类型描述nextval(regclass)bigint递增序列对象到它的下一个数值并且返回该值。这个动作是自动完成的。即使多个会话并发运行nextval,每个进程也会安全地收到一个唯一的序列值。currval(regclass)bigint在当前会话中返回最近一次nextval抓到的该序列的数值。(如果在本会话中从未在该序列上调用过 nextval,那么会报告阅读全文
posted @ 2012-05-07 07:41 Stephen_Liu 阅读(1022) | 评论 (0) 编辑 |
PostgreSQL学习手册(函数和操作符<二>)
摘要: 六、模式匹配: PostgreSQL中提供了三种实现模式匹配的方法:SQL LIKE操作符,更近一些的SIMILAR TO操作符,和POSIX-风格正则表达式。 1. LIKE: string LIKE pattern [ ESCAPE escape-character ] string NOT LIKE pattern [ ESCAPE escape-character ] 每个pattern定义一个字串的集合。如果该string包含在pattern代表的字串集合里,那么LIKE表达式返回真。和我们想象的一样,如果LIKE返回真,那么NOT LIKE表达式返回假,反之亦然。在pattern里阅读全文
posted @ 2012-05-04 09:42 Stephen_Liu 阅读(1161) | 评论 (2) 编辑 |
PostgreSQL学习手册(函数和操作符<一>)
摘要: 一、逻辑操作符: 常用的逻辑操作符有: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 >阅读全文
posted @ 2012-05-02 07:43 Stephen_Liu 阅读(1126) | 评论 (0) 编辑 |
PostgreSQL学习手册(常用数据类型)
摘要: 一、数值类型: 下面是PostgreSQL所支持的数值类型的列表和简单说明:名字存储空间描述范围smallint2 字节小范围整数-32768 到 +32767integer4 字节常用的整数-2147483648 到 +2147483647bigint8 字节大范围的整数-9223372036854775808 到 9223372036854775807decimal变长用户声明精度,精确无限制numeric变长用户声明精度,精确无限制real4 字节变精度,不精确6 位十进制数字精度double8 字节变精度,不精确15 位十进制数字精度serial4 字节自增整数1 到 +2147483阅读全文
posted @ 2012-04-30 07:57 Stephen_Liu 阅读(1430) | 评论 (4) 编辑 |
PostgreSQL学习手册(表的继承和分区)
摘要: 一、表的继承: 这个概念对于很多已经熟悉其他数据库编程的开发人员而言会多少有些陌生,然而它的实现方式和设计原理却是简单易懂,现在就让我们从一个简单的例子开始吧。 1. 第一个继承表: CREATE TABLE cities ( --父表 name text, population float, altitude int ); CREATE TABLE capitals ( --子表 state char(2) ) INHERITS (cities); capitals表继承自cities表的所有属性。在PostgreSQL里,一个表可以从零个或多个其它表中继承属性,而且一个查询既可以引...阅读全文
posted @ 2012-04-27 00:01 Stephen_Liu 阅读(1132) | 评论 (2) 编辑 |
PostgreSQL学习手册(模式Schema)
摘要: 一个数据库包含一个或多个命名的模式,模式又包含表。模式还包含其它命名的对象,包括数据类型、函数,以及操作符。同一个对象名可以在不同的模式里使用而不会导致冲突; 比如,schema1和myschema都可以包含叫做mytable的表。和数据库不同,模式不是严格分离的:一个用户可以访问他所连接的数据库中的任意模式中的对象,只要他有权限。 我们需要模式有以下几个主要原因: 1). 允许多个用户使用一个数据库而不会干扰其它用户。 2). 把数据库对象组织成逻辑组,让它们更便于管理。 3). 第三方的应用可以放在不同的模式中,这样它们就不会和其它对象的名字冲突。 1. 创建模式: CREATE SC..阅读全文
posted @ 2012-04-25 08:18 Stephen_Liu 阅读(1389) | 评论 (0) 编辑 |
PostgreSQL学习手册(数据表)
摘要: 一、表的定义: 对于任何一种关系型数据库而言,表都是数据存储的最核心、最基础的对象单元。现在就让我们从这里起步吧。 1. 创建表: CREATE TABLE products ( product_no integer, name text, price numeric ); 2. 删除表: DROP TABLE products; 3. 创建带有缺省值的表: CREATE TABLE products ( product_no integer, name text, price numeric DEFAULT 9.99 --DEFAULT是关键字,其后的数值9.99是字段pri...阅读全文
posted @ 2012-04-23 07:42 Stephen_Liu 阅读(1470) | 评论 (7) 编辑 |
Powered by:
博客园
Copyright ? Stephen_Liu
更多阅读
五笔打字学习教程:1 初学五笔的疑问解答
五笔打字学习教程:[1]初学五笔的疑问解答——简介一步一步地教会你使用五笔输入法打字,最终成为打字高手。请看我的系列经验。五笔打字学习教程:[1]初学五笔的疑问解答——工具/原料五笔输入法五笔打字学习教程:[1]初学五笔的疑问解答
初学者怎样学习编程?
对于刚刚接触编程的人来说,怎样学习编程?学习编程要注意哪些方面?学习编程要从哪些方面着手才能更快进入编程世界?怎样做才是掌握了编程的要义呢?这一系列的问题都是一名编程初学者最关心的问题,今天,笔者从7个方面分析如何学习编程。初学
徐旭东自我管理系列课程介绍 客户关系管理课程介绍
自我管理系列课程介绍作者:徐旭东博士我们当中的大多数人,甚至包括那些还算有点天赋的人,都不得不通过学习来掌握自我管理的技巧。——彼得••德鲁克•管理学大师彼得•德鲁克说历史上的伟人——拿破仑、达芬
转载 makeup suqqu你是我的最爱眼影NO.1——从美轴系列至今所 makeup geek眼影
原文地址:【makeup】suqqu你是我的最爱眼影NO.1——从美轴系列至今所有眼影介绍作者:胖丝丁写这篇文章我压力其实蛮大的,论对suqqu的了解很多妹子都比我要强,比如圈内公认的suqqu官方画法代言人:肉姑娘艾丽卡,我的suqqu画法也是跟她学习