PostgreSQL - 创建数据库



本章讨论如何在 PostgreSQL 中创建一个新的数据库。PostgreSQL 提供两种创建新数据库的方法:

  • 使用 CREATE DATABASE,这是一个 SQL 命令。
  • 使用createdb,这是一个命令行可执行文件。

使用 CREATE DATABASE

此命令将从 PostgreSQL shell 提示符创建数据库,但您应该具有创建数据库的相应权限。默认情况下,新数据库将通过克隆标准系统数据库template1来创建。

语法

CREATE DATABASE 语句的基本语法如下:

CREATE DATABASE dbname;

其中dbname是要创建的数据库的名称。

示例

以下是一个简单的示例,它将在您的 PostgreSQL 模式中创建testdb

postgres=# CREATE DATABASE testdb;
postgres-# 

使用 createdb 命令

PostgreSQL 命令行可执行文件createdb是 SQL 命令CREATE DATABASE的包装器。此命令与 SQL 命令CREATE DATABASE之间的唯一区别在于,前者可以直接从命令行运行,并且它允许在一个命令中将注释添加到数据库中。

语法

createdb的语法如下所示:

createdb [option...] [dbname [description]]

参数

下表列出了参数及其说明。

序号 参数和说明
1

dbname

要创建的数据库的名称。

2

description

指定要与新创建的数据库关联的注释。

3

options

createdb 接受的命令行参数。

选项

下表列出了 createdb 接受的命令行参数:

序号 选项和说明
1

-D tablespace

指定数据库的默认表空间。

2

-e

回显 createdb 生成并发送到服务器的命令。

3

-E encoding

指定此数据库中使用的字符编码方案。

4

-l locale

指定此数据库中使用的区域设置。

5

-T template

指定从中构建此数据库的模板数据库。

6

--help

显示有关 createdb 命令行参数的帮助信息,然后退出。

7

-h host

指定服务器正在运行的机器的主机名。

8

-p port

指定服务器正在侦听连接的 TCP 端口或本地 Unix 域套接字文件扩展名。

9

-U username

连接到的用户名。

10

-w

从不发出密码提示。

11

-W

强制 createdb 在连接到数据库之前提示输入密码。

打开命令提示符并转到安装 PostgreSQL 的目录。转到 bin 目录并执行以下命令以创建数据库。

createdb -h localhost -p 5432 -U postgres testdb
password ******

上面给出的命令将提示您输入 PostgreSQL 管理员用户的密码,默认情况下为postgres。因此,请提供密码并继续创建您的新数据库。

使用上述任一方法创建数据库后,可以使用\l(即反斜杠 el 命令)在数据库列表中检查它,如下所示:

postgres-# \l
                             List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges   
-----------+----------+----------+---------+-------+-----------------------
 postgres  | postgres | UTF8     | C       | C     | 
 template0 | postgres | UTF8     | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 template1 | postgres | UTF8     | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 testdb    | postgres | UTF8     | C       | C     | 
(4 rows)

postgres-# 
广告