我们需要模式的原因有好多:允许多个用户使用一个数据库而不会干扰其它用户。把数据库对象组织成逻辑组,让它们更便于管理。 第三方的应用可以放在不同的模式中,这样它们就不会和其它对象的名字冲突。
模式类似于操作系统层次的目录,只不过模式不能嵌套。
比如:
数据库创建后会自动生成一个模式public,用来存放数据库对象。
这个public模式虽然可以随便使用,单最好不要删除。
所以我们要创建系列的表或其他数据库对象,最好创建一个特定的模式(推荐:与用户名同名)。
默认情况下,模式搜索路径为:
highgo=# show search_path;
search_path
----------------
"$user",public
(1 行记录)
以上默认的模式也是与用户名同名的模式。
highgo=# set search_path to myschema;
SET
highgo=# show search_path;
search_path
-------------
myschema
(1 行记录)
highgo=# create table myschema.mytable();
CREATE TABLE
highgo=# \d
关联列表
架构模式 | 名称 | 型别 | 拥有者
---------------------+---------+--------+--------
hgdb_oracle_catalog | dual | 视观表 | highgo
hgdb_oracle_catalog | tab | 视观表 | highgo
myschema | mytable | 资料表 | highgo
(3 行记录)