一、简介
PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统,它提供了多版本并行控制,支持几乎所有 SQL 构件(包括子查询,事务和用户定 义类型和函数), 并且可以获得非常广阔范围的(开发)语言绑定 (包括 C,C++,Java,perl,tcl,和 python),有些特性甚至连商业数据库都不具备。这个起源于伯克利(BSD)的数据库研究计划目前已经衍生成一项国际开发项目,并且有非常广泛的用户。
具体的优点特性如下:
1. PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,是目前世界上支持最丰富的数据类型的数据库。
2. PostgreSQL 是全功能的自由软件数据库,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。
3. PostgreSQL 采用的是比较经典的 C/S (client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。
4. PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。
二、源码安装
系统环境:Centos 6.5
数据库版本:PostgreSQL 9.4.5
1,添加postgres用户组、用户
/usr/sbin/groupadd postgres
/usr/sbin/useradd -g postgres postgres
2,解压文件
tar zxvf postgresql-9.4.5.tar.gz
3,将文件移动到/usr/local/pgsql文件夹下
mv postgresql-9.4.5 /usr/local/pgsql
4,进入postgresql
cd postgresql-9.4.5
5,编译
./configure--prefix=/usr/local/pgsql
make
make install
6,创建data文件夹
mkdir /usr/local/pssql/data
7,赋予postgres用户组、用户操作data的权限
chown -R postgres:postgres /usr/local/pgsql/data
8,使用postgres用户初始化数据库
su - postgres -c "/usr/local/pgsql/bin/initdb --locale=C -E UNICODE -D /usr/local/pgsql/data/"
9,设置pgsql的data路径
export PGDATA=/usr/local/pgsql/data
10,创建日志文件
touch /var/log/pgsql.log
11,赋予操作日志文件的权限
chown -R postgres:postgres /var/log/pgsql.log
12,将脚本拷贝到数据库目录的bin文件夹下并改名
cp contrib/start-scripts/linux /usr/local/pgsql/bin/postgresql
cp contrib/start-scripts/linux /etc/init.d/postgresql
13,赋予操作脚本的权限
chmod +x /usr/local/pgsql/bin/postgresql
chmod +x /etc/init.d/postgresql
14,启动数据库
/usr/local/pgsql/bin/postgresql start
15,添加用户root
su - postgres -c "/usr/local/pgsql/bin/createuser-h localhost -p 5432 -d -A -P -e root"
16,进入数据库
(1),切换到postgres用户
(2),创建数据库test
(3),进入test
进入test的数据库时,会显示psql的版本,下面会显示 “数据库=#”,意思就是当前操作的是哪个数据库。
注意:使用postgresql时,需要先切换到postgresql用户,才能使用postgresql数据库。
三、简单使用(在postgres用户下)
1,创建数据库
/usr/local/pgsql/bin/
createdb db1
2,创建用户
/usr/local/pgsql/bin/
createuser user1
3,使用用户进入对应数据库
psql -U user1 -d db1
4,列出所有的数据库
db1=# \l
或
db1=# \list
5,切换数据库
db1=# \c dbname
6,创建表
db1=# create table tb1(id int);
7,列出当前数据库下的数据表
db1=# \d
8,列出指定表的所有字段,
db1=# \d tablename
9,查看指定表的基本情况
db1=# \d+ tablename
10,退出登录
db1=# \q