PostgreSQL初步了解

之前有看过数据库排行,除去Oracle,MySQL,MSSQL之外,排在第四的就是PostgreSQL,因此略微有点印象.现在上网不经意间看到PostgreSQL居然支持直接的RESTful接口,这么强?居然还是伯克利出品?于是我便打算看一看PostgreSQL相关的东西

PostgreSQL认识

PostgreSQL是一款基于POSTGRES4.2版本的对象关系型数据库管理系统(RDBMS).POSTGRES由加利福利亚伯克利分校计算机与科学部门所研发

POSTGRES项目于1986年由Michael Stonebraker教授所带领研发,当时受到许多研究部门和学校教育的青睐,1993年POSTGRES的使用者几乎翻了一倍,不过最后由于维护需要消耗大量时间,该项目终止于4.2版本

1994年,Andrew YuJolly ChenPOSTGRES添加了一个SQL解释器,并将其作为一个开源产品以新的名称Postgres95发布在互联网上.Postgres95完全使用ANSI C所编写,相较于POSTGRES大约快30-50%,缩减了25%的代码量,做了很多改进并修复了许多bug

1996年,由于Postgres95这个名称很明显已经不再适用,这款软件被正式更名为PostgreSQL,并且初始版本号确立为6.0.目前为止,PostgreSQL已发展至11beta版本

PostgreSQL基础架构

  1. C/S模型
  2. 多进程结构:主进程,检查进程,文件写入进程,日志写入进程,删除标记进程,状态收集进程等等

创建数据库

PostgreSQL提供了createdb命令可以直接创建数据库,注意使用该命令的用户必须是PostgreSQL存在的角色,如postgres

创建数据库:

1
$ createdb DATABASE //如果省略数据库名,则使用角色名作为数据库名

删除数据库:

1
$ dropdb DATABASE

连接至一个数据库

有多种方式可以连接至PostgreSQL数据库:

  1. 内置的PostgreSQL终端交互程序:psql
  2. 各种前端图形化交互工具.如pgAdmin
  3. 编程语言的PostgreSQL库.几乎每个编程语言都有

由于psql是内置的客户端,因此示例基本使用psql

psql命令综合使用

1
$ psql DATABASE //连接至一个数据库.与createdb命令类似,如果省略数据库名,则使用角色名作为数据库名

进入psql终端后,会出现这样的信息:

1
2
3
4
psql (10.5 (Debian 10.5-1.pgdg90+1))
Type "help" for help.

postgres=>

最后一行也可能是这样的,这代表一个数据库的超级用户:

1
postgres=#

psql杂项命令

查看PostgreSQL版本:

1
2
3
4
5
6
postgres=# select version();

version
----------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 10.5 (Debian 10.5-1.pgdg90+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit
(1 row)

查看当前日期:

1
2
3
4
5
postgres=# select current_date;
current_date
--------------
2018-08-20
(1 row)

进行简单的算术:

1
2
3
4
5
postgres=# select 2+2;
?column?
----------
4
(1 row)

psql程序还有许多不是SQL语句的内置命令.这些命令以一个反斜线符号\作为开头

例如,查看众多PostgreSQLSQL命令的帮助:

1
2
3
4
5
postgres=# \h
Available help:
ABORT CREATE FOREIGN TABLE DROP SCHEMA
ALTER AGGREGATE CREATE FUNCTION DROP SEQUENCE
...

退出psql交互终端:

1
postgres=# \q

可以使用\?命令查看更多的内置命令的相关帮助

参考文档

PostgreSQL官方文档

csdn,转:PostgreSQL 简介

0%