目录
前言
一、关于默认数据
二、创建一个数据库
三、查看数据库的列表
四、修改一个数据库
五、删除一个数据库
数据库提供了一些模板数据库和一个默认数据库,template1,template0和postgres。
CREATE DATABASE命令会创建一个新的数据库。例如:
=> CREATE DATABASE new_dbname;
要创建一个数据库,用户必须具有创建一个数据库的特权或者是一个数据库超级用户。如果用户没有正确的特权,用户就不能创建数据库。可以联系用户的数据库管理员为用户授予必要的特权或者替用户创建一个数据库。
用户还可以使用客户端程序createdb来创建一个数据库。 例如,在一个使用提供的主机名和端口连接到数据库命令行终端中运行下列命令,它将会创建一个名为mydatabase的数据库:
createdb -h masterhost -p 5432 mydatabase
上述主机名和端口必须匹配所安装的数据库系统的主机名和端口。一些对象(如角色)会在一个数据库系统的所有数据库之间共享。 其他对象(例如用户创建的表)则只出现在创建它们的数据库中。
默认情况下,一个新数据库通过克隆标准系统数据库模板template1而创建。 其实在创建新数据库时,任何一个数据库都可以被用作模板,这样就提供了“克隆”或者复制一个现有数据库及其所包含的所有对象和数据的能力。例如:
=> CREATE DATABASE new_dbname TEMPLATE old_dbname;
在创建数据库时可以指定另一个数据库Owner:
=> CREATE DATABASE new_dbname WITH owner=new_user;
如果用户在使用psql客户端程序,用户可以使用 \l元命令来显示用户的数据库系统中的数据库和模板的列表。 如果使用的是另一种客户端程序并且用户是超级用户,用户可以从 pg_database系统目录表查询数据库的列表。例如:
=> SELECT datname from pg_database;
ALTER DATABASE命令可以修改数据库的属性,例如拥有者、名称或者默认配置属性。 例如,下面的命令会修改一个数据库的默认方案搜索路径(search_path配置参数):
=> ALTER DATABASE mydatabase SET search_path TO myschema, public, pg_catalog;
DROP DATABASE命令删除一个数据库。 它会移除该数据库的系统目录项并且 删除该数据库在磁盘上的目录及其中包含的数据。 要删除一个数据库,用户必须是该数据库的拥有者或者超级用户,并且当用户或者其他人正连接到该数据库时不能删除它。 在删除一个数据库时,可以连接到postgres(或者另一个数据库)。例如:
=> \c postgres
=> DROP DATABASE mydatabase;
$ dropdb -h masterhost -p 5432 mydatabase