PostgreSQL - 创建数据库

  • 简述

    本章讨论如何在 PostgreSQL 中创建新数据库。PostgreSQL 提供了两种创建新数据库的方法 -
    • 使用 CREATE DATABASE,一个 SQL 命令。
    • 使用createdb命令行可执行文件。
  • 使用创建数据库

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

    句法

    CREATE DATABASE 语句的基本语法如下:
    
    CREATE DATABASE dbname;
    
    其中dbname是要创建的数据库的名称。

    例子

    下面是一个简单的例子,它将创建testdb在您的 PostgreSQL 架构中
    
    postgres=# CREATE DATABASE testdb;
    postgres-# 
    
  • 使用 createdb 命令

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

    句法

    createdb的语法如下所示 -
    
    createdb [option...] [dbname [description]]
    

    参数

    下表列出了参数及其说明。
    S. 没有。 参数及说明
    1
    dbname
    要创建的数据库的名称。
    2
    description
    指定要与新创建的数据库关联的注释。
    3
    options
    createdb 接受的命令行参数。

    选项

    下表列出了 createdb 接受的命令行参数 -
    S. 没有。 选项和说明
    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-#