本章讨论在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-#