SQL关系型数据库创建模式、删除模式
最近面试时,被问到关于数据库查询问题。因为长时间没接触被问了个措手不及,所以又重新回顾了一下。
1.创建模式
CREATE SCHEMA <模式名> AUTHORIZATION <用户名>;
CREATE SCHEMA “S_Order" AUTHORIZATION WAN; //为用户WAN定义一个用户订单的模式 S_Order
CREATE SCHEMA AUTHORIZATION WAN; // 未指定模式名,模式名默认为用户名
* 定义模式实际上是定义一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象,例如:基本表,视图,索引 等.....
CREATE SCHEMA <模式名> AUTHORIZATION <用户名> [ <表定义>|<视图定义>|<授权定义>];
CREATE SCHEMA S_TEST AUTHORIZATION WAN //为用户WAN创建一个模式S_TEST,并定义一个表T_TABLE
CREATE TABLE T_TABLE (
COL INT,
COL2 CHAR(20)
);
2.删除模式
DROP SCHEMA <模式名> < CASCADE | RESTRICT >
CASCADE :级联删除。即:删除模式的同时把模式中所有的数据库对象(模式中定义的下属数据库对象)全部删除
RESTRICT:限制删除。即:删除模式时,如果模式中已定义下属数据库对象,则拒绝删除。
3.模式与表------ 每一个基本表都属于某一个模式,一个模式包含多个基本表
定义基本表时一般有三种方法定义它所属模式:
第一种: CREATE TABLE ”S_Order".TABLE_NAME();
第二种:创建模式语句时同时创建表
第三种:设置所属模式。
* 当用户创建基本表时若没有指定模式,系统根据搜索路径(search path ) 来确定该对象所属模式。搜索路径一般包含一组模式列表,关系型数据库管理系统会使用模式列表中第一个存在的模式作为数据库对象的模式名称。若搜索路经中的模式名都不存在,系统将给出错误。
SHOW search_path; //显示搜索路径
SET search_path TO "S_ORDER" ,PUBLIC; //设置搜索路径
上一篇: 利用jquery写的左右轮播图特效
下一篇: oracle常见等待事件