模式的概念
官方文档中对于模式的解释:
一个postgresql数据库中包含一个或更多命名的数据库。用户和用户组被整个集簇共享,但没有其他数据在数据库之间共享。任何给定客户端连接只能访问在连接中指定的数据库中的数据。
换一种通俗易懂的方式,就是说:
模式(schema)是对数据库(database)的逻辑分割。
在数据库创建的同时,就默认为其创建了一个public模式。 数据库是被模式来分割的,一个数据库至少有一个模式,所有的数据库的对象(表,索引,序列,视图)都是在模式中创建的。
模式的原因
- 允许多个用户使用一个数据库并且不会互相干扰
- 将数据库对象组织成逻辑组以便更容易管理
- 第三方应用的对象可以放在独立的模式中,这样他们就不会与其他对象的名称发生冲突。
模式的创建
有两种方式可以创建模式,一种是使用sql语句进行创建,一种是使用navicat premium 12进行创建
方式一
要创建一个模式,使用CREATE SCHEMA命令,并给出选择的模式名称。
例如:
CREATE SCHEMA myschema;
方式二
使用navicat premium 12,可以直接对需要进行创建模式的数据库右击,点击创建模式即可。
如下图。
输入模式的名称以及模式的拥有者,点击确定即可创建模式成功。
模式的使用
在一个模式中,创建或访问对象,需要使用由模式名和表名构成的限定名,模式名和表名之间用点号隔开
模式.表
注意事项
- 任何新数据库都会包含一个public模式。默认情况下表以及其他对象会默认存储在此模式下。
- 相同的对象名称可以被用于不同的模式中而不会发生出现冲突。例如:schema1和schema2都可以包含名为tablename的表
- 模式并不是被严格隔离。一个用户可以访问所连接的数据库内所有模式内的对象,只要他们有足够的权限。