语法格式
创建模式的 SQL 命令格式如下:
<模式定义子句 1> | <模式定义子句 2>
其中,各子句说明如下:
<模式定义子句 1> ::= CREATE SCHEMA <模式名> [AUTHORIZATION <用户名>][<DDL_GRANT 子句> {<DDL_GRANT 子句>}];
<模式定义子句 2> ::= CREATE SCHEMA AUTHORIZATION <用户名> [<DDL_GRANT 子句> {<DDL_GRANT 子句>}]
<DDL_GRANT 子句> ::= <基表定义> | <域定义>| <基表修改> | <索引定义> | <视图定义> | <序列定义> | <存储过程定义> | <存储函数定义> | <触发器定义> | <特权定义> | <全文索引定义> | <同义词定义> | <包定义> | <包体定义> | <类定义> | <类体定义> | <外部链接定义>] | <物化视图定义> | <物化视图日志定义> | <注释定义>
<用户名>指明给哪个用户创建模式,如果省略用户名,则默认给当前用户创建模式。
语法格式中其他部分都是可选项,如<表定义>、<表修改>、<视图定义>等子句。
应用举例
以用户 SYSDBA 登录,为 DMHR 用户增加一个模式,模式名为 DMHR2,并在 DMHR2 模式中定义一张表 TAB1(下一节将具体介绍表的管理)。
SQL>CREATE SCHEMA dmhr2 AUTHORIZATION dmhr
CREATE TABLE tab1(id INT, name VARCHAR(20));
/
注意,该命令是连续的,第一行没有分号,该 SQL 命令最终不是以分号结束的,
而以“/”结束。
附加说明
(1)<模式名>不可与其所在数据库中其他模式名相同;在创建新的模式时,如果存在同名的模式,那么该命令不能执行。
(2)使用该语句的用户必须具有 DBA 或 CREATE SCHEMA 权限。
(3)模式一旦定义,该用户所建基表、视图等均属于该模式,其他用户访问该用户所建立的基表、视图等均需在表名、视图名前冠以模式名;而建表者访问自己当前模式所建表、视图时模式名可省;若没有指定当前模式,则系统自动以当前用户名作为模式名。
(4)模式定义语句不允许与其他 SQL 语句一起执行。
(5)在 disql 中使用该语句必须以“/”结束