Psql 简易教程
Postgresql是一个开源免费的关系型数据库,其官网是:
Psql支持多个平台(Windows\MacOS\Linux),各平台及历史版本的下载页面:
笔者是Windows笔记本,所以下面以Windows平台为例进行说明。
下载相应的安装包后安装,没啥好说的,一路Next即可。需要注意的是安装后会让你输入一个密码作为主密码,不要忘记该密码。
pgAdmin
Psql自带一个图形管理界面pgAdmin,安装后可以在开始菜单找到:
另一个可能会用到的工具是sql Shell,是命令行操作Psql的工具。但其实可以直接使用CMD或PowerShell使用命令行工具登录和操作Psql。
打开pgAdmin(目前的版本是4.0)后会要求使用主密码登录:
登录后左侧导航栏中的Postgresql 13下就是本地的Psql数据库:
选中Postgresql后点击属性,可以看到本地Psql服务的相关信息。其中比较关键的有连接相关的属性:
使用命令行工具连接需要指定主机名和端口等,如果不清楚可以在这里进行查看。
除了数据库安装后自动创建的主用户postgres意外,我们可以自行创建其它用户,这也是推荐的做法,应当避免直接在程序中使用主用户连接Psql。
方式也很简单,在登录/组角色右键选择创建》登录/组角色即可。
在成员选项中可以设置是否可以登录数据库,以及是否自动创建一个同名数据库。
除了创建账户时自动创建一个同名数据库外,也可以手动创建数据库。
比较重要的是要设置对数据库的所有者:
在程序和命令行工具中都要用这个所有者帐号来进行登录。
数据库创建好后可以进一步添加表,数据库的表位于架构》public》表中:
右键点击添加表即可,这和其它数据库添加方式类似,没有什么难度,这里不详细说明。
添加好表后可以尝试执行sql来验证查询语句和表结构,可以在表或数据库标签上右键打开查询工具:
查询编辑器中可以直接书写sql,按F5执行。右侧X可以关闭窗口,下方会输出查询结果。
需要注意的是,数据库软件自身的数据也是以表的形式存在的,所以如果你命名的表名称与数据库自己定义的表名称冲突,比如user,SQL查询时默认查询数据库定义的表,所以执行select * from user
的查询结果:
这也是为什么我之前执行select id from user
一直显示没有id这个字段
(抓狂了很久…)。
要解决这个问题只需要用""
包裹表名即可,比如select * from "user"
,这样就能查询到想要的结果:
这里要注意的是只能是双引号,单引号是不行的。
命令行
命令行下登录并管理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
工具的相关命令行参数含义:
执行连接请求后会要求你输入密码,输入正确后就可以进入相应的数据库操作环境,就可以直接执行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出现问题,可以尝试用命令行的方式连接,这样有助于判断相关连接参数是否出现问题。
谢谢阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。