数据库

OushuDB在初始化完成后,会默认生成三个数据库,可以使用l命令查看,或者查看pg_database系统表。

1
2
3
4
5
6
7
8
postgres=# \l
                  List of databases
   Name    |  Owner   | Encoding | Access privileges
-----------+----------+----------+-------------------
 postgres  | ChangLei | UTF8     |
 template0 | ChangLei | UTF8     |
 template1 | ChangLei | UTF8     |
(4 rows)

其中template0和template1为模版数据库。template1为系统默认用来创建新数据库的模版数据库,用户可以修改。template0默认不接受连接,所以不可更改,目的是始终保存一个干净的模版数据库。

创建一个数据库的时候,可以指定一个数据库的模版数据库。缺省为template1,现在OushuDB只支持以template0,template1和postgres数据库为模版数据库。例如:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
postgres=# create database tdb; # 创建一个新数据库,默认以template0为模版
CREATE DATABASE

postgres=#\c postgres  # 连接postgres
postgres=# create table test(i int);  # 在postgres数据库中创建表test
CREATE TABLE

postgres=# create table test_orc(i int) with (appendonly=true, orientation=orc);  # 在postgres数据库中创建ORC格式表
CREATE TABLE

postgres=# create database dbnew template postgres;
CREATE DATABASE

postgres=#\c dbnew # 连接dbnew

可以看到,dbnew中现在包含test表

1
2
3
4
5
6
dbnew=#\d
               List of relations
 Schema | Name | Type  |  Owner   |   Storage
--------+------+-------+----------+-------------
 public | test | table | ChangLei | append only
(1 row)