之前有看过数据库排行,除去Oracle
,MySQL
,MSSQL
之外,排在第四的就是PostgreSQL
,因此略微有点印象.现在上网不经意间看到PostgreSQL
居然支持直接的RESTful
接口,这么强?居然还是伯克利出品?于是我便打算看一看PostgreSQL
相关的东西
PostgreSQL认识
PostgreSQL
是一款基于POSTGRES
4.2版本的对象关系型数据库管理系统(RDBMS
).POSTGRES
由加利福利亚伯克利分校计算机与科学部门所研发
POSTGRES
项目于1986年由Michael Stonebraker
教授所带领研发,当时受到许多研究部门和学校教育的青睐,1993年POSTGRES
的使用者几乎翻了一倍,不过最后由于维护需要消耗大量时间,该项目终止于4.2版本
1994年,Andrew Yu
和Jolly Chen
为POSTGRES
添加了一个SQL解释器,并将其作为一个开源产品以新的名称Postgres95
发布在互联网上.Postgres95
完全使用ANSI C
所编写,相较于POSTGRES
大约快30-50%,缩减了25%的代码量,做了很多改进并修复了许多bug
1996年,由于Postgres95
这个名称很明显已经不再适用,这款软件被正式更名为PostgreSQL
,并且初始版本号确立为6.0.目前为止,PostgreSQL
已发展至11beta版本
PostgreSQL基础架构
- C/S模型
- 多进程结构:主进程,检查进程,文件写入进程,日志写入进程,删除标记进程,状态收集进程等等
创建数据库
PostgreSQL提供了createdb命令可以直接创建数据库,注意使用该命令的用户必须是PostgreSQL存在的角色,如postgres
创建数据库:
1 | $ createdb DATABASE //如果省略数据库名,则使用角色名作为数据库名 |
删除数据库:
1 | $ dropdb DATABASE |
连接至一个数据库
有多种方式可以连接至PostgreSQL数据库:
- 内置的PostgreSQL终端交互程序:psql
- 各种前端图形化交互工具.如pgAdmin
- 编程语言的PostgreSQL库.几乎每个编程语言都有
由于psql是内置的客户端,因此示例基本使用psql
psql命令综合使用
1 | $ psql DATABASE //连接至一个数据库.与createdb命令类似,如果省略数据库名,则使用角色名作为数据库名 |
进入psql终端后,会出现这样的信息:
1 | psql (10.5 (Debian 10.5-1.pgdg90+1)) |
最后一行也可能是这样的,这代表一个数据库的超级用户:
1 | postgres=# |
psql杂项命令
查看PostgreSQL版本:
1 | postgres=# select version(); |
查看当前日期:
1 | postgres=# select current_date; |
进行简单的算术:
1 | postgres=# select 2+2; |
psql
程序还有许多不是SQL
语句的内置命令.这些命令以一个反斜线符号\
作为开头
例如,查看众多PostgreSQL
的SQL
命令的帮助:
1 | postgres=# \h |
退出psql
交互终端:
1 | postgres=# \q |
可以使用\?
命令查看更多的内置命令的相关帮助