位置:首頁 > 數據庫 > PostgreSQL教學 > PostgreSQL創建數據庫

PostgreSQL創建數據庫

本章討論在PostgreSQL中如何創建一個新的數據庫, PostgreSQL提供兩種方式創建一個新的數據庫:

  • 使用CREATE DATABASE的SQL命令。

  • 使用createdb的一個命令行可執行文件。

使用CREATE DATABASE

該命令將創建一個數據庫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]]

參數

下表列出了參數及它們的描述。

參數名稱 描述
dbname The name of a database to create.
description Specifies a comment to be associated with the newly created database.
options command-line arguments which createdb accepts.

選項

下表列出了命令行參數CREATEDB接收:
選項 描述
-D tablespace Specifies the default tablespace for the database.
-e Echo the commands that createdb generates and sends to the server.
-E encoding Specifies the character encoding scheme to be used in this database.
-l locale Specifies the locale to be used in this database.
-T template Specifies the template database from which to build this database.
--help Show help about dropdb command line arguments, and exit.
-h host Specifies the host name of the machine on which the server is running.
-p port Specifies the TCP port or the local Unix domain socket file extension on which the server is listening for connections.
-U username User name to connect as.
-w Never issue a password prompt.
-W Force createdb to prompt for a password before connecting to a database.

打開命令提示符,然後去是PostgreSQL安裝所在的目錄。進入到bin目錄,執行下麵的命令創建一個數據庫。

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

上麵的命令會提示Postgres的默認的PostgreSQL管理用戶的密碼,以便提供密碼和繼續創建新的數據庫。

一旦創建數據庫時可以使用上述方法,可以檢查它在列表中的數據庫使用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-#