Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->数据库应用 ->PostgreSQL ->正文

Linux下免费数据库PostgreSQL开发入门

来源:IBM DW中国 作者:左锦  时间:2007-04-22 点击: [收藏] [投稿]
本文介绍使用 C/C++ 结合数据库自带的 libpq 和 libPq++ 库来开发 Linux 下有名的免费数据库 PostgreSQL,详细描述了如何使用开发库来操作数据的步骤和流程。

PostgreSQL数据库介绍

PostgreSQL 是一种运行在Unix和Linux操作系统(在NT平台借助Cygnus也可以运行)平台上的免费的开放源码的关系数据库。最早是由美国加州大学伯克利分校开发的,开始只是作为一个演示系统发表,但是随着时间的推移,逐步分发,得到很多实际的应用,才逐步流行起来。现在版本发展到了7.3.3。

荣誉:

  • 1999年获得Linux World杂志的该年度"最佳数据库产品"称号。
  • 2000年荣获Linux Journal杂志编辑选择的"最佳数据库"奖。
  • 2003年,也就是最近再一次荣获Linux Journal杂志编辑选择的" 最佳数据库"奖。

2.主要功能和特性

  • 支持SQL。作为关系数据库,它支持SQL89标准也支持部分SQL92大部分功能。
  • 有丰富的数据类型。许多数据类型是一些商业数据库都没有提供的。
  • 面向对象。它包含了一些面向对象的技术,如继承和类。
  • 支持大数据库,它不同于一般的桌面数据库,能够支持几乎不受限制大小的数据库,而且性能稳定。
  • 方便集成web,提供一些接口方便 PHP,Perl等语言操作数据库。
  • 事务处理。相对一些其他免费数据库如MySQL,他提供了事务处理,可以满足一些商业领域的数据需要。

3.数据类型

PostgreSQL支持丰富的数据类型,许多数据类型在商业数据库中都无法提供。

  • 数值类型。包括整数、任意精度、浮点类型和序列类型数值。
  • 货币类型。范围-21474836.48 到 +21474836.47。
  • 字符类型。分为定长类型,不定长有限制类型和不定长不限制长度类型。
  • 二进制字符串。
  • 日期和时间类型
  • 布尔类型。
  • 几何类型。包括点、线、方形、路径、多边形和圆。
  • 网络地址类型。
  • 位串类型。就是包含1和0的串。
  • 对象标识符类型
  • 数组类型。

4.数据库极限

参数名称 最大范围
数据库大小 无限制
表大小 16TB(所有系统)
一条记录大小 1.6GB
字段大小 1GB
表记录条数 无限制
表字段数 250-1600(取决于字段的数据类型)
表索引 无限制

事实上不可能存在无限制的情况。支持16TB大小的表不是单一文件保存,而是分为多个文件存储的,所以不受限制于操作系统。

4.下载安装

我们可以到 http://www.postgresql.org网站下载,具体怎么安装我就不赘述,大家可以看文档,也可以看 参考中的中文网站的文档。在这里我就说说安装中需要注意的几个问题。

注意

  • 不能以root登陆Linux来操作数据库(启动数据库服务除外),请以root身份建立postgres用户,设置密码后登录。
  • 安装完postgreSQL,可能需要初始化数据库,需要以postgres用户登录系统,运行
    
    initdb -pqlib=/usr/lib/pqsql -pqdata=/var/lib/pqsal


    如果你的pqlib目录不同则需要按照你的实际路径修改,pqdata也是这样的。
  • 数据库用户与Linux用户是不同的概念,只有数据库用户才能操作数据库,以postgres登录Linux,然后是使用createuser来添加用户,dropuser来删除用户,也可以使用SQL命令CREATE USER来创建。

5.常用命令

PostgreSQL数据库常用操作命令:

Createdb 创建数据库
Createuser 创建数据库用户
Dropdb 删除数据库
Dropuser 删除数据库用户
Psql 交互式PostgreSQL前端工具,可以用它来操作数据库
Initdb 初始化postgreSQL数据库

这里不是介绍如何使用PostgreSQL数据库,所以对这些命令也不详细解释,可以参见文档说明和帮助。我在这里是假设读者已经安装并初始化好了数据库,并且会使用psql和熟练SQL来交互操作数据。

PostgreSQL 的C/C++接口介绍

PostgreSQL提供很多不同语言的接口,有C、C++、Perl、Tcl等等,这里主要是介绍C/C++如何连接到数据库,对数据进行添加,查询等操作。

1.C语言接口