学习了一段时间的PostgreSQL,还是将掌握的东西写出来记录下比较好。
今天开始从头来记。积累起来。
第一篇 postgres简介、安装、用户管理、启动关闭、创建删除数据库
简介:
PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES2为基础发展起来的对象关系型数据库管理系统(ORDBMS),可以说是目前世界上最先进,功能最强大的自由数据库管理系统。
它的标志是一个大象头。
安装:
PostgreSQL的安装方法比较灵活,可以用源码包安装,也可以用您使用的发行版所带的软件包来安装,还可以采用在线安装。
其安装过程简单,不做赘述,在这里要说的是,安装时,选择将程序文件与data文件分开存放,这样可以减少磁盘IO的争用次数。这也是其他各种关系型数据库的安装建议。
注意:安装前,最好创建一个单独的用户来安装PostgreSQL,这与mysql以及oracle是同一个道理。
启动关闭:
PostgreSQL安装后,启动与关闭脚本放在etc中(具体不同的linux发行版,放置的位置略有差异)
以postgres用户登录系统,以下命令是启动关闭等:
postgresql-9.0 start 注:启动;
postgresql-9.0 restart 注:重启;
postgresql-9.0 stop 注:停止;
postgresql-9.0 status 注:查看状态;
用户管理:
添加用户:
命令:createuser [-a] [-A] [-d] [-D] [-e] [-P] [-h 主机名] [-p port] 用户名
参数说明:
[-a]:允许创建其他用户,相当于创建一个超级用户;
[-A]:不允许此用户创建其他用户;
[-d]:允许此用户创建数据库;
[-D]:不允许此用户创建数据库;
[-e]:将执行过程显示到Shell上;
[-P]:创建用户时,同时设置密码;
[-h 主机名]:为某个主机上的Postgres创建用户;
[-p port]:与-h参数一同使用,指定主机的端口。
事实上,createuser只是对CREATE USER的封装。
A.不带参数的创建用户
createuser testuser
Shall the new user be allowed to create databases? (y/n) n --------是否可以创建数据库:否
Shall the new user be allowed to create more new users? (y/n) n ---------是否可以创建新用户:否
CREATE USER
注:不带数创建用户时,Postgres会询问此用户的权限,上面的例子创建了一个普通用户; 这等于CREATE USER testuser NOCREATEDB NOCREATEUSER;
B.为指定的主机和端口上创建用户
createuser -h 192.168.1.5 -p 5000 -D -A -e testuser
CREATE USER
注:这个命令为主机192.168.1.5的5000端口创建用户testuser, 此用户不可以创建数据库和其他用户。
C.创建超级用户
createuser -P -d -a -e testuser
Enter password for new user: testuser
Enter it again: testuser
CREATE USER
注:这个命令在本地创建一个超级用户(-a),可以创建数据库(-d), 同时要求设置密码。 这等于CREATE USER testuser PASSWORD 'testuser' CREATEDB CREATEUSER;
删除用户:
命令:dropuser [-i] [-h] [-p] [-e] 用户名
参数说明:
[ -i]:删除用户前,要求确认;
[-h 主机名]:删除某个主机上的Postgres用户;
[-p port]:与-h参数一同使用,指定主机的端口;
[-e]:将执行过程显示到Shell上。
事实上,dropuser只是对DROP USER的封装。
A.删除本地的Postgres用户
dropuser testuser
DROP USER
B.删除远程Postgres服务器上的用户
dropuser -h192.168.1.5 -p 5000 -i -e testuser
User "testuser" and any owned databases will be permanently deleted.
Are you sure? (y/n) y
DROP USER
注:此命令删除主机192.168.1.5(-h)的5000端口(-p)的用户testuser,并且需要确认(-i); 这等于DROP USER "testuser";
创建删除数据库:
A.创建数据库
创建我的第一个数据库kanon:
postgres是支持SQL标准最高的关系型数据库管理系统,当然,它支持CREATE DATABASE命令创建数据库,在此基础上,还对此命令做了扩展,增加了许多属性设置。
比如owner、template、ecoding、tablespace等。
那么,利用CREATE DATABASE创建kanon数据库语句如下:
CREATE DATABASE kanon ENCODING 'LATIN1' TEMPLATE template0 OWNER kanon TABLESPACE kanonspace;
另外,postgres还提供的自己的方言来创建数据库createdb,同样支持多个属性设置。
比如--tablespace、--encoding、--owner、--template等。
那么,利用createdb创建kanon数据库语句如下:
createdb kanon --encoding LATIN1 --template template0 --owner kanon --tablespace kanonspace;
事实上,createdb只是给create database命令做的一个外壳,目的是提高创建语句的便利性。(The program createdb is a wrapper program around this command, provided for convenience)
但作为我个人,还是喜欢使用CREATE DATABASE 命令来创建数据库。
B.删除数据库
删除我刚才创建的数据库kanon:
dropdb kanon
DROP DATABASE kanon