PostgreSQL

PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS)
PostgreSQL 的 Slogan 是 “世界上最先进的开源关系型数据库”。

ORDBMS 术语

在我们开始学习 PostgreSQL 数据库前,让我们先了解下 ORDBMS 的一些术语:

数据库: 数据库是一些关联表的集合。
数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
外键:外键用于关联两个表。
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

PostgreSQL 特征

函数:通过函数,可以在数据库服务器端执行指令程序。

索引:用户可以自定义索引方法,或使用内置的 B 树,哈希表与 GiST 索引。

触发器:触发器是由SQL语句查询所触发的事件。如:一个INSERT语句可能触发一个检查数据完整性的触发器。触发器通常由INSERT或UPDATE语句触发。 多版本并发控制:PostgreSQL使用多版本并发控制(MVCC,Multiversion concurrency control)系统进行并发控制,该系统向每个用户提供了一个数据库的"快照",用户在事务内所作的每个修改,对于其他的用户都不可见,直到该事务成功提交。

规则:规则(RULE)允许一个查询能被重写,通常用来实现对视图(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、删除(DELETE)。

数据类型:包括文本、任意精度的数值数组、JSON 数据、枚举类型、XML 数据

等。
全文检索:通过 Tsearch2 或 OpenFTS,8.3版本中内嵌 Tsearch2。

NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 数据库的外部数据包装器。

数据仓库:能平滑迁移至同属 PostgreSQL 生态的 GreenPlum,DeepGreen,HAWK 等,使用 FDW 进行 ETL

PostgreSQL与MySQL语法直接的差异

全连接

mysql: 不支持全连接
postgresql: 支持全连接

大小写兼容

mysql:可以通过配置修改
postgresql:不兼容

条件判断

mysql:if(), case when 条件1 then 符合值 else 不符合值 end;
postgresql: case when 条件1 then 符合值 else 不符合值 end;

保留小数位(round)

mysql: round(字段,小数位数)
postgresql: round(case(‘字段’ as numeric),小数位数)

null值判断

mysq:支持 ifnull(),NVL(),COALESCE()
postgresql:支持COALESCE()

PostgreSQL注意

1.PostgreSQL表名使用小写,不要使用大写,避免写SQL时
2.表字段或表名为大写时,字段或表名必须添加双引号
3.表字段或表名为小写时,字段或表名不需要双引号

你可能感兴趣的:(PostgreSQL)