模式(schema)是对数据库(database)逻辑分割。
在数据库创建的同时,就已经默认为数据库创建了一个模式-public,这也是该数据库的默认模式。所有为此数据库创建的对象(表、函数、试图、索引、序列等)都是在这个模式中的。
数据库是被模式(schema)来切分的,一个数据库至少有一个模式,所有数据库内部的对象(object)是被创建于schema的。
如果把database看作是一个仓库,仓库很多房间(schema),一个schema代表一个房间,table可以看作是每个房间中的储物柜,user是每个schema的主人,有操作数据库中每个房间的权利,就是说每个数据库映射的user有每个schema(房间)的钥匙。
在RDS中我们将看到已经存在一些数据库,例如数据库rdsadmin
是供 RDS/Aurora 控制平面使用的数据库。
在pgAdmin中创建一个新的database:
命名为first_database
:
请注意数据库有一个所有者。该角色可以控制该数据库的权限并将其分配给其他角色。所有者默认为当前使用 pgAdmin 登录的角色。大多数 PostgreSQL 对象创建后也可以更改它们的所有者。
切到Definition
页面,这里可以设置很多配置,我们暂时不作更改:
切到SQL页面,SQL 选项卡展示将要生成的 SQL 命令的预览:
最后点击Save。在左侧看到新创建的数据库:
使用schema的原因有多种:
展开Schema,看到已经存在一个默认的public。这里我们创建一个新的schema:
命名为first_schema
,请注意schema有一个所有者,并且还具有在schema中创建新对象的权限(如果需要,可以单击“security”选项卡和“default privileges”选项卡):
点击Save进行创建。
视图
(view) 是已命名的查询,它提供了另一种在数据库表中显示数据的方式。视图是基于一个或多个表来定义的,这些表被称为基表。当你创建一个视图时,基本上是创建一个查询并为其分配一个名称,因此视图对于包装一个常用的复杂查询很有用。
请注意,普通视图不会存储任何数据,物化视图除外。在 PostgreSQL 中,可以创建一个特殊视图,称为物化视图,物理存储数据并定期从基表中刷新数据。物化视图在很多情况下都有很多优点,例如更快地访问远程服务器的数据,数据缓存等等。主要用于需要快速访问数据的场景,如数据仓库 和商务智能应用中。