PostgreSQL教程(十四):数据库维护
一、恢复磁盘空间:在PostgreSQL中,使用delete和update语句删除或更新的数据行并没有被实际删除,而只是在旧版本数据行的物理地址上将该行的状态置为已删除或已过期。因此当数据表中的数据变化极为频繁时,那么在一段时间之后该表所占用的空间将会变得很大,然而数据量却可能变化不大。要解决该问题
一、恢复磁盘空间:在PostgreSQL中,使用delete和update语句删除或更新的数据行并没有被实际删除,而只是在旧版本数据行的物理地址上将该行的状态置为已删除或已过期。因此当数据表中的数据变化极为频繁时,那么在一段时间之后该表所占用的空间将会变得很大,然而数据量却可能变化不大。要解决该问题
一、pg_class:该系统表记录了数据表、索引(仍然需要参阅pg_index)、序列、视图、复合类型和一些特殊关系类型的元数据。注意:不是所有字段对所有对象类型都有意义。 名字类型引用描述relnamename 数据类型名字。relnamespaceoidpg_namespace.oid包含这个对
一、pg_tables:该视图提供了对有关数据库中每个表的有用信息地访问。名字类型引用描述schemanamenamepg_namespace.nspname包含表的模式名字。tablenamenamepg_class.relname表的名字。tableownernamepg_authid.roln
一、索引的类型:PostgreSQL提供了多 种索引类型:B-Tree、Hash、GiST和GIN,由于它们使用了不同的算法,因此每种索引类型都有其适合的查询类型,缺省时,CREATE INDEX命令将创建B-Tree索引。1. B-Tree: 实现代码如下:CREATE TABLE test1
一、概述:PL/pgSQL函数在第一次被调用时,其函数内的源代码(文本)将被解析为二进制指令树,但是函数内的表达式和SQL命令只有在首次用到它们的时候,PL/pgSQL解释器才会为其创建一个准备好的执行规划,随后对该表达式或SQL命令的访问都将使用该规划。如果在一个条件语句中,有部分SQL命令或表达
六、模式匹配:PostgreSQL中提供了三种实现模式匹配的方法:SQL LIKE操作符,更近一些的SIMILAR TO操作符,和POSIX-风格正则表达式。1. LIKE: 实现代码如下:string LIKE pattern [ ESCAPE escape-character ]string N
一、表的定义:对于任何一种关系型数据库而言,表都是数据存储的最核心、最基础的对象单元。现在就让我们从这里起步吧。1. 创建表: 实现代码如下:CREATE TABLE products (product_no integer,name text,price numeric);2. 删除表: 实现代码
零、口令文件:在给出其它PostgreSQL客户端命令之前,我们需要先介绍一下PostgreSQL中的口令文件。之所以在这里提前说明该文件,是因为我们在后面的示例代码中会大量应用该文件,从而保证我们的脚本能够自动化完成。换句话说,如果在客户端命令执行时没有提供该文件,PostgreSQL的所有客户端
在SQL的标准中事物隔离级别分为以下四种:1. 读未提交(Read uncommitted)2. 读已提交(Read committed)3. 可重复读(Repeatable read)4. 可串行化(Serializable)然而PostgreSQL在9.1之前的版本中只是实现了其中两种,即读已提
一、基本概念:SQL函数可以包含任意数量的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。在简单情况下,返回最后一条查询结果的第一行。如果最后一个查询不返回任何行,那么该函数将返回NULL值。如果需要该函数返回最后一条SELECT语句的所有行,可以将函数的返回值定义为集合,即SETOF