Postgresql 简明教程

PostgreSQL - CREATE Database

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

  1. 使用 SQL 命令 CREATE DATABASE。

  2. 使用命令行可执行文件 createdb。

Using CREATE DATABASE

此命令将从 PostgreSQL shell 提示符创建一个数据库,但您必须具有创建数据库的适当权限。默认情况下,新数据库将通过克隆标准系统数据库模板 1 来创建。

Syntax

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

CREATE DATABASE dbname;

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

Example

以下是一个简单的示例,它将在 PostgreSQL 架构中创建 testdb

postgres=# CREATE DATABASE testdb;
postgres-#

Using createdb Command

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

Syntax

createdb 的语法如下所示:

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

Parameters

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

S. No.

Parameter & Description

1

dbname 要创建的数据库的名称。

2

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

3

options 命令行参数,createdb 可接受。

Options

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

S. No.

Option & Description

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-#