学习了一段时间的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