PSQL 简易教程

PSQL 简易教程

PostgreSQL是一个开源免费的关系型数据库,其官网是:

PSQL支持多个平台(Windows\MacOS\Linux),各平台及历史版本的下载页面:

笔者是Windows笔记本,所以下面以Windows平台为例进行说明。

下载相应的安装包后安装,没啥好说的,一路Next即可。需要注意的是安装后会让你输入一个密码作为主密码,不要忘记该密码。

pgAdmin

PSQL自带一个图形管理界面pgAdmin,安装后可以在开始菜单找到:

PSQL 简易教程

另一个可能会用到的工具是SQL Shell,是命令行操作PSQL的工具。但其实可以直接使用CMD或PowerShell使用命令行工具登录和操作PSQL。

打开pgAdmin(目前的版本是4.0)后会要求使用主密码登录:

PSQL 简易教程

登录后左侧导航栏中的PostgreSQL 13下就是本地的PSQL数据库:

PSQL 简易教程

如果使用pgAdmin远程连接PSQL服务器,会出现另一个数据库图标,和PostgreSQL并列。

PSQL 简易教程

选中PostgreSQL后点击属性,可以看到本地PSQL服务的相关信息。其中比较关键的有连接相关的属性:

PSQL 简易教程

使用命令行工具连接需要指定主机名和端口等,如果不清楚可以在这里进行查看。

除了数据库安装后自动创建的主用户postgres意外,我们可以自行创建其它用户,这也是推荐的做法,应当避免直接在程序中使用主用户连接PSQL。

方式也很简单,在登录/组角色右键选择创建》登录/组角色即可。

PSQL 简易教程

在成员选项中可以设置是否可以登录数据库,以及是否自动创建一个同名数据库。

PSQL 简易教程

除了创建账户时自动创建一个同名数据库外,也可以手动创建数据库。

要创建数据库只需要在数据库上右键,选择创建》数据库即可。

PSQL 简易教程

比较重要的是要设置对数据库的所有者:

PSQL 简易教程

在程序和命令行工具中都要用这个所有者帐号来进行登录。

数据库创建好后可以进一步添加表,数据库的表位于架构》public》表中:

PSQL 简易教程

右键点击添加表即可,这和其它数据库添加方式类似,没有什么难度,这里不详细说明。

添加好表后可以尝试执行SQL来验证查询语句和表结构,可以在表或数据库标签上右键打开查询工具:

PSQL 简易教程

查询编辑器中可以直接书写SQL,按F5执行。右侧X可以关闭窗口,下方会输出查询结果。

PSQL 简易教程

需要注意的是,数据库软件自身的数据也是以表的形式存在的,所以如果你命名的表名称与数据库自己定义的表名称冲突,比如user,SQL查询时默认查询数据库定义的表,所以执行select * from user的查询结果:

PSQL 简易教程

这也是为什么我之前执行select id from user一直显示没有id这个字段(抓狂了很久…)。

要解决这个问题只需要用""包裹表名即可,比如select * from "user",这样就能查询到想要的结果:

PSQL 简易教程

这里要注意的是只能是双引号,单引号是不行的。

命令行

命令行下登录并管理PSQL需要使用PSQL安装目录下的./bin/psql.exe工具,所以为了方便在任意路径执行,需要将所在目录加入用户环境变量。

然后就可以在CMD或者PowerShell中登录:

❯ psql -U bbs -h localhost -p 5433 -d bbs
Password for user bbs:
psql (13.5)
WARNING: Console code page (65001) differs from Windows code page (936)
         8-bit characters might not work correctly. See psql reference
         page "Notes for Windows users" for details.
Type "help" for help.

bbs=>

这里psql工具的相关命令行参数含义:

  • -U,用户名
  • -h,主机名
  • -p,端口
  • -d,数据库

执行连接请求后会要求你输入密码,输入正确后就可以进入相应的数据库操作环境,就可以直接执行SQL:

bbs=> select * from "user";
 id | name |      ctime      | password
----+------+-----------------+----------
  2 | abc  | 16:56:33.850223 | abc
  3 | 111  | 16:57:05.156293 | 111
  4 | 222  | 16:57:05.156293 | 222
(3 rows)

一般来说图形界面比命令行好用的多,但如果你的程序连接PSQL出现问题,可以尝试用命令行的方式连接,这样有助于判断相关连接参数是否出现问题。

谢谢阅读。

上一篇:客户端连接postgresql服务器时提示pg_hba.conf的配置不正确的解决方法


下一篇:ABC240 G - Teleporting Takahashi