创建和管理数据库
数据库是使用CREATE DATABASE命令创建的,可以通过DROP DATABASE命令删除。
如果我们要查看现有数据库的集合,可以检查系统表pg_database,比如通过查询语句:
SELECT datname FROM pg_database;
我们也可以在psql程序中通过\l 命令来列出现存的数据库。
创建一个数据库
下面我们来通过 SQL 命令CREATE DATABASE创建一个数据库。
语句格式为:
CREATE DATABASE name;
当前角色自动成为此新数据库的所有者,且以后删除这个数据库也是这个用户的特权。
例如,我们创建一个testdb数据库,并查询一下数据库列表:
在连接到数据库服务器后,我们才能执行CREATE DATABASE命令,那么第一个数据库是怎样创建的呢?
第一个数据库总是由initdb命令在初始化数据存储区的时候创建的,这个数据库叫postgres。因此要创建第一个用户数据库时你可以与postgres连接。
在数据库集群初始化时会创建另一个名为template1 的数据库。在创建一个新的数据库时,实际上就是复制了template1数据库。这就意味着你对template1所做的任何修改都会传播到所有随后创建的数据库中。因此,避免在template1中创建对象,除非你想要这些对象传播到每个新建的数据库中。
另外,为了方便,你还可以在shell中用createdb 程序来创建新数据库:
createdb dbname
有时候你想为其它人创建一个数据库,并且应该使他成为新数据库的所有者,这样他就可以自己配置和管理这个数据库。要实现这个目标,可以在SQL环境使用下列命令:
CREATE DATABASE dbname OWNER rolename;
或用命令行执行:
createdb -O rolename dbname
创建完数据库之后,就可以开始创建数据表和数据操纵了,我们会在后续的课程中一一讲解。
删除数据库
数据库是用DROP DATABASE命令删除的,格式为:
DROP DATABASE name;
只有数据库的所有者或者超级用户才可以删除数据库,删除数据库会删除数据库中包括的所有对象,且数据库的删除操作是不可恢复的。
我们不能在与目标库连接的时候执行DROP DATABASE命令,不过,我们可以和包括template1的其它数据库连接之后再删除。
为了方便,在 shell 上可以通过dropdb删除数据库的:
dropdb dbname
今天的课程就介绍到这里,我们下期继续讲解数据表~
标签:template1,01,删除,DATABASE,创建,数据库,CREATE,OushuDB From: https://blog.51cto.com/u_15334349/6041413