可以使用CREATE DATABASE语句或createdb来创建角色。createrdb是对CREATE DATABASE命令的封装,需要在shell界面执行,而不是在数据库界面。
CREATE DATABASE databasename;
createdb databasename
其中:databasename为数据库名。
要使用这条命令,必须拥有CREATEDB权限。
创建一个数据库testdb1。
postgres=# CREATE DATABASE testdb1;
CREATE DATABASE
postgres=#
可以使用\c语句来选择数据库。
\c databasename;
其中:databasename为数据库名称。
选择testdb1数据库。
postgres=# \c testdb1;
您现在已经连接到数据库 "testdb1",用户 "postgres".
testdb1=#
可以使用\l语句来查看数据库。
\l;
查看所有数据库。
postgres=# \l
数据库列表
名称 | 拥有者 | 字元编码 | 校对规则 | Ctype | 存取权限
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =Tc/postgres +
| | | | | postgres=CTc/postgres+
| | | | | roletest4=C/postgres
template0 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
testdb1 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
(4 行记录)
postgres=#
可以使用DROP DATABASE语句或dropdb来删除数据库。dropdb是对DROP DATABASE命令的封装,需要在shell界面执行,而不是在数据库界面。
注意:
删除数据库要谨慎操作,一旦删除,数据库中的所有表和数据都会删除。
DROP DATABASE databasename;
dropdb databasename
其中:databasename为数据库名称。
DROP DATABASE会删除数据库的系统目录项并且删除包含数据的文件目录。
DROP DATABASE只能由超级管理员或数据库拥有者执行。
删除testdb1数据库。
postgres=# DROP DATABASE testdb1;
DROP DATABASE
postgres=#
可以使用pg_dump命令备份数据库,将数据库转储到一个脚本文件或其他归档文件中。
pg_dump [option]... [databasename] > outfile
其中:
备份主机为127.0.0.1,端口为5432,postgres用户下的testdb2数据库到testdb2.sql中。
[postgres@superman-21 ~]$ pg_dump -h 127.0.0.1 -p 5432 -U postgres -W testdb2 > testdb2.sql
口令:
[postgres@superman-21 ~]$
可以使用psql命令恢复数据库。
psql [option]... [databasename [username]] < infile
其中:
psql命令不会自动创建databasename数据库,所以在执行psql恢复数据库之前需要先创建databasename数据库。
将testdb2.sql脚本文件导入到主机为127.0.0.1,端口为5432,postgres用户下newdb数据库中。
[postgres@superman-21 ~]$ createdb newdb
[postgres@superman-21 ~]$
[postgres@superman-21 ~]$ psql -h 127.0.0.1 -p 5432 -U postgres -W -d newdb < testdb2.sql
口令:
SET
SET
SET
SET
SET
set_config
------------
(1 行记录)
SET
SET
SET
SET
SET
SET
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
COPY 0
COPY 0
[postgres@superman-21 ~]$
点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!