本章节讲解了如何在postgres中创建一个新的数据库。Postgres提供了两种方法来创建新的数据库。
- 使用create database,一个sql命令
- 使用createdb,一个操作系统命令行可执行文件
使用create database
这条命令将从postgres提示符创建一个数据库,但是你应该有适当的权限来创建数据库。默认情况下,将通过克隆标准系统数据库template1来创建新的数据库。
语法
create database 的基本语法如下:
CREATE DATABASE dbname;
其中dbname是要创建的数据库的名字。
举例
以下是一个简单的例子,它将在postgres模式中创建一个名字为testdb的数据库。
postgres=# create database testdb;
CREATE DATABASE
postgres=#
使用createdb
Postgres命令行可执行文件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 | 指定服务器监听的端口,或者 socket 文件 |
9 | -u username | 连接数据库的用户名 |
10 | -w | 忽略输入密码 |
11 | -W | 连接时强制要求输入密码 |
打开命令行,进入到postgres的安装目录。进入bin目录并执行以下命令来创建一个数据库。
postgres@test01:[~]: cd /usr/pgsql-11/bin/
postgres@test01:[/usr/pgsql-11/bin]: createdb -h 10.175.2.186 -p 5432 -U postgres testdb
以上命令我们使用了超级用户postgres登陆到10.175.2.186,端口号为5432的postgres数据库中并创建testdb数据库。
使用上述任何一种方法创建数据库后,你可以使用 \l命令在数据库列表中检查。
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
testdb | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(4 rows)
postgres=#