PostgreSQL 入门

一, 简介

这里写图片描述
PostgreSQL,世界上最先进的开源数据库( 官网介绍)。
官网地址:https://www.postgresql.org/
网上关于PostgreSQL的博客十分多,这里便不再赘述,推荐知名博主阮一峰的的一篇关于PostgreSQL的博客:PostgreSQL新手入门,简洁明了,十分适合刚接触PostgreSQL的同学,例如我,哈哈。

这里有几点要注意:


二,视图

视图,一个保存查询结果的数据库对象。视图,可以理解为PostgreSQL重的虚拟表。也可以说,PostgreSQL视图是代表一张或多张表查询结果数据的逻辑表。

这里写图片描述

注意:普通视图不会保存物理数据,每次查询都是查询视图关联的几张表,但是物化视图(实例化视图)会物理保存查询结果,每次查询都是从视图直接查询。

1,普通视图

使用navicat premium工具图形化操作,创建视图十分简单
这里写图片描述

  1. 右侧右键视图,创建新视图。
  2. 选择视图创建工具,选择表,字段,设置字段名称,如果有需要可以设置查询条件。
  3. 点击保存,就可以创建一个普通视图。

当然,如果对sql熟悉的同学可以直接使用sql语句创建视图。

然后在关联的表插入测试数据,双击创建成功的视图,就可以看到了视图数据了。
student表:
这里写图片描述
teacher表:
这里写图片描述
视图:
这里写图片描述

在视图上右键设计视图,点击解释,可以看到普通视图的数据来自查询自身关联的表。
这里写图片描述

虽然navicat premium不支持编辑视图,但是PostgreSQL9.4以上的视图是支持可以编辑的,有兴趣的同学可以看这篇文章Creating PostgreSQL Updatable Views

2,物化视图(实例化视图)

实例化视图,可以缓存复杂的查询结果数据,而且允许你定期刷新视图数据。
navicat premium点击【其他】按钮,选择创建实例化视图,基本操作跟创建普通视图差不多。
实例化视图第一次查询,跟普通视图一样,都是查询关联的数据表,然后将数据保存,下次再次查询时,就是直接从实例化视图查询,不用再查询关联的数据表。
但是,实例化中的数据不会实时刷新,也就是说,当你表中数据发送变化时,实例化视图中的数据还是保持不变,因为数据已经实例化,不过我可以手动刷新,在实例化对象右键选择刷新,也可以直接执行sql语句REFRESH MATERIALIZED VIEW view_name


三,数据类型

PostgreSQL拥有十分丰富的数据类型支持。
这是官网对PostgreSQL数据类型的相关文档:
https://www.postgresql.org/docs/9.4/static/datatype.html
这里介绍两种特别的:

1,枚举类型

我们会teacher表增加一个字段subject,代表老师执教的科目,使用navicat premium创建枚举类型。
这里写图片描述
选择枚举类型
这里写图片描述
通过添加标签的形式创建三门学科
这里写图片描述
这里写图片描述
插入数据时可以使用图形化操作,也可以使用sql语句
INSERT INTO "public"."teacher" ("id", "name", "gender", "subject") VALUES ('1', 't1', '1', '语文');

2,复合类型

基本操作与创建枚举类型相似。
创建代表配偶的复合类型mate,为teacher表添加一个配偶字段mate。
这里写图片描述
插入数据的sql语句为

INSERT INTO "public"."teacher" ("id", "name", "gender", "subject", "mate") VALUES ('1', 't1', '1', '语文', NULL);

注意:查看类型的时候,会看到一些一下划线开始的对象,这些都是应该是创建数据类型时附带的,实际使用中不用理会,选择对象类型时选择不带下划线的就行。
这里写图片描述

其他数据类型官网文档有详细的介绍,如果不想看英文文档的同学,可看看网友的这篇博文,写的也很详细
http://www.cnblogs.com/stephen-liu74/archive/2012/04/30/2293602.html


四,扩展阅读

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值