【模式定义】
基本语法
在 SQL 中,要创建模式,需要调用该命令的用户拥有数据库管理员权限,或者取得了数据库管理员所授予的 CREATE SCHEMA
权限
定义模式的 SQL 语法为:
1 | CREATE SCHEMA <模式名> AUTHORIZATION <用户名>; |
例如,为用户 TOM 定义一个学生-课程模式 S-T
1 | CREATE SCHEMA "S-T" AUTHORIZATION TOM; |
隐含模式名
如果没有指定 <模式名>
,那么 <模式名>
将隐含为 <用户名>
例如,为用户 TOM 定义一个学生-课程模式 S-T 时,没有指定模式名 S-T
,此时模式名即用户名 TOM
1 | CREATE SCHEMA AUTHORIZATION TOM; |
子句支持
定义模式实质上是定义了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象
目前,用户可以在创建模式的同时,在该模式中进一步创建基本表、创建视图、定义授权,即在 CREATE SCHEMA
语句中接受 CREATE TABLE
、CREATE VIEW
、GRANT
子句
语法为:
1 | CREATE SCHEMA <模式名> AUTHORIZATION <用户名> |
例如,为用户 TOM 定义一个学生-课程模式 S-T,同时在其中定义一个表 TAB1,该表一共两列,均为 INT 型
1 | CREATE SCHEMA "S-T" AUTHORIZATION TOM |
【模式删除】
在 SQL 中,删除模式的 SQL 语法为:
1 | DROP SCHEMA <模式名> <CASCADE|RESTRICT>; |
其中 CASCADE
和 RESTRICT
二者必选其一,选择了级联(CASCADE),表示在删除模式的同时将该模式中所有的数据库对象全部删除;选择了限制(RESTRICT),表示如果该模式中已经定义了下属的数据库对象,则拒绝该删除语句的执行,仅在该模式中没有任何下属对象时,才执行该语句
例如,删除学生-课程模式 S-T,同时将该模式中定义的表 TAB1 也删除
1 | DROP SCHEMA "S-T" CASCADE; |