PostgreSQL,世界上最先进的开源数据库( 官网介绍)。
官网地址:https://www.postgresql.org/
网上关于PostgreSQL的博客十分多,这里便不再赘述,推荐知名博主阮一峰的的一篇关于PostgreSQL的博客:PostgreSQL新手入门,简洁明了,十分适合刚接触PostgreSQL的同学,例如我,哈哈。
这里有几点要注意:
apt-get install postgresql-9.4
。service postgresql restart
。为了方便开发,提高工作效率,推荐使用图形化数据库管理工具navicat premium,有兴趣的同学可以在这里下载https://pan.baidu.com/s/1bp5o9NT
http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html
阮一峰大神的的相关博客已经写的很好,这里只对博客中没有提及的,自己实际工作中又使用到的知识点进行总结。
视图,一个保存查询结果的数据库对象。视图,可以理解为PostgreSQL重的虚拟表。也可以说,PostgreSQL视图是代表一张或多张表查询结果数据的逻辑表。
注意:普通视图不会保存物理数据,每次查询都是查询视图关联的几张表,但是物化视图(实例化视图)会物理保存查询结果,每次查询都是从视图直接查询。
使用navicat premium工具图形化操作,创建视图十分简单
当然,如果对sql熟悉的同学可以直接使用sql语句创建视图。
然后在关联的表插入测试数据,双击创建成功的视图,就可以看到了视图数据了。
student表:
teacher表:
视图:
在视图上右键设计视图,点击解释,可以看到普通视图的数据来自查询自身关联的表。
虽然navicat premium不支持编辑视图,但是PostgreSQL9.4以上的视图是支持可以编辑的,有兴趣的同学可以看这篇文章Creating PostgreSQL Updatable Views。
实例化视图,可以缓存复杂的查询结果数据,而且允许你定期刷新视图数据。
navicat premium点击【其他】按钮,选择创建实例化视图,基本操作跟创建普通视图差不多。
实例化视图第一次查询,跟普通视图一样,都是查询关联的数据表,然后将数据保存,下次再次查询时,就是直接从实例化视图查询,不用再查询关联的数据表。
但是,实例化中的数据不会实时刷新,也就是说,当你表中数据发送变化时,实例化视图中的数据还是保持不变,因为数据已经实例化,不过我可以手动刷新,在实例化对象右键选择刷新,也可以直接执行sql语句REFRESH MATERIALIZED VIEW view_name
。
PostgreSQL拥有十分丰富的数据类型支持。
这是官网对PostgreSQL数据类型的相关文档:
https://www.postgresql.org/docs/9.4/static/datatype.html
这里介绍两种特别的:
我们会teacher表增加一个字段subject,代表老师执教的科目,使用navicat premium创建枚举类型。
选择枚举类型
通过添加标签的形式创建三门学科
插入数据时可以使用图形化操作,也可以使用sql语句
INSERT INTO "public"."teacher" ("id", "name", "gender", "subject") VALUES ('1', 't1', '1', '语文');
基本操作与创建枚举类型相似。
创建代表配偶的复合类型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