PostgreSQL基本操作

译者:anxin
日期:2017-09-27

安装后或者初始化数据库后,PostgreSQL自动创建一个名为postgres的数据库和一个名为postgres的数据库角色(用户),同时在Linux系统中创建一个postgres用户。

PostgreSQL安装完成后,安装了几个客户端应用,方便数据库操作,常用的是:

psql  --  PostgreSQL的Shell交互终端

createuser  --  创建用户Shell命令

createdb  --  创建数据库Shell命令

这些命令需要使用Linux用户postgres登陆Shell后使用,详细查看:PostgreSQL如何连接登陆数据库

操作数据库的前提

1)为Linux系统用户postgres创建密码

sudo passwd postgres

2)切换Shell用户为postgres

sudo su - postgres

操作PostgreSQL数据库

使用psql操作PostgreSQL数据库

1)首先,为postgres用户设置密码

\password postgres

2)创建数据库用户dbuser,并设置密码

CREATE USER dbuser WITH PASSWORD 'password';

3)创建用数据库mydb,并设置所有者为dbuser

CREATE DATABASE mydb OWNER dbuser;

4)将mydb数据库的所有权限都赋予dbuser)

GRANT ALL PRIVILEGES ON DATABASE mydb to dbuser;

5)使用\q命令退出控制台(也可以直接按ctrl+D)。

\q

使用客户端命令操作PostgreSQL数据库。

添加新用户和新数据库,除了使用PostgreSQL提供的psql交互终端外,还可以使用PostgreSQL提供的客户端命令createusercreatedb,还是以新建用户dbuser和数据库mydb为例(前提是使用Linux用户postgres用户登陆Shell)。

1)创建数据库用户dbuser,并设置密码

createuser dbuser --pwprompt

#输入密码

2)创建数据库mydb,把数据库的所有者设置为dbuser

createdb mydb -O dbuser

登录数据库

使用用户名和密码登陆PostgreSQL

使用psql交互终端,指定用户名,数据库,主机登陆PostgreSQL数据库(配置pg-hba.conf文件中的host记录)。

psql -U dbuser -d mydb -h localhost -p 5432

参数含义如下:

  • -U:指定用户
  • -d:指定数据库
  • -h:指定服务器
  • -p:指定端口

此命令登陆验证时对应pg-hba.conf文件中的host记录,我们的服务器host记录的认证方法为md5,所以输入以上命令后,提示输入用户dbuser的口令,此dbuser是PostgreSQL数据库用户,而不是Linux用户。

直接登陆PostgreSQL

如果当前登陆Shell的Linux系统用户,同时在PostgreSQL中有同名的数据库用户,则可以省略用户名(-U参数)。例如使用dbuser登陆Shell:su - dbuser,同时在PostgreSQL中有数据库用户dbuser,那么使用如下命令直接登陆PostgreSQL数据库(配置配置pg-hba.conf文件中的local记录)

psql mydb

mydb指定的是登陆PostgreSQL后使用的数据库。

如果PostgreSQL数据库中存在与当前Linux用户同名的数据库,则可以省略数据库名。例如使用dbuser登陆Shell:su - dbuser,同时在PostgreSQL中有数据库用户dbuser和数据库dbuser,使用如下命令登陆PostgreSQL数据库,默认登陆后使用的数据库是dbuser

psql

如果要恢复外部数据,使用下面命令:

psql mydb < mydb.sql

常用psql命令

除了前面已经用到的\password命令(设置密码)和\q命令(退出)以外,psql还有很多常用命令,详细查看:

PostgreSQL常用SQL语句

在以上的操作中我们使用了CREATE USERCREATE DATABASE语句,更多常用SQL语句,查看

本文链接:/tutorial/postgresql/postgresql-jiben-shiyong

本文版权归知站所有,未经站长同意不得转载,谢谢尊重作者劳动成果!